D3DXFillVolumeTexture
ユーザー指定の関数を使用して、指定したボリューム テクスチャーの各ミップ レベルの各テクセルを塗りつぶします。
HRESULT
D3DXFillVolumeTexture(
LPDIRECT3DVOLUMETEXTURE9 pTexture,
LPD3DXFILL3D pFunction,
LPVOID pData
);
パラメータ
- pTexture
IDirect3DVolumeTexture9 インターフェイスへのポインターです。塗りつぶし対象のテクスチャーを示します。 - pFunction
各テクセルの値を計算するために使用するユーザー指定の評価関数へのポインターです。この関数は、LPD3DXFILL3D のプロトタイプに準拠しています。 - pData
ユーザー定義データの任意のブロックへのポインターです。このポインターは pFunction で指定した関数に渡されます。
戻り値
成功すると、D3D_OK を返します。失敗した場合は、次のいずれかの値を返します。D3DERR_INVALIDCALL
解説
ボリュームが非動的で (作成時に使用方法のパラメーターが 0 に設定されていたため)、ビデオ メモリー内に配置されている (メモリー プールが D3DPOOL_DEFAULT に設定されている) 場合、D3DXFillVolumeTexture は失敗します。
次に、D3DXFillVolumeTexture を使用した ColorCubeFill と呼ばれる関数を作成する例を示します。
// Define a function that matches the prototype of LPD3DXFILL3D VOID WINAPI ColorVolumeFill (D3DXVECTOR4* pOut, const D3DXVECTOR3* pTexCoord, const D3DXVECTOR3* pTexelSize, LPVOID pData) { *pOut = D3DXVECTOR4(pTexCoord->x, pTexCoord->y, pTexCoord->z, 0.0f); } // Fill volume texture if (FAILED (hr = D3DXFillVolumeTexture (m_pTexture, ColorVolumeFill, NULL))) { return hr; }
要件
ヘッダー: D3dx9tex.h 宣言
ライブラリ: D3dx9.lib 内容