环境:
i5 750
DDR3 4G Win7 pro x64 sp1
DXSDK 9.0c 2010 年 6 月
GeForce GT240(驱动程序 275.33) 512MB
MSVC 2008 sp1
项目:
使用DXT5(A8R8G8B8)dds格式的角色精灵图像的游戏项目。
一个精灵是每帧 512*512 大小,每一帧都是其他文件。
(我们使用渲染的 3dsmax 卡通着色器建模动画。并且 3dsmax 将每一帧渲染到彼此的文件上。)
并以这种方式加载:
HRESULT hr = D3DXCreateTextureFromFileEx( m_pd3dDevice //LPDIRECT3DDEVICE9 m_pd3dDevice
,filename_upper.c_str() //std::wstring filename_upper
,D3DX_DEFAULT_NONPOW2
,D3DX_DEFAULT_NONPOW2
,1
,0
,D3DFMT_A8R8G8B8
,D3DPOOL_MANAGED
,D3DX_FILTER_NONE
,D3DX_FILTER_NONE
,NULL
,&info // D3DXIMAGE_INFO info
,NULL
,&rsTexture //LPDIRECT3DTEXTURE9 rsTexture
);
问题:hr几乎
是S_OK。当加载许多文件时,有时它会超出 D3DXERR_INVALIDDATA。
我在谷歌上搜索,我发现这并不意味着内存不足。(内存不足是D3DERR_OUTOFVIDEOMEMORY或E_OUTOFMEMORY)
许多答案说“文件损坏或格式异常”,但我不这么认为,因为错误发生在加载随机文件中。(“加载失败的文件”是下次加载成功,或者随机相反的情况)。
有什么问题,我该怎么办?
我真的很恐慌帮助我!