如何从打包文件中读取纹理
2008-11-20 22:47
169 查看
刚遇到这个问题,在网上搜了下,比较简单。
之所以写在上面,是为了以后在查阅资料的时候方便一些:
就不多说了,直接贴上代码:
PakFile file; // 打包文件
if( !file.Open( ( LPSTR )texName.c_str() ) )
{
LOG.LogToFile( "log.txt", "读取纹理文件失败: %s TextureManager::GetTextureByName()", texName.c_str() );
return NULL;
}
DWORD size = file.Size();
LPBYTE buffer = new BYTE[ size ];
file.Read( buffer, size );
file.Close();
LPDIRECT3DTEXTURE9 temTex;
if( FAILED( D3DXCreateTextureFromFileInMemoryEx(
m_device,
buffer,
size,
D3DX_DEFAULT, D3DX_DEFAULT,
1,
0,
D3DFMT_UNKNOWN,
D3DPOOL_DEFAULT,
D3DX_DEFAULT,
D3DX_DEFAULT,
0, // colour key
NULL, // src box
NULL, // palette
&temTex) ) )
{
LOG.LogToFile( "log.txt", "读取[%s]纹理文件出错或者没有该文件...", texName.c_str() );
if( buffer ) delete []buffer;
return NULL;
}
if( buffer ) delete []buffer;
之所以写在上面,是为了以后在查阅资料的时候方便一些:
就不多说了,直接贴上代码:
PakFile file; // 打包文件
if( !file.Open( ( LPSTR )texName.c_str() ) )
{
LOG.LogToFile( "log.txt", "读取纹理文件失败: %s TextureManager::GetTextureByName()", texName.c_str() );
return NULL;
}
DWORD size = file.Size();
LPBYTE buffer = new BYTE[ size ];
file.Read( buffer, size );
file.Close();
LPDIRECT3DTEXTURE9 temTex;
if( FAILED( D3DXCreateTextureFromFileInMemoryEx(
m_device,
buffer,
size,
D3DX_DEFAULT, D3DX_DEFAULT,
1,
0,
D3DFMT_UNKNOWN,
D3DPOOL_DEFAULT,
D3DX_DEFAULT,
D3DX_DEFAULT,
0, // colour key
NULL, // src box
NULL, // palette
&temTex) ) )
{
LOG.LogToFile( "log.txt", "读取[%s]纹理文件出错或者没有该文件...", texName.c_str() );
if( buffer ) delete []buffer;
return NULL;
}
if( buffer ) delete []buffer;
相关文章推荐
- CVP认证学习笔记--李天宇021纹理打包文件读取
- 安卓中如何把普通文件打包进apk并且JNI中能自己读取文件内容
- 如何把位图读入内存中并显示?实现从打包文件中读取bmp文件并显示!
- 【转帖】如何从内核模式设备驱动程序中打开一个文件以及如何读取或写入文件
- java如何打包成exe可执行文件
- VS如何打包成一个安装文件
- Java中关于如何读取不同路径下图片/文件
- 如何用命令打包一个站点,包括其所有目录文件
- 如何将文件打包、压缩并分割成制定大小?
- 解决java读取大文件内存溢出问题、如何在不重复读取与不耗尽内存的情况下处理大文件
- 如何:从文件中读取 XML
- 如何将资源打包成.unity3d文件
- [dotNET]如何利用ConfigurationSettings.AppSettings.GetValues读取配置文件中多个同Key的value
- 如何让IE读取本地网页时不提示“Internet Explorer 已经限制此文件显示可能访问您的计算机的活动内容。”
- 如何用ResourceBundle来读取配置文件
- java 如何读取jar包外的properties文件(转)
- Android读取打包到assets目录下的文件
- 阿里云ECS云服务器Windows如何通过IIS配置网站支持flv、mp4等文件访问读取
- 如何读取yaml(yml)文件
- 如何用ResourceBundle来读取配置文件