Fonction D3DXLoadMeshHierarchyFromX
Charge la première hiérarchie d’images à partir d’un fichier .x.
Syntaxe
HRESULT D3DXLoadMeshHierarchyFromX(
_In_ LPCTSTR Filename,
_In_ DWORD MeshOptions,
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPD3DXALLOCATEHIERARCHY pAlloc,
_In_ LPD3DXLOADUSERDATA pUserDataLoader,
_Out_ LPD3DXFRAME *ppFrameHierarchy,
_Out_ LPD3DXANIMATIONCONTROLLER *ppAnimController
);
Paramètres
-
Nom de fichier [in]
-
Type : LPCTSTR
Pointeur vers une chaîne qui spécifie le nom de fichier. Si les paramètres du compilateur nécessitent Unicode, le type de données LPCTSTR est résolu en LPCWSTR. Sinon, le type de données de chaîne est résolu en LPCSTR. Consultez la section Notes.
-
MeshOptions [in]
-
Type : DWORD
Combinaison d’un ou plusieurs indicateurs de l’énumération D3DXMESH qui spécifient des options de création pour le maillage.
-
pDevice [in]
-
Type : LPDIRECT3DDEVICE9
Pointeur vers une interface IDirect3DDevice9 , l’objet d’appareil associé au maillage.
-
pAlloc [in]
-
Type : LPD3DXALLOCATEHIERARCHY
Pointeur vers une interface ID3DXAllocateHierarchy .
-
pUserDataLoader [in]
-
Type : LPD3DXLOADUSERDATA
Interface fournie par l’application qui permet le chargement des données utilisateur. Consultez ID3DXLoadUserData.
-
ppFrameHierarchy [out]
-
Type : LPD3DXFRAME*
Retourne un pointeur vers la hiérarchie d’images chargée. Consultez D3DXFRAME.
-
ppAnimController [out]
-
Type : LPD3DXANIMATIONCONTROLLER*
Retourne un pointeur vers le contrôleur d’animation correspondant à l’animation dans le fichier .x. Il est créé avec des suivis et des événements par défaut. Consultez ID3DXAnimationController.
Valeur retournée
Type : HRESULT
Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être l’une des valeurs suivantes : D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Notes
Le paramètre du compilateur détermine également la version de la fonction. Si Unicode est défini, l’appel de fonction est résolu en D3DXLoadMeshHierarchyFromXW. Sinon, l’appel de fonction est résolu en D3DXLoadMeshHierarchyFromXA.
Tous les maillages du fichier seront réduits en un seul maillage de sortie. Si le fichier contient une hiérarchie de trames, toutes les transformations seront appliquées au maillage.
D3DXLoadMeshHierarchyFromX charge les données d’animation et la hiérarchie de trames à partir d’un fichier .x. Il analyse le fichier .x et génère une hiérarchie de trames et un contrôleur d’animation en fonction de l’objet dérivé d’ID3DXAllocateHierarchy qui lui est passé via pAlloc. Le chargement des données nécessite plusieurs étapes comme suit :
- Dérivez ID3DXAllocateHierarchy, implémentant chaque méthode. Cela contrôle la façon dont les trames et les maillages sont alloués et libérés.
- Dérivez ID3DXLoadUserData, implémentant chaque méthode. Si votre fichier .x ne contient aucune donnée incorporée définie par l’utilisateur, ou si vous n’en avez pas besoin, vous pouvez ignorer cette partie.
- Créez un objet de votre classe ID3DXAllocateHierarchy et éventuellement de votre classe LoadUserData. Vous n’avez pas besoin d’appeler vous-même des méthodes de ces objets.
- Appelez D3DXLoadMeshHierarchyFromX, en passant votre objet ID3DXAllocateHierarchy et votre objet ID3DXLoadUserData (ou NULL) pour créer la hiérarchie de trames et le contrôleur d’animation. Tous les jeux et images d’animation sont automatiquement inscrits sur le contrôleur d’animation.
Pendant le chargement, CreateFrame et LoadFrameChildData sont rappelés sur chaque image pour contrôler le chargement et l’allocation de l’image. L’application définit ces méthodes pour contrôler le mode de stockage des trames. CreateMeshContainer et LoadMeshChildData sont rappelés sur chaque objet de maillage pour contrôler le chargement et l’allocation d’objets de maillage. LoadTopLevelData est rappelé pour chaque objet de niveau supérieur qui n’est pas chargé par les autres méthodes.
Pour libérer ces données, appelez ID3DXAnimationController::Release pour libérer les jeux d’animations et D3DXFRAMEDestroy, en passant le nœud racine de la hiérarchie de trames et un objet de votre classe ID3DXAllocateHierarchy dérivée. DestroyFrame et DestroyMeshContainer seront chacun appelés pour chaque image et objet de maillage dans la hiérarchie d’images. Votre implémentation de DestroyFrame doit libérer tout ce qui est alloué par CreateFrame, ainsi que pour les méthodes de conteneur de maillage.
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi