Condividi tramite


Funzione D3DXFillVolumeTexture

Usa una funzione fornita dall'utente per riempire ogni texel di ogni livello mip di una determinata trama del volume.

Sintassi

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

Parametri

pTexture [out]

Tipo: LPDIRECT3DVOLUMETEXTURE9

Puntatore a un'interfaccia IDirect3DVolumeTexture9 che rappresenta la trama riempita.

pFunction [in]

Tipo: LPD3DXFILL3D

Puntatore a una funzione dell'analizzatore fornita dall'utente, che verrà usata per calcolare il valore di ogni texel. La funzione segue il prototipo di LPD3DXFILL3D.

pData [in]

Tipo: LPVOID

Puntatore a un blocco arbitrario di dati definiti dall'utente. Questo puntatore verrà passato alla funzione fornita in pFunction.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito viene D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei valori seguenti: D3DERR_INVALIDCALL.

Commenti

Se il volume non è dinamico (perché l'utilizzo è impostato su 0 al momento della creazione) e si trova nella memoria video (il pool di memoria impostato su D3DPOOL_DEFAULT), D3DXFillVolumeTexture avrà esito negativo perché il volume non può essere bloccato.

Questo esempio crea una funzione denominata ColorVolumeFill, che si basa su 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;
}

Requisiti

Requisito Valore
Intestazione
D3dx9tex.h
Libreria
D3dx9.lib

Vedi anche

Funzioni trama in D3DX 9