IDirect3DDevice9::CreateTexture 方法 (d3d9helper.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
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

D3DXCreateTexture

D3DXCreateTextureFromFile

D3DXCreateTextureFromFileEx

D3DXCreateTextureFromFileInMemory

D3DXCreateTextureFromFileInMemoryEx

D3DXCreateTextureFromResource

D3DXCreateTextureFromResourceEx

IDirect3DDevice9