D3DXFillVolumeTexture 函数

使用用户提供的函数填充给定体积纹理的每个 mip 级别的每个纹素。

语法

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 将失败,因为无法锁定卷。

此示例创建一个名为 ColorVolumeFill 的函数,该函数依赖于 D3DXFillVolumeTexture。

// 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 中的纹理函数