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


Функция D3DXFillVolumeTexture

Использует предоставленную пользователем функцию для заполнения каждого текселя каждого уровня MIP заданной текстуры тома.

Синтаксис

HRESULT D3DXFillVolumeTexture(
  _Out_ LPDIRECT3DVOLUMETEXTURE9 pTexture,
  _In_  LPD3DXFILL3D             pFunction,
  _In_  LPVOID                   pData
);

Параметры

pTexture [out]

Тип: LPDIRECT3DVOLUMETEXTURE9

Указатель на интерфейс IDirect3DVolumeTexture9 , представляющий заполненную текстуру.

pFunction [in]

Тип: LPD3DXFILL3D

Указатель на предоставленную пользователем функцию вычислителя, которая будет использоваться для вычисления значения каждого текселя. Функция следует прототипу LPD3DXFILL3D.

pData [in]

Тип: LPVOID

Указатель на произвольный блок определяемых пользователем данных. Этот указатель будет передан функции, предоставленной в pFunction.

Возвращаемое значение

Тип: HRESULT

Если функция выполняется успешно, возвращаемое значение будет D3D_OK. Если функция завершается сбоем, возвращаемое значение может быть одним из следующих значений: D3DERR_INVALIDCALL.

Комментарии

Если том не является динамическим (так как при создании используется значение 0) и находится в видеопамяти (пул памяти D3DPOOL_DEFAULT), D3DXFillVolumeTexture завершится ошибкой , так как том не может быть заблокирован.

В этом примере создается функция с именем ColorVolumeFill, которая использует D3DXFillVolumeTexture.

// Define a function that matches the prototype of LPD3DXFILL3D
VOID WINAPI ColorVolumeFill (D3DXVECTOR4* pOut, const D3DXVECTOR3* pTexCoord, 
const D3DXVECTOR3* pTexelSize, LPVOID pData)
{
   *pOut = D3DXVECTOR4(pTexCoord->x, pTexCoord->y, pTexCoord->z, 0.0f);
}
    
    
// Fill volume texture
if (FAILED (hr = D3DXFillVolumeTexture (m_pTexture, ColorVolumeFill, NULL)))
{
       return hr;
}

Требования

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

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

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