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 |
|
Bibliothek |
|
Siehe auch