IceCrystalFilePackEdit目前支持:
支持微软的资源文件打包压缩。
可以通过接口方便的读取纹理、模型等数据
支持骨骼动画的压缩存储。
目前不支持的:
1.支持对任意资源打包,但只提供了对纹理、模型数据打包的直接读取接口。
2.不支持文件夹打包。 工具不支持文件夹压缩,可以自己从数据堆栈中读取。
3.对特效文件没有接口。可以自己从数据堆栈里获取。
新版本的IceCrystalFilePackEdit 0.5.12特点:
1.文件随机加密。新的打包器将采用目前最好的加密手段MD5对文件进行随机加密。即使黑客将Qft文件破解,资源解压,没有拿到打包的密匙,里面的内容依旧无法获取。但是该加密并不妨碍打包库读取文件。
2.修正了文件名大小写导致的无法读取资源的问题。
3.优化内存,使解压包占内存更小。
4.增加了删除按钮,可以直观的删除资源。
5.增加了帮助按钮,目前帮助还没有整理齐全,我会尽快提供完整帮助。
未来版本将支持
1.文件包加密码。新的Qft文件可以增加密码设置。如果没有密码同样无法打开文件。
2.让添加资源更方便。
3.支持资源分文件夹。
4.提供FX特效文件的存储访问。
下载地址:(搜狐U盘,如果无法下载,请留mail)
http://u.sohu.com/download/11/13263401304527265414057
打包工具使用教程:
http://blog.csdn.net/m9551/article/details/5563184
QuartzFilePackage.h
#pragma once
#include <d3dx9.h>
#include <list>
enum FILEFOMAT
{
QFT_TEXT,
QFT_PNG,
QFT_JPG,
QFT_BMP,
QFT_DDS,
QFT_TGA,
QFT_WAV = 64,
QFT_MP3,
QFT_MIDI,
QFT_UNKNOW,
};
struct FILEINFO
{
char sName[128];
char sSize[128];
//FILEFOMAT fType;
};
struct XFILEINFO
{
D3DMATERIAL9* pd3dxMaterials;
LPDIRECT3DTEXTURE9 pTexture;
};
void FileNameWsap(char tempName[256],const char* sName);
void FileNameWsap(TCHAR tempName[256],const TCHAR* sName);
class CQuartzFilePackage
{
public:
CQuartzFilePackage(void);
~CQuartzFilePackage(void);
/*接口的初始化
用来初始化QuartzFile文件数据接口*/
void Init(LPDIRECT3DDEVICE9 &pd3dDevice);
/*打开资源文件
打开指定格式的资源文件*/
bool OpenSourceFromFile(const char* sname,char *pwd=NULL);
/*获取QFT文件列表
用来获取当前QFT文件中的文件列表信息*/
void GetFileNameListFormQFT(std::list<FILEINFO> &fileinfo);
/*获取纹理
这个接口用来获取D3D纹理指针*/
//目前这个类还在试验中只提供D3D纹理的接口函数
bool GetD3DTextureByName(const char * sName,LPDIRECT3DTEXTURE9 &pTexture);
/*获取mesh文件
这个接口用来获取D3D的mensh指针*/
bool GetD3DMeshByName(const char * sName,LPD3DXMESH &pMesh,std::list<XFILEINFO*> &xfileInfo);
/*获取mesh动画
这个接口用来获取D3D的Mesh动画指针*/
bool GetD3DAnimontionMeshByName(const char * sName,LPD3DXALLOCATEHIERARCHY pAlloc,
LPD3DXFRAME* ppFrameHierarchy,
LPD3DXANIMATIONCONTROLLER* ppAnimController);
private:
LPDIRECT3DDEVICE9 m_pd3dDevice;
std::list<XFILEINFO*> m_lXfileInfo;
std::list<FILEINFO> m_lFileinfo;
};