Функция D3DXFillTextureTX
Использует скомпилированную функцию HLSL для заполнения каждого текселя каждого уровня MIP-карты текстуры.
Синтаксис
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);
};
Обратите внимание, что входные параметры могут быть в любом порядке, но должны быть представлены обе входные семантики.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел