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 内容