D3DXCreateTextureFromFileExについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cattail
記事: 75
登録日時: 10年前

D3DXCreateTextureFromFileExについて

#1

投稿記事 by cattail » 10年前

はじめましてcattailと申します。
スプライトでノベルゲーム制作中です。よろしくお願いいたします。
D3DXCreateTextureFromFileExについてなのですが、
DirectXの初期化直後にテクスチャを読み込んで絵を表示できているのですが、
ゲーム中に別の画像をD3DXCreateTextureFromFileExで読み込むとフリーズしてしまいます。
D3D_OKが返っているのでエラーは出ていないと思います。
最初に全部読んでおくとうまくいくのですが沢山絵を使うとメモリが大変になってしまうので
一枚づつリリースして読み込み直して、というのをやりたいのです。
レンダリング中に読み込むのはいけないのでしょうか?
それとも何か気を付けなければならない所などありましたら教えて頂けないでしょうか?
よろしくお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: D3DXCreateTextureFromFileExについて

#2

投稿記事 by h2so5 » 10年前

cattail さんが書きました: ゲーム中に別の画像をD3DXCreateTextureFromFileExで読み込むとフリーズしてしまいます。
D3D_OKが返っているのでエラーは出ていないと思います。
D3DXCreateTextureFromFileExの呼び出し自体がフリーズするわけではないのですね?
状況がよく分からないので、フリーズが再現できる最低限のコードを貼っていただけると助かります。

cattail
記事: 75
登録日時: 10年前

Re: D3DXCreateTextureFromFileExについて

#3

投稿記事 by cattail » 10年前

ご返事ありがとうございます。
以下のようなソースになっています。

コード:

  
//初期化のとき
        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){
              //エラー処理
              }
    }
もしかすると全体の構築がおかしいのかもしれませんが、
上記のコードに基本的な間違いがあるかどうかもわからない状況です。
よろしくお願いします。

cattail
記事: 75
登録日時: 10年前

Re: D3DXCreateTextureFromFileExについて

#4

投稿記事 by cattail » 10年前

自己解決しました。
大変お騒がせいたしました。
一週間以上も悩んでいたのですが、恥ずかしながら自分のプログラムのバグでした。
テクスチャを読み込む時はレンダリングしないようにしていたのですが、
現在レンダリング中のときはレンダリングを終わるのを待って読み込む、というのを見落としていて
フリーズしていたようです。
ここに書き込むことで冷静になれました。感謝です。
ご返事くださった方ありがとうございました。
がんばって作っていきます。

閉鎖

“C言語何でも質問掲示板” へ戻る