Platform SDK: DirectX

IDirectDraw7::CreatePalette

IDirectDraw7::CreatePalette メソッドは、この DirectDraw オブジェクトに対する DirectDrawPalette オブジェクトを作成する。

HRESULT CreatePalette(
  DWORD dwFlags,                           
  LPPALETTEENTRY lpDDColorArray,           
  LPDIRECTDRAWPALETTE FAR *lplpDDPalette,  
  IUnknown FAR *pUnkOuter                  
);

パラメータ

dwFlags
以下のフラグのうち、1 つ以上の値を取る。
DDPCAPS_1BIT
インデックスは 1 ビットである。カラー テーブルには、2 つのエントリがある。
DDPCAPS_2BIT
インデックスは 2 ビットである。カラー テーブルには、4 つのエントリがある。
DDPCAPS_4BIT
インデックスは 4 ビットである。カラー テーブルには、16 のエントリがある。
DDPCAPS_8BIT
インデックスは 8 ビットである。カラー テーブルには、256 のエントリがある。
DDPCAPS_8BITENTRIES
インデックスが 8 ビット カラー インデックスを参照する。DDPCAPS_1BIT、DDPCAPS_2BIT、または DDPCAPS_4BIT フラグを使用する場合、およびターゲット サーフェスが 8 bpp の場合のみ、このフラグは有効となる。個々のカラー エントリは 1 バイト長であり、転送先サーフェスの 8 bpp パレットへのインデックスである。
DDPCAPS_ALPHA
関連付けられた PALETTEENTRY 構造体の peFlags メンバが、単一の 8 ビット アルファ値 (また、peRedpeGreen、および peBlue メンバ) として判断される。このフラグで作成されるパレットは、テクスチャ、つまり、DDSCAPS_TEXTURE 能力フラグで作成されたサーフェスにのみアタッチできる。
DDPCAPS_ALLOW256
このパレットは全 256 エントリを定義できる。
DDPCAPS_INITIALIZE
廃止。DirectDraw は、常に lpDDColorArray で渡された色配列の色でこのパレットを初期化する。
DDPCAPS_PRIMARYSURFACE
プライマリ サーフェスにこのパレットをアタッチする。このパレットのカラー テーブルを変更すると、DDPSETPAL_VSYNC が指定されてサポートされないかぎり、即座にディスプレイに影響を与える。
DDPCAPS_PRIMARYSURFACELEFT
このパレットは、左眼プライマリ サーフェスにアタッチされる。このパレットのカラー テーブルを変更すると、DDPSETPAL_VSYNC が指定されてサポートされないかぎり、即座に左眼ディスプレイに影響を与える。
DDPCAPS_VSYNC
このパレットは、モニタのリフレッシュ レートと同期するように修正できる。
lpDDColorArray
この DirectDrawPalette オブジェクトを初期化する 2、4、16、または 256 PALETTEENTRY 構造体の配列のアドレス。
lplpDDPalette
呼び出しが成功した場合に、有効な IDirectDrawPalette インターフェイス ポインタに設定される変数のアドレス。
pUnkOuter
COM 処理機能との将来的な互換のためにある。ただし、現時点では、このパラメータを NULL に設定しないと、このメソッドはエラーを返す。

戻り値

成功すれば、DD_OK を返す。

失敗すれば、以下のエラー値のいずれかを返す。

DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_NOCOOPERATIVELEVELSET
DDERR_OUTOFMEMORY
DDERR_UNSUPPORTED

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 98 が必要。
  ヘッダー : ddraw.h で宣言。