您的位置:首页 > Web前端

如何从打包文件中读取纹理

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  buffer delete null byte file