次の方法で共有


D3DXFillVolumeTexture 関数

ユーザー指定の関数を使用して、特定のボリューム テクスチャの各ミップ レベルの各テクセルを塗りつぶします。

構文

HRESULT D3DXFillVolumeTexture(
  _Out_ LPDIRECT3DVOLUMETEXTURE9 pTexture,
  _In_  LPD3DXFILL3D             pFunction,
  _In_  LPVOID                   pData
);

パラメーター

pTexture [out]

種類: LPDIRECT3DVOLUMETEXTURE9

塗りつぶされたテクスチャを表す 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;
}

要件

要件
ヘッダー
D3dx9tex.h
ライブラリ
D3dx9.lib

関連項目

D3DX 9 のテクスチャ関数