D3DXFillTextureTX 函数

使用编译的高级着色器语言 (HLSL) 函数填充纹理的每个 mipmap 级别的每个纹素。

语法

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

参数

pTexture [in, out]

类型: LPDIRECT3DTEXTURE9

指向 IDirect3DTexture9 对象的指针,表示要填充的纹理。

pTextureShader [in]

类型: LPD3DXTEXTURESHADER

指向 ID3DXTextureShader 纹理着色器对象的指针。

返回值

类型: HRESULT

如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是下列值之一:D3DERR_NOTAVAILABLE、D3DERR_INVALIDCALL。

备注

纹理目标必须是采用包含以下语义的 HLSL 函数:

  • 一个输入参数必须使用 POSITION 语义。
  • 一个输入参数必须使用 PSIZE 语义。
  • 函数必须返回使用 COLOR 语义的参数。

下面是此类 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);
    
  };

请注意,输入参数可以按任意顺序排列,但必须同时表示这两种输入语义。

要求

要求
标头
D3dx9tex.h

D3dx9.lib

另请参阅

D3DX 9 中的纹理函数

D3DXFillCubeTextureTX

D3DXFillVolumeTextureTX