IDirect3DDevice9::CreateVolumeTexture 方法 (d3d9.h)
创建卷纹理资源。
语法
HRESULT CreateVolumeTexture(
[in] UINT Width,
[in] UINT Height,
[in] UINT Depth,
[in] UINT Levels,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DVolumeTexture9 **ppVolumeTexture,
[in] HANDLE *pSharedHandle
);
参数
[in] Width
类型: UINT
体积纹理的顶层宽度(以像素为单位)。 如果设置了 D3DCAPS9 的D3DPTEXTURECAPS_VOLUMEMAP_POW2成员,则此值必须为 2 的幂 。 后续级别的像素尺寸将是前一级别像素维度的一半的截断值, (独立) 。 每个维度的大小为 1 个像素。 因此,如果除以 2 的结果为 0 (零) ,则将改用 1。 驱动程序支持的宽度、高度和深度) (的最大尺寸可在 D3DCAPS9 的 MaxVolumeExtent 中找到。
[in] Height
类型: UINT
体积纹理的顶层高度(以像素为单位)。 如果设置了 D3DCAPS9 的D3DPTEXTURECAPS_VOLUMEMAP_POW2成员,则此值必须为 2 的幂 。 后续级别的像素尺寸将是前一级别像素维度的一半的截断值, (独立) 。 每个维度的大小为 1 个像素。 因此,如果除以 2 导致 0 (零) ,则取 1。 驱动程序支持的宽度、高度和深度) (的最大尺寸可在 D3DCAPS9 的 MaxVolumeExtent 中找到。
[in] Depth
类型: UINT
体积纹理的顶层深度(以像素为单位)。 如果设置了 D3DCAPS9 的D3DPTEXTURECAPS_VOLUMEMAP_POW2成员,则此值必须为 2 的幂 。 后续级别的像素尺寸将是前一级别像素维度的一半的截断值, (独立) 。 每个维度的大小为 1 个像素。 因此,如果除以 2 导致 0 (零) ,则取 1。 驱动程序支持的宽度、高度和深度) (的最大尺寸可在 D3DCAPS9 的 MaxVolumeExtent 中找到。
[in] Levels
类型: UINT
纹理中的级别数。 如果为零,则 Direct3D 将为支持误贴卷纹理的硬件生成所有纹理子级别,这些子级别为 1x1 像素。 调用 IDirect3DBaseTexture9::GetLevelCount 以查看生成的级别数。
[in] Usage
类型: DWORD
使用情况可以为 0,这表示没有使用值。 如果需要使用,请使用D3DUSAGE_DYNAMIC或D3DUSAGE_SOFTWAREPROCESSING。 有关详细信息,请参阅 D3DUSAGE。
[in] Format
类型: D3DFORMAT
D3DFORMAT枚举类型的成员,描述卷纹理中所有级别的格式。
[in] Pool
类型: D3DPOOL
D3DPOOL枚举类型的成员,描述应放置卷纹理的内存类。
[out, retval] ppVolumeTexture
类型: IDirect3DVolumeTexture9**
指向 IDirect3DVolumeTexture9 接口的指针的地址,表示创建的卷纹理资源。
[in] pSharedHandle
类型: HANDLE*
保留。 将此参数设置为 NULL。 此参数可用于 Windows Vista 的 Direct3D 9 中 共享资源。
返回值
类型: HRESULT
如果该方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是下列值之一:D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY、E_OUTOFMEMORY。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9.h (包括 D3D9.h) |
Library | D3D9.lib |
另请参阅
D3DXCreateVolumeTextureFromFile
D3DXCreateVolumeTextureFromFileEx
D3DXCreateVolumeTextureFromFileInMemory
D3DXCreateVolumeTextureFromFileInMemoryEx
D3DXCreateVolumeTextureFromResource