Freigeben über


D3DXFillTextureTX-Funktion

Verwendet eine kompilierte HLSL-Funktion (High-Level Shader Language), um jeden Texel jeder Mipmap-Ebene einer Textur zu füllen.

Syntax

HRESULT D3DXFillTextureTX(
  _Inout_ LPDIRECT3DTEXTURE9  pTexture,
  _In_    LPD3DXTEXTURESHADER pTextureShader
);

Parameter

pTexture [ein, aus]

Typ: LPDIRECT3DTEXTURE9

Zeiger auf ein IDirect3DTexture9-Objekt , das die zu füllende Textur darstellt.

pTextureShader [in]

Typ: LPD3DXTEXTURESHADER

Zeiger auf ein ID3DXTextureShader-Textur-Shaderobjekt .

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 sein: D3DERR_NOTAVAILABLE, D3DERR_INVALIDCALL.

Bemerkungen

Das Texturziel muss eine HLSL-Funktion sein, die die folgende Semantik enthält:

  • Ein Eingabeparameter muss eine POSITION-Semantik verwenden.
  • Ein Eingabeparameter muss eine PSIZE-Semantik verwenden.
  • Die Funktion muss einen Parameter zurückgeben, der die COLOR-Semantik verwendet.

Im Folgenden ist ein Beispiel für eine solche HLSL-Funktion aufgeführt:

float4 TextureGradientFill(
  float2 vTexCoord : POSITION, 
  float2 vTexelSize : PSIZE) : COLOR 
  {
    float r,g, b, xSq,ySq, a;
    xSq = 2.f*vTexCoord.x-1.f; xSq *= xSq;
    ySq = 2.f*vTexCoord.y-1.f; ySq *= ySq;
    a = sqrt(xSq+ySq);
    if (a > 1.0f) {
        a = 1.0f-(a-1.0f);
    }
    else if (a < 0.2f) {
        a = 0.2f;
    }
    r = 1-vTexCoord.x;
    g = 1-vTexCoord.y;
    b = vTexCoord.x;
    return float4(r, g, b, a);
    
  };

Beachten Sie, dass die Eingabeparameter in beliebiger Reihenfolge sein können, aber beide Eingabesemantiken dargestellt werden müssen.

Anforderungen

Anforderung Wert
Header
D3dx9tex.h
Bibliothek
D3dx9.lib

Siehe auch

Texturfunktionen in D3DX 9

D3DXFillCubeTextureTX

D3DXFillVolumeTextureTX