Condividi tramite


Funzione D3DXFillTextureTX

Usa una funzione HLSL (High Level Shader Language) compilata per riempire ogni texel di ogni livello mipmap di una trama.

Sintassi

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

Parametri

pTexture [in, out]

Tipo: LPDIRECT3DTEXTURE9

Puntatore a un oggetto IDirect3DTexture9 che rappresenta la trama da riempire.

pTextureShader [in]

Tipo: LPD3DXTEXTURESHADER

Puntatore a un oggetto shader trama ID3DXTextureShader .

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

Commenti

La destinazione della trama deve essere una funzione HLSL che accetta la semantica seguente:

  • Un parametro di input deve usare una semantica POSITION.
  • Un parametro di input deve usare una semantica PSIZE.
  • La funzione deve restituire un parametro che utilizza la semantica COLOR.

Di seguito è riportato un esempio di tale funzione HLSL:

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

Si noti che i parametri di input possono essere in qualsiasi ordine, ma entrambe le semantiche di input devono essere rappresentate.

Requisiti

Requisito Valore
Intestazione
D3dx9tex.h
Libreria
D3dx9.lib

Vedi anche

Funzioni trama in D3DX 9

D3DXFillCubeTextureTX

D3DXFillVolumeTextureTX