Microsoft DirectX 8.0 (C++) |
次の例は、アプリケーションでのテクニックのレンダリング方法を示している。有効なテクニックを検出した後、次のサンプル コードに示すように、アプリケーションでは ID3DXTechnique::Begin メソッドを呼び出して、テクニックの適用を開始する。
UINT uPasses; pTechnique->Begin(&uPasses);
Begin の唯一のパラメータは、符号なし整数のアドレスである。Begin が呼び出された後、この値にはテクニックで使用されるパスの数が格納される。
次の手順として、各パスの個別のレンダリングを行う。パスをレンダリングするには、ID3DXTechnique::Pass メソッドを呼び出す。次のサンプル コードでは、ループを使って、テクニックに必要なすべてのパスをレンダリングしている。
for(UINT uPass = 0; uPass < uPasses; uPass++) { pTechnique->Pass(uPass); g_d3dDevice->SetStreamSource( 0, pvbVertices, sizeof(WATER_VERTEX) ); g_d3dDevice->SetIndices( pIB, 0 ); g_d3dDevice->DrawIndexedPrimitive( D3DPT_TRIANGLESTRIP, 0, uVertices, 0, uIndices -2 ); }
Pass を呼び出すことで、シーンのレンダリングに必要なステートを設定している。
注 ID3DXTechnique::Begin は、IDirect3DDevice8::BeginScene / IDirect3DDevice8::EndScene ブロック内で呼び出す必要がある。