欢迎来到天天文库
浏览记录
ID:25286965
大小:55.50 KB
页数:30页
时间:2018-11-19
《x文件格式渲染(x file format rendering)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、x文件格式渲染(Xfileformatrendering)Convertedto.Xformat,inuse,notfinishedWhatanexampleofthebigtiger,whatascaryclothtiger!Oh,Ihelpyoutoreadthebookfirst,thisisparsing.Xfiles,anddisplayexamples/**************************************************WinMain.cppChapter2,XFile/Skinned,
2、Mesh,DemoProgramming,Role-Playing,Games,with,DirectX,2nd,EditionByJimAdams(Jan2004)Requiredlibraries:WINMM.LIB,D3D9.LIB,D3DX9.LIB,and,DXGUID.LIB**************************************************/ToreleaseCOMobjects//Macro#define,ReleaseCOM(x),if(x),{x->Release();X=NUL
3、L;}Include//files#include#include#include"d3d9.h""#include"d3dx9.h""#include"dxfile.h""#include"rmxfguid.h""#include"rmxftmpl.h""Classand//Windowhandles,captiontextHWNDg_hWnd;HINSTANCEg_hInst;Staticcharg_szClass[]="XFileClass"";"Staticcharg_szCapti
4、on[]=""XFileDemobyJimAdams"";Direct3DandDeviceobject//TheIDirect3D9*g_pD3D=NULL;IDirect3DDevice9*g_pD3DDevice=NULL;Meshdefinitionstructure//ATypedefstructsMesh{Char*m_Name;//NameofmeshID3DXMesh*m_Mesh;//MeshobjectID3DXMesh*m_SkinMesh;//SkinmeshobjectID3DXSkinInfo*m_Sk
5、inInfo;//SkininfoDWORDm_NumMaterialsmaterialsinmesh;//#D3DMATERIAL9*m_Materials;//ArrayofmaterialsIDirect3DTexture9**m_Textures;//ArrayoftexturesSMesh*m_Nextmeshinlist;//NextSMesh(){M_Name=NULL;//ClearallstructuredataM_Mesh=NULL;M_SkinMesh=NULL;M_SkinInfo=NULL;M_NumMa
6、terials=0;M_Materials=NULL;M_Textures=NULL;M_Next=NULL;}~sMesh(){Allusedresources//FreeDelete[]m_Name;m_Name=NULL;ReleaseCOM(m_Mesh);ReleaseCOM(m_SkinMesh);ReleaseCOM(m_SkinInfo);Delete[]m_Materials;m_Materials=NULL;If(m_Textures==NULL){For(DWORDi=0;i7、++)ReleaseCOM(m_Textures[i]);Delete[]m_Textures;m_Textures=NULL;}Deletem_Next;m_Next=NULL;//Deletenextmeshinlist}}sMesh;Tocontainframeinformation//StructureTypedefstructsFrame{Char*m_Name;//Frame'snameSMesh*m_Meshlistofmeshes;//LinkedSframe*m_sibling;//姊妹框架Sframe*m_ch8、ild;//子帧sframe(){/清除所有数据m_name=null;m_mesh=null;m_sibling=m_child=null;}~sframe(){//删除所有可用的资源,包括帧链表删除[]m_name;m_name=null;删除
7、++)ReleaseCOM(m_Textures[i]);Delete[]m_Textures;m_Textures=NULL;}Deletem_Next;m_Next=NULL;//Deletenextmeshinlist}}sMesh;Tocontainframeinformation//StructureTypedefstructsFrame{Char*m_Name;//Frame'snameSMesh*m_Meshlistofmeshes;//LinkedSframe*m_sibling;//姊妹框架Sframe*m_ch
8、ild;//子帧sframe(){/清除所有数据m_name=null;m_mesh=null;m_sibling=m_child=null;}~sframe(){//删除所有可用的资源,包括帧链表删除[]m_name;m_name=null;删除
此文档下载收益归作者所有