Função D3DXLoadMeshHierarchyFromX
Carrega a primeira hierarquia de quadros de um arquivo .x.
Sintaxe
HRESULT D3DXLoadMeshHierarchyFromX(
_In_ LPCTSTR Filename,
_In_ DWORD MeshOptions,
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPD3DXALLOCATEHIERARCHY pAlloc,
_In_ LPD3DXLOADUSERDATA pUserDataLoader,
_Out_ LPD3DXFRAME *ppFrameHierarchy,
_Out_ LPD3DXANIMATIONCONTROLLER *ppAnimController
);
Parâmetros
-
Nome do arquivo [in]
-
Tipo: LPCTSTR
Ponteiro para uma cadeia de caracteres que especifica o nome do arquivo. Se as configurações do compilador exigirem Unicode, o tipo de dados LPCTSTR será resolvido para LPCWSTR. Caso contrário, o tipo de dados de cadeia de caracteres é resolvido para LPCSTR. Consulte Observações.
-
MeshOptions [in]
-
Tipo: DWORD
Combinação de um ou mais sinalizadores da enumeração D3DXMESH que especificam opções de criação para a malha.
-
pDevice [in]
-
Tipo: LPDIRECT3DDEVICE9
Ponteiro para uma interface IDirect3DDevice9 , o objeto do dispositivo associado à malha.
-
pAlloc [in]
-
Tipo: LPD3DXALLOCATEHIERARCHY
Ponteiro para uma interface ID3DXAllocateHierarchy .
-
pUserDataLoader [in]
-
Tipo: LPD3DXLOADUSERDATA
Interface fornecida pelo aplicativo que permite o carregamento de dados do usuário. Consulte ID3DXLoadUserData.
-
ppFrameHierarchy [out]
-
Tipo: LPD3DXFRAME*
Retorna um ponteiro para a hierarquia de quadros carregados. Consulte D3DXFRAME.
-
ppAnimController [out]
-
Tipo: LPD3DXANIMATIONCONTROLLER*
Retorna um ponteiro para o controlador de animação correspondente à animação no arquivo .x. Isso é criado com faixas e eventos padrão. Consulte ID3DXAnimationController.
Valor retornado
Tipo: HRESULT
Se a função for bem-sucedida, o valor retornado será D3D_OK. Se a função falhar, o valor retornado poderá ser um dos seguintes valores: D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Comentários
A configuração do compilador também determina a versão da função. Se Unicode for definido, a chamada de função será resolvida para D3DXLoadMeshHierarchyFromXW. Caso contrário, a chamada de função será resolvida para D3DXLoadMeshHierarchyFromXA.
Todas as malhas do arquivo serão recolhidas em uma malha de saída. Se o arquivo contiver uma hierarquia de quadros, todas as transformações serão aplicadas à malha.
D3DXLoadMeshHierarchyFromX carrega os dados de animação e a hierarquia de quadros de um arquivo .x. Ele examina o arquivo .x e cria uma hierarquia de quadros e um controlador de animação de acordo com o objeto derivado de ID3DXAllocateHierarchy passado para ele por meio de pAlloc. O carregamento dos dados requer várias etapas da seguinte maneira:
- Derivar ID3DXAllocateHierarchy, implementando cada método. Isso controla como quadros e malhas são alocados e liberados.
- Derivar ID3DXLoadUserData, implementando cada método. Se o arquivo .x não tiver dados inseridos definidos pelo usuário ou se você não precisar dele, poderá ignorar essa parte.
- Crie um objeto da classe ID3DXAllocateHierarchy e, opcionalmente, da classe LoadUserData. Você não precisa chamar nenhum método desses objetos por conta própria.
- Chame D3DXLoadMeshHierarchyFromX, passando o objeto ID3DXAllocateHierarchy e o objeto ID3DXLoadUserData (ou NULL) para criar a hierarquia de quadros e o controlador de animação. Todos os conjuntos de animação e quadros são registrados automaticamente no controlador de animação.
Durante a carga, CreateFrame e LoadFrameChildData são chamados novamente em cada quadro para controlar o carregamento e a alocação do quadro. O aplicativo define esses métodos para controlar como os quadros são armazenados. CreateMeshContainer e LoadMeshChildData são chamados novamente em cada objeto de malha para controlar o carregamento e a alocação de objetos de malha. LoadTopLevelData é chamado de volta para cada objeto de nível superior que não é carregado pelos outros métodos.
Para liberar esses dados, chame ID3DXAnimationController::Release para liberar os conjuntos de animação e D3DXFRAMEDestroy, passando o nó raiz da hierarquia de quadros e um objeto da classe ID3DXAllocateHierarchy derivada. DestroyFrame e DestroyMeshContainer serão chamados para cada objeto de quadro e malha na hierarquia de quadros. Sua implementação do DestroyFrame deve liberar tudo alocado por CreateFrame e, da mesma forma, para os métodos de contêiner de malha.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também