D3DXFillVolumeTexture 関数
ユーザー指定の関数を使用して、特定のボリューム テクスチャの各ミップ レベルの各テクセルを塗りつぶします。
構文
HRESULT D3DXFillVolumeTexture(
_Out_ LPDIRECT3DVOLUMETEXTURE9 pTexture,
_In_ LPD3DXFILL3D pFunction,
_In_ LPVOID pData
);
パラメーター
-
pTexture [out]
-
塗りつぶされたテクスチャを表す IDirect3DVolumeTexture9 インターフェイスへのポインター。
-
pFunction [in]
-
種類: LPD3DXFILL3D
各テクセルの値を計算するために使用される、ユーザー指定のエバリュエーター関数へのポインター。 関数は LPD3DXFILL3D のプロトタイプに従います。
-
pData [in]
-
種類: LPVOID
ユーザー定義データの任意のブロックへのポインター。 このポインターは、 pFunction で提供される関数に渡されます。
戻り値
型: HRESULT
関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値には次のいずれかの値を指定できます:D3DERR_INVALIDCALL。
解説
ボリュームが非動的で (作成時に使用量が 0 に設定されているため)、ビデオ メモリ (メモリ プールが D3DPOOL_DEFAULT に設定されている) にある場合、ボリュームをロックできないため、 D3DXFillVolumeTexture は失敗します。
この例では、D3DXFillVolumeTexture に依存する ColorVolumeFill という関数を作成します。
// 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;
}
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
関連項目