Поделиться через


Функция 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);
    
  };

Обратите внимание, что входные параметры могут быть в любом порядке, но должны быть представлены обе входные семантики.

Требования

Требование Значение
Заголовок
D3dx9tex.h
Библиотека
D3dx9.lib

См. также раздел

Функции текстур в D3DX 9

D3DXFillCubeTextureTX

D3DXFillVolumeTextureTX