D3DXFillVolumeTexture 関数
D3DXFillVolumeTexture 関数
ユーザー指定の関数を使って、指定したボリューム テクスチャの各ミップ レベルの各テクセルを塗りつぶす。
構文
HRESULT D3DXFillVolumeTexture(
LPDIRECT3DVOLUMETEXTURE9 pTexture,
LPD3DXFILL3D pFunction,
LPVOID pData
);
パラメータ
- pTexture
[out, retval] IDirect3DVolumeTexture9 インターフェイスへのポインタ。 塗りつぶすテクスチャを表す。 - pFunction
[in] 各テクセルの値を計算するために使うユーザー指定の評価関数へのポインタ。この関数は、LPD3DFILL3D のプロトタイプに従っている。 - pData
[in] ユーザー定義データの任意のブロックへのポインタ。このポインタが、pFunction で指定した関数に渡される。
戻り値
成功した場合は、D3D_OK を返す。
失敗した場合は、次のいずれかの値を返す。
D3DERR_INVALIDCALL | メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。 |
注意
ボリュームが非動的で (作成時に使用方法のパラメータが 0 に設定されていたため)、ビデオ メモリ内に配置されている (メモリ プールが D3DPOOL_DEFAULT に設定されている) 場合、D3DXFillVolumeTexture は失敗する。これは、Direct3D エクステンション (D3DX) がビデオ メモリ内の非動的なボリュームをロックできないためである。
次に、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); } // Create volume texture using D3DXFillVolumeTexture if (FAILED (hr = D3DXFillVolumeTexture (m_pTexture, ColorVolumeFill, NULL))) { return hr; }
関数の情報
ヘッダー | d3dx9tex.h |
インポート ライブラリ | d3dx9.lib |
最低限のオペレーティング システム | Windows 98 |