Platform SDK: DirectX |
IDirect3DDevice7::CaptureStateBlock メソッドは、既存のステート ブロック内の値を更新してデバイスの現在のステートに反映する。このメソッドは、パラメータ dwBlockHandle を 1 つだけ受け取る。このパラメータは、呼び出しが成功した場合にデバイスの現在のステートの取り込み先となるステート ブロックを識別する。
アプリケーションで記録済みのステート ブロックを更新して若干異なるステート設定を含める場合には、IDirect3DDevice7::CaptureStateBlock メソッドが特に便利である。これを行うには、既存のステート ブロックを適用し、必要な設定変更を行い、システムのステートをステート ブロックに取り込む。これについて、次のコード例で示す。
// dwMyBlock 変数には、以前に記録されたデバイス ステート セットへの // ハンドルが格納されている。 // 現在のステート ブロックを設定する。 d3dDevice->ApplyStateBlock(dwMyBlock); // 必要に応じてステート ブロックを変更する。 . . . // 修正したデバイス ステート データを既存のブロックに取り込む。 d3dDevice->CaptureStateBlock(dwMyBlock);
CaptureStateBlock メソッドは、デバイスのステート全体を取り込むのではなく、ステート ブロック内の既存のステート値を更新するのみである。たとえば、次のコード例で表す 2 つの処理が記録されたステート ブロックがあるとする。
SetRenderState(D3DRENDERSTATE_SHADEMODE, D3DSHADE_GOURAUD); SetTexture(0, lpd3dAnyTexture);
ステート ブロックが初めに記録されて以降、2 つの設定のいずれかを変更した場合、IDirect3DDevice7::CaptureStateBlock メソッドは、ブロック内で変更されたステートのみ新しい値に更新する。
Direct3DDevice7.CaptureStateBlock メソッドは、既存のステート ブロック内の値を更新してデバイスの現在のステートに反映する。このメソッドは、パラメータ blockHandle を 1 つだけ受け取る。このパラメータは、呼び出しが成功した場合にデバイスの現在のステートの取り込み先となるステート ブロックを識別する。
アプリケーションで記録済みのステート ブロックを更新して若干異なるステート設定を含める場合には、Direct3DDevice7.CaptureStateBlock メソッドが特に便利である。これを行うには、既存のステート ブロックを適用し、必要な設定変更を行い、システムのステートをステート ブロックに取り込む。これについて、次のコード例で示す。
' MyBlock 変数には、以前に記録されたデバイス ステート セットへの ' ハンドルが格納されている。 ' 現在のステート ブロックを設定する。 Call d3dDevice.ApplyStateBlock(MyBlock) ' 必要に応じてデバイス ステートを変更する。 . . . ' 修正したデバイス ステート データを既存のブロックに取り込む。 Call d3dDevice.CaptureStateBlock(MyBlock)
CaptureStateBlock メソッドは、デバイスのステート全体を取り込むのではなく、ステート ブロック内の既存のステート値を更新するのみである。たとえば、次のコード例で表す 2 つの処理が記録されたステート ブロックがあるとする。
Call SetRenderState(D3DRENDERSTATE_SHADEMODE, D3DSHADE_GOURAUD) Call SetTexture(0, d3dAnyTexture)
ステート ブロックが初めに記録されて以降、2 つの設定のいずれかを変更した場合、Direct3DDevice7.CaptureStateBlock メソッドは、ブロック内で変更されたステートのみ新しい値に更新する。