D3DXLoadMeshHierarchyFromX 函式
從 .x 檔案載入第一個框架階層。
語法
HRESULT D3DXLoadMeshHierarchyFromX(
_In_ LPCTSTR Filename,
_In_ DWORD MeshOptions,
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPD3DXALLOCATEHIERARCHY pAlloc,
_In_ LPD3DXLOADUSERDATA pUserDataLoader,
_Out_ LPD3DXFRAME *ppFrameHierarchy,
_Out_ LPD3DXANIMATIONCONTROLLER *ppAnimController
);
參數
-
檔案名 [in]
-
類型: LPCTSTR
指定檔案名的字串指標。 如果編譯器設定需要 Unicode,LPCTSTR 資料類型會解析為 LPCWSTR。 否則,字串資料類型會解析為 LPCSTR。 請參閱<備註>。
-
MeshOptions [in]
-
類型: DWORD
D3DXMESH列舉中的一或多個旗標組合,指定網格的建立選項。
-
pDevice [in]
-
IDirect3DDevice9介面的指標,即與網格相關聯的裝置物件。
-
pAlloc [in]
-
ID3DXAllocateHierarchy介面的指標。
-
pUserDataLoader [in]
-
應用程式提供的介面,允許載入使用者資料。 請參閱 ID3DXLoadUserData。
-
ppFrameHierarchy [out]
-
類型: LPD3DXFRAME*
傳回已載入框架階層的指標。 請參閱 D3DXFRAME。
-
ppAnimController [out]
-
類型: LPD3DXANIMATIONCONTROLLER*
傳回對應至 .x 檔案中動畫之動畫控制器的指標。 這是使用預設曲目和事件所建立。 請參閱 ID3DXAnimationController。
傳回值
類型: HRESULT
如果函式成功,傳回值會D3D_OK。 如果函式失敗,傳回值可以是下列其中一個值:D3DERR_INVALIDCALL,E_OUTOFMEMORY。
備註
編譯器設定也會決定函式版本。 如果已定義 Unicode,函式呼叫會解析為 D3DXLoadMeshHierarchyFromXW。 否則,函式呼叫會解析為 D3DXLoadMeshHierarchyFromXA。
檔案中的所有網格都會折迭成一個輸出網格。 如果檔案包含框架階層,所有轉換都會套用至網格。
D3DXLoadMeshHierarchyFromX 會從 .x 檔案載入動畫資料和框架階層。 它會掃描 .x 檔案,並根據透過 pAlloc 傳遞至它的 ID3DXAllocateHierarchy衍生物件來建置框架階層和動畫控制器。 載入資料需要數個步驟,如下所示:
- 衍生 ID3DXAllocateHierarchy,實作每個方法。 這會控制畫面格和網格的配置和釋放方式。
- 衍生 ID3DXLoadUserData,並實作每個方法。 如果您的 .x 檔案沒有內嵌的使用者定義資料,或者您不需要,則可以略過這個部分。
- 建立 ID3DXAllocateHierarchy 類別的物件,並選擇性地建立您的 LoadUserData 類別。 您不需要自行呼叫這些物件的任何方法。
- 呼叫 D3DXLoadMeshHierarchyFromX,傳入您的 ID3DXAllocateHierarchy 物件和 ID3DXLoadUserData 物件 (或 Null) ,以建立框架階層和動畫控制器。 所有動畫集和畫面都會自動註冊到動畫控制器。
在載入期間,會在每個畫面上回呼 CreateFrame 和LoadFrameChildData,以控制框架的載入和配置。 應用程式會定義這些方法來控制畫面的儲存方式。 CreateMeshContainer 和 LoadMeshChildData 會在每個網格物件上重新呼叫,以控制網格物件的載入和配置。 LoadTopLevelData 會針對其他方法未載入的每個最上層物件呼叫。
若要釋放此資料,請呼叫 ID3DXAnimationController::Release 以釋放動畫集,以及 D3DXFRAMEDestroy,傳入框架階層的根節點和衍生 ID3DXAllocateHierarchy 類別的物件。 DestroyFrame 和 DestroyMeshContainer 會針對框架階層中的每個畫面和網格物件呼叫。 您的 DestroyFrame實作應該釋放CreateFrame所配置的所有專案,同樣地針對網格容器方法。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱