Platform SDK: DirectX

事前定義するステート ブロックの作成

[C++]

IDirect3DDevice7::CreateStateBlock メソッドは、デバイス ステート セットの全体を含むか、あるいは頂点またはピクセル処理に関するデバイス ステートのみ含む新しいステート ブロックを作成する。CreateStateBlock メソッドは 2 つのパラメータを受け取る。第 1 パラメータは、新しいステート ブロックに取り込むステート情報の種類を識別する。第 2 パラメータは、呼び出しが成功したときに有効なステート ブロック ハンドルを受け取る変数のアドレスである。

第 1 パラメータの有効値は、D3DSTATEBLOCKTYPE 列挙型で定義される。これに含まれるメンバを使用して、デバイス ステート セットの全体 (D3DSBT_ALL)、あるいは点またはピクセル処理 (D3DSBT_VERTEX または D3DSBT_PIXEL) に関するステートのみ取り込むことができる。次の一覧は、D3DSBT_VERTEX または D3DSBT_PIXEL 値を渡したときにシステムによって取り込まれるステートを示す。

[Visual Basic]

Direct3DDevice7.CreateStateBlock メソッドは、デバイス ステート セットの全体を含むか、または頂点またはピクセル処理に関するデバイス ステートのみ含む新しいステート ブロックを作成する。CreateStateBlock メソッドは 2 つのパラメータを受け取る。第 1 パラメータは、新しいステート ブロックに取り込むステート情報の種類を識別する。第 2 パラメータは、呼び出しが成功したときに有効なステート ブロック ハンドルを受け取る変数のアドレスである。

第 1 パラメータの有効値は、CONST_D3DSTATEBLOCKTYPE 列挙で定義される。この列挙に含まれるメンバを使用して、デバイス ステート セットの全体 (D3DSBT_ALL)、あるいは点またはピクセル処理 (D3DSBT_VERTEX または D3DSBT_PIXEL) に関するステートのみ取り込むことができる。次の一覧は、D3DSBT_VERTEX または D3DSBT_PIXEL 値を渡したときにシステムによって取り込まれるステートを示す。

 :  CreateStateBlock メソッドが返すエラー コードをチェックすることが大切である。このメソッドが失敗した場合、その原因の多くはディスプレイ モードが変更されたことである考えられる (エラー コード DDERR_SURFACELOST)。アプリケーションのサーフェスを作成し直してステート ブロックを記録することで、このような障害からアプリケーションが回復するように設計する。