[原创]CQuartzFileUnZip类库 v0.3

来源:互联网 发布:键盘教程软件视频 编辑:程序博客网 时间:2024/06/11 19:08

今天更新了CQuartzFileUnZip类库

 

昨天完成了CQuartzFileUnZip类库读取*.QFT文件包中的图片信息接口,今天又努力了一天,终于把.X文件的接口完成了!

 

现在这个类库可以直接读取压缩包里面的.x文件,并把.x文件内部的信息全部以info的列表方式返回;这样可以轻松的绘制.x文件信息了!

 

简单介绍一下这个类的用法。

 

 

 

程序开始的地方跟原来的D3D一样,声明mesh模型指针:

LPD3DXMESH              g_pMesh          = NULL; // Our mesh object in sysmem

CQuartzFileUnZip        g_MDFile;

 

/********读取QFT文件内部数据********/

//打开资源文件
 g_MDFile.OpenSourceFromFile("test.QFT","");

 

//根据资源名称读取资源文件,并返回mesh指针和x文件内部信息xFlieInfo;

 if(!g_MDFile.GetMeshByName("tiger.X",g_pMesh,g_xinfo))
         return false;

 

其中pMesh内包含的就是QFT文件中模型数据tiger.X模型指针。

g_xinfo内包含了tiger.X文件中的材质信息和纹理信息。

 

其他的操作和原来的程序就没有区别了,我们在Render()里渲染老虎模型:

 

  std::list<XFILEINFO*>::iterator it = g_xinfo.begin();
  for( DWORD i=0; i<g_xinfo.size(); i++,++it )
  {
   // Set the material and texture for this subset
   g_pd3dDevice->SetMaterial( (*it)->pd3dxMaterials );
   g_pd3dDevice->SetTexture( 0, (*it)->pTexture);

   // Draw the mesh subset
   g_pMesh->DrawSubset( i );
  }

 

值得注意的是,这里获取的g_pmesh指针和材质,纹理指针都是内存数据,CQuartzFileUnZip类不会释放资源的,需要程序员手动调用释放。

资源打包编辑器和CQuartzFileUnZip库文件在下载资源里可以找到。

 

QuartzFilePackEdit v0.3  打包工具下载:

http://download.csdn.net/source/2300215

 

QuartzFileUnZip_lib v0.3 类库下载

http://download.csdn.net/source/2300197

 

原创粉丝点击