Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectDraw Visual Basic チュートリアル」を参照すること。
DDEx2 サンプルでは、次のコードを使って構造体にパレットをロードする。
lpDDPal = DDLoadPalette(lpDD, szBackground); if (lpDDPal == NULL) goto error;
サンプル関数 DDLoadPalette は、\Dxsdk\Sdk\Samples\Misc ディレクトリの Ddutil.cpp ファイルの中にある、共通 DirectDraw 関数の一部である。この SDK の大部分の DirectDraw サンプル ファイルは、このファイルを使っている。このファイルには、ファイルまたはリソースからビットマップやパレットをロードするための関数が含まれる。複数の例題ファイルの中でコードの繰り返しを避けるために、これらの関数は再利用可能な 1 つのファイルにまとめられている。残りの DDExn サンプルと共にコンパイルするファイルのリストに Ddutil.cpp があることを確認すること。
DDEx2 では、DDLoadPalette サンプル関数が Back.bmp ファイルから DirectDrawPalette オブジェクトを作成する。DDLoadPalette サンプル関数では、パレットを作成するためのファイルまたはリソースが存在するかどうかを判断する。もし存在しなければ、デフォルトのパレットを作成する。DDEx2 では、ビットマップ パレットからパレット情報を引き出し、ape ポインタが示す構造体に格納する。
次に、DDEx2 は DirectDrawPalette オブジェクトを作成する。次に例を示す。
pdd->CreatePalette(DDPCAPS_8BIT, ape, &ddpal, NULL); return ddpal;
IDirectDraw7::CreatePalette メソッドが戻ると、ddpal パラメータは、DDLoadPalette の呼び出しから返された後の DirectDrawPalette オブジェクトを示す。
ape パラメータは構造体へのポインタで、連続した 2、4、16、または 256 エントリのいずれかを含む。エントリの数は、CreatePalette メソッドの dwFlags パラメータに依存する。この場合、dwFlags パラメータは DDPCAPS_8BIT に設定され、この構造体に 256 エントリがあることを示す。個々のエントリは、4 バイト (赤チャネル、緑チャネル、青チャネル、およびフラグ バイト) で構成される。
次項 :ステップ 2 : パレットの設定