環境:
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です)
多くの回答は「ファイルが破損しているか、異常にフォーマットされています」と言っていますが、ランダムファイルのロードでエラーが発生するため、そうは思いません。(「ロードに失敗したファイル」は、次回は正常にロードされるか、その逆のケースがランダムにロードされます)。
何が問題で、どうすればよいですか?
本当にパニックです助けて!