Share via


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