はじめましてcattailと申します。
スプライトでノベルゲーム制作中です。よろしくお願いいたします。
D3DXCreateTextureFromFileExについてなのですが、
DirectXの初期化直後にテクスチャを読み込んで絵を表示できているのですが、
ゲーム中に別の画像をD3DXCreateTextureFromFileExで読み込むとフリーズしてしまいます。
D3D_OKが返っているのでエラーは出ていないと思います。
最初に全部読んでおくとうまくいくのですが沢山絵を使うとメモリが大変になってしまうので
一枚づつリリースして読み込み直して、というのをやりたいのです。
レンダリング中に読み込むのはいけないのでしょうか?
それとも何か気を付けなければならない所などありましたら教えて頂けないでしょうか?
よろしくお願いいたします。
D3DXCreateTextureFromFileExについて
Re: D3DXCreateTextureFromFileExについて
D3DXCreateTextureFromFileExの呼び出し自体がフリーズするわけではないのですね?cattail さんが書きました: ゲーム中に別の画像をD3DXCreateTextureFromFileExで読み込むとフリーズしてしまいます。
D3D_OKが返っているのでエラーは出ていないと思います。
状況がよく分からないので、フリーズが再現できる最低限のコードを貼っていただけると助かります。
Re: D3DXCreateTextureFromFileExについて
ご返事ありがとうございます。
以下のようなソースになっています。
もしかすると全体の構築がおかしいのかもしれませんが、
上記のコードに基本的な間違いがあるかどうかもわからない状況です。
よろしくお願いします。
以下のようなソースになっています。
//初期化のとき
if (pTexture[1] != NULL){pTexture[1]->Release();}//テクチャーのリリース
if(D3DXCreateTextureFromFileEx(pDevice,"test1.jpg",160,160,0,0,D3DFMT_UNKNOWN,//「テクスチャオブジェクト」の作成
D3DPOOL_DEFAULT,D3DX_FILTER_NONE,D3DX_DEFAULT,0x000000ff,NULL,NULL,&pTexture[1]) != D3D_OK){
//エラー処理
}
//スプライトの表示のとき(マルチメディアタイマーの中で回っています)
pSprite[1]->Begin(D3DXSPRITE_ALPHABLEND);
pSprite[1]->Draw(pTexture[1],&rect1,&vec3Center,&g_vecPosition,D3DCOLOR_ARGB(g_bAlpha,255,255,255));
pSprite[1]->End();
//F1キーで2枚目を表示のとき
case WM_KEYUP:
if( wp == VK_F1 ){//F1
if (pTexture[1] != NULL){pTexture[1]->Release();}//テクチャーのリリース
if(D3DXCreateTextureFromFileEx(pDevice,"test2.jpg",160,160,0,0,D3DFMT_UNKNOWN,//「テクスチャオブジェクト」の作成
D3DPOOL_DEFAULT,D3DX_FILTER_NONE,D3DX_DEFAULT,0x000000ff,NULL,NULL,&pTexture[1]) != D3D_OK){
//エラー処理
}
}
上記のコードに基本的な間違いがあるかどうかもわからない状況です。
よろしくお願いします。
Re: D3DXCreateTextureFromFileExについて
自己解決しました。
大変お騒がせいたしました。
一週間以上も悩んでいたのですが、恥ずかしながら自分のプログラムのバグでした。
テクスチャを読み込む時はレンダリングしないようにしていたのですが、
現在レンダリング中のときはレンダリングを終わるのを待って読み込む、というのを見落としていて
フリーズしていたようです。
ここに書き込むことで冷静になれました。感謝です。
ご返事くださった方ありがとうございました。
がんばって作っていきます。
大変お騒がせいたしました。
一週間以上も悩んでいたのですが、恥ずかしながら自分のプログラムのバグでした。
テクスチャを読み込む時はレンダリングしないようにしていたのですが、
現在レンダリング中のときはレンダリングを終わるのを待って読み込む、というのを見落としていて
フリーズしていたようです。
ここに書き込むことで冷静になれました。感謝です。
ご返事くださった方ありがとうございました。
がんばって作っていきます。