次の方法で共有


D3DXFillTextureTX 関数

コンパイル済みの高レベル シェーダー言語 (HLSL) 関数を使用して、テクスチャの各ミップマップ レベルの各テクセルを塗りつぶします。

構文

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 関数である必要があります。

  • 1 つの入力パラメーターで POSITION セマンティックを使用する必要があります。
  • 1 つの入力パラメーターで 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