D3DXCreateCubeTextureFromFileInMemoryEx 函式

從記憶體中的檔案建立 Cube 紋理。 這是比 D3DXCreateCubeTextureFromFileInMemory更進階的函式。

語法

HRESULT D3DXCreateCubeTextureFromFileInMemoryEx(
  _In_    LPDIRECT3DDEVICE9      pDevice,
  _In_    LPCVOID                pSrcData,
  _In_    UINT                   SrcDataSize,
  _In_    UINT                   Size,
  _In_    UINT                   MipLevels,
  _In_    DWORD                  Usage,
  _In_    D3DFORMAT              Format,
  _In_    D3DPOOL                Pool,
  _In_    DWORD                  Filter,
  _In_    DWORD                  MipFilter,
  _In_    D3DCOLOR               ColorKey,
  _Inout_ D3DXIMAGE_INFO         *pSrcInfo,
  _Out_   PALETTEENTRY           *pPalette,
  _Out_   LPDIRECT3DCUBETEXTURE9 *ppCubeTexture
);

參數

pDevice [in]

類型: LPDIRECT3DDEVICE9

IDirect3DDevice9介面的指標,代表要與 Cube 紋理相關聯的裝置。

pSrcData [in]

類型: LPCVOID

要從中建立 Cube 紋理的記憶體中檔案指標。 請參閱<備註>。

SrcDataSize [in]

類型: UINT

記憶體中檔案的大小,以位元組為單位。

大小 [in]

類型: UINT

寬度 (或高度以圖元為單位) 。 如果此值為零或D3DX_DEFAULT,則會從檔案取得維度。

MipLevels [in]

類型: UINT

要求的 Mip 層級數目。 如果此值為零或D3DX_DEFAULT,則會建立完整的 mipmap 鏈結。

使用量 [in]

類型: DWORD

0、D3DUSAGE_RENDERTARGET或D3DUSAGE_DYNAMIC。 將此旗標設定為 D3DUSAGE_RENDERTARGET 表示表面要當做轉譯目標使用。 然後,資源可以傳遞至SetRenderTarget 方法的 pNewRenderTarget參數。 如果指定D3DUSAGE_RENDERTARGET,應用程式應該呼叫 CheckDeviceFormat來檢查裝置是否支援此作業。 如需使用動態紋理的詳細資訊,請參閱 使用動態紋理

格式 [in]

類型: D3DFORMAT

D3DFORMAT列舉型別的成員,描述 Cube 紋理的要求像素格式。 傳回的紋理可能與 Format所指定的格式不同。 應用程式應該檢查傳回紋理的格式。 如果 D3DFMT_UNKNOWN,則會從檔案取得格式。 如果D3DFMT_FROM_FILE,格式會與檔案中的格式完全相同,而且如果這違反裝置功能,則呼叫將會失敗。

集區 [in]

類型: D3DPOOL

D3DPOOL列舉型別的成員,描述應該放置 Cube 紋理的記憶體類別。

篩選 [in]

類型: DWORD

一或多個 D3DX_FILTER 的組合,控制影像的篩選方式。 指定此參數的D3DX_DEFAULT相當於指定D3DX_FILTER_TRIANGLE |D3DX_FILTER_DITHER。

MipFilter [in]

類型: DWORD

一或多個 D3DX_FILTER 的組合,控制影像的篩選方式。 指定此參數的D3DX_DEFAULT相當於指定D3DX_FILTER_BOX。 此外,使用位 27-31 指定要在 .dds 紋理載入記憶體時,從 mipmap 鏈結頂端略過 (的 mip 層級數目) ;這可讓您跳到最多 32 個層級。

ColorKey [in]

類型: D3DCOLOR

要以透明黑色取代的D3DCOLOR值,或 0 以停用色彩索引鍵。 這一律是 32 位的 ARGB 色彩,與來源影像格式無關。 Alpha 相當重要,而且通常應該設定為 FF 以取得不透明色彩索引鍵。 因此,對於不透明黑色,此值會等於0xFF000000。

pSrcInfo [in, out]

類型: D3DXIMAGE_INFO*

要填入來源影像檔或Null中資料描述之D3DXIMAGE_INFO結構的指標。

pPalette [out]

類型: PALETTEENTRY*

PALETTEENTRY結構的指標,代表要填入的 256 色盤或Null。 請參閱<備註>。

ppCubeTexture [out]

類型: LPDIRECT3DCUBETEXTURE9*

IDirect3DCubeTexture9介面指標的位址,代表建立的 Cube 紋理物件。

傳回值

類型: HRESULT

如果函式成功,傳回值會D3D_OK。 如果函式失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL、D3DERR_NOTAVAILABLE、D3DERR_OUTOFVIDEOMEMORY、D3DXERR_INVALIDDATA E_OUTOFMEMORY。

備註

此函式支援下列檔案格式:.bmp、.dds、.dib、.hdr、.jpg、.pfm、.png、.ppm 和 .tga。 請參閱 D3DXIMAGE_FILEFORMAT

Cube 紋理與其他表面不同,因為它們是表面集合。 若要使用 Cube 紋理呼叫 SetRenderTarget ,您必須使用 GetCubeMapSurface 選取個別臉部,並將產生的表面傳遞至 SetRenderTarget

此方法的設計目的是用來載入儲存為RT_RCDATA的影像檔,這是應用程式定義的資源 (原始資料) 。 否則,此方法將會失敗。

如需 PALETTEENTRY的詳細資訊,請參閱平臺 SDK。 請注意,從 DirectX 8.0 起, PALETTEENTRY 結構的 peFlags 成員不會如平臺 SDK 中所述。 peFlags 成員現在是 8 位 Palettized 格式的 Alpha 色板。

D3DXCreateCubeTextureFromFileInMemoryEx 會使用 DirectDraw 表面 (DDS) 檔案格式。 DirectX 紋理編輯器 (Dxtex.exe) 可讓您從其他檔案格式產生 Cube 對應,並以 DDS 檔案格式儲存。 您可以從 DirectX SDK 取得Dxtex.exe並瞭解。 如需 DirectX SDK 的相關資訊,請參閱 DirectX SDK 在哪裡?

載入 .dds 檔案時略過 mipmap 層級時,請使用 D3DX_SKIP_DDS_MIP_LEVELS 宏來產生 MipFilter 值。 此宏會接受要略過的層級數目,並傳回篩選值,然後傳遞至 MipFilter 參數。

規格需求

需求
標頭
D3dx9tex.h
程式庫
D3dx9.lib

另請參閱

D3DX 9 中的紋理函式