Freigeben über


D3DXFillVolumeTexture-Funktion

Verwendet eine vom Benutzer bereitgestellte Funktion, um jeden Texel jeder MIP-Ebene einer bestimmten Volumetextur zu füllen.

Syntax

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

Parameter

pTexture [out]

Typ: LPDIRECT3DVOLUMETEXTURE9

Zeiger auf eine IDirect3DVolumeTexture9-Schnittstelle , die die gefüllte Textur darstellt.

pFunction [in]

Typ: LPD3DXFILL3D

Zeiger auf eine vom Benutzer bereitgestellte Auswertungsfunktion, die verwendet wird, um den Wert jedes Texels zu berechnen. Die Funktion folgt dem Prototyp von LPD3DXFILL3D.

pData [in]

Typ: LPVOID

Zeiger auf einen beliebigen Block benutzerdefinierter Daten. Dieser Zeiger wird an die in pFunction bereitgestellte Funktion übergeben.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Werte sein: D3DERR_INVALIDCALL.

Bemerkungen

Wenn das Volume nicht dynamisch ist (da die Verwendung beim Erstellen auf 0 festgelegt ist) und sich im Videospeicher befindet (der Speicherpool ist auf D3DPOOL_DEFAULT festgelegt), schlägt D3DXFillVolumeTexture fehl, da das Volume nicht gesperrt werden kann.

In diesem Beispiel wird eine Funktion namens ColorVolumeFill erstellt, die auf D3DXFillVolumeTexture basiert.

// 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;
}

Anforderungen

Anforderung Wert
Header
D3dx9tex.h
Bibliothek
D3dx9.lib

Siehe auch

Texturfunktionen in D3DX 9