IDirect3DDevice9::CreateTexture 方法 (d3d9.h)
建立紋理資源。
語法
HRESULT CreateTexture(
[in] UINT Width,
[in] UINT Height,
[in] UINT Levels,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DTexture9 **ppTexture,
[in] HANDLE *pSharedHandle
);
參數
[in] Width
類型: UINT
紋理最上層的寬度,以圖元為單位。 後續層級的圖元維度將會是前一層圖元維度的一半截斷值, (獨立) 。 每個尺寸的大小會固定為 1 圖元。 因此,如果除以 2 的結果為 0,則會改用 1。
[in] Height
類型: UINT
紋理的最上層高度,以圖元為單位。 後續層級的圖元維度將會是前一層圖元維度的一半截斷值, (獨立) 。 每個尺寸的大小會固定為 1 圖元。 因此,如果除以 2 的結果為 0,則會改用 1。
[in] Levels
類型: UINT
紋理中的層級數目。 如果這是零,Direct3D 會針對支援 Mipmapped 紋理的硬體,將會產生 1 x 1 圖元的所有紋理子層級。 呼叫 IDirect3DBaseTexture9::GetLevelCount 以查看產生的層級數目。
[in] Usage
類型: DWORD
使用方式可以是 0,表示沒有使用值。 不過,如果需要使用方式,請使用一或多個 D3DUSAGE 常數的組合。 最好是將 usage 參數與 IDirect3D9::CreateDevice中的行為旗標相符。
[in] Format
類型: D3DFORMAT
D3DFORMAT列舉型別的成員,描述紋理中所有層級的格式。
[in] Pool
類型: D3DPOOL
D3DPOOL列舉型別的成員,描述應該放置紋理的記憶體類別。
[out, retval] ppTexture
類型: IDirect3DTexture9**
IDirect3DTexture9介面的指標,代表已建立的紋理資源。
[in] pSharedHandle
類型: HANDLE*
保留的。 將此參數設定為 Null。 此參數可用於 Direct3D 9,讓 Windows Vista 共用資源。
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果方法失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY。
備註
應用程式可以透過呼叫具有D3DUSAGE_AUTOGENMIPMAP的IDirect3D9::CheckDeviceFormat,以特定格式探索自動產生 Mipmap (Direct3D 9) 的支援。 如果 IDirect3D9::CheckDeviceFormat 傳回D3DOK_NOAUTOGEN, IDirect3DDevice9::CreateTexture 將會成功,但會傳回一層紋理。
在 Windows Vista CreateTexture 中,可以從系統記憶體指標建立紋理,讓應用程式能夠更彈性地使用、配置和刪除系統記憶體。 例如,應用程式可以傳遞 GDI 系統記憶體點陣圖指標,並取得其周圍的 Direct3D 紋理介面。 搭配 CreateTexture 使用系統記憶體指標具有下列限制。
- 紋理的間距必須等於寬度乘以每個圖元的位元組數目。
- 僅支援具有單一 Mipmap 層級的紋理。 Levels引數必須是 1。
- Pool引數必須D3DPOOL_SYSTEMMEM。
- pSharedHandle引數必須是可保存系統記憶體點之緩衝區的有效指標;*pSharedHandle必須是系統記憶體的有效指標,其大小為紋理寬度的位元組 * 紋理高度 * 每個圖元紋理格式的位元組。
需求
目標平台 | Windows |
標頭 | d3d9.h (包含 D3D9.h) |
程式庫 | D3D9.lib |
另請參閱
D3DXCreateTextureFromFileInMemory
D3DXCreateTextureFromFileInMemoryEx