Compartir a través de


Función D3DXFillVolumeTexture

Usa una función proporcionada por el usuario para rellenar cada elemento de textura de cada elemento mip de una textura de volumen determinada.

Sintaxis

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

Parámetros

pTexture [out]

Tipo: LPDIRECT3DVOLUMETEXTURE9

Puntero a una interfaz IDirect3DVolumeTexture9 , que representa la textura rellena.

pFunction [in]

Tipo: LPD3DXFILL3D

Puntero a una función de evaluador proporcionada por el usuario, que se usará para calcular el valor de cada elemento de textura. La función sigue el prototipo de LPD3DXFILL3D.

pData [in]

Tipo: LPVOID

Puntero a un bloque arbitrario de datos definidos por el usuario. Este puntero se pasará a la función proporcionada en pFunction.

Valor devuelto

Tipo: HRESULT

Si la función se realiza correctamente, el valor devuelto se D3D_OK. Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes valores: D3DERR_INVALIDCALL.

Comentarios

Si el volumen no es dinámico (porque el uso se establece en 0 cuando se crea) y se encuentra en la memoria de vídeo (el grupo de memoria establecido en D3DPOOL_DEFAULT), se producirá un error en D3DXFillVolumeTexture porque el volumen no se puede bloquear.

En este ejemplo se crea una función denominada ColorVolumeFill, que se basa en 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;
}

Requisitos

Requisito Value
Encabezado
D3dx9tex.h
Biblioteca
D3dx9.lib

Consulte también

Funciones de textura en D3DX 9