Partager via


D3DXFillTextureTX, fonction

Utilise une fonction HLSL (high-level shader language) compilée pour remplir chaque texel de chaque niveau mipmap d’une texture.

Syntaxe

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

Paramètres

pTexture [in, out]

Type : LPDIRECT3DTEXTURE9

Pointeur vers un objet IDirect3DTexture9 , représentant la texture à remplir.

pTextureShader [in]

Type : LPD3DXTEXTURESHADER

Pointeur vers un objet nuanceur de texture ID3DXTextureShader .

Valeur retournée

Type : HRESULT

Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être l’une des suivantes : D3DERR_NOTAVAILABLE, D3DERR_INVALIDCALL.

Notes

La cible de texture doit être une fonction HLSL qui accepte la sémantique suivante :

  • Un paramètre d’entrée doit utiliser une sémantique POSITION.
  • Un paramètre d’entrée doit utiliser une sémantique PSIZE.
  • La fonction doit retourner un paramètre qui utilise la sémantique COLOR.

Voici un exemple de fonction HLSL de ce type :

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

Notez que les paramètres d’entrée peuvent être dans n’importe quel ordre, mais que les deux sémantiques d’entrée doivent être représentées.

Spécifications

Condition requise Valeur
En-tête
D3dx9tex.h
Bibliothèque
D3dx9.lib

Voir aussi

Fonctions de texture dans D3DX 9

D3DXFillCubeTextureTX

D3DXFillVolumeTextureTX