トップページ > 過去ログ > 記事閲覧
DeleteGraphについて
名前:パインキラー 日時: 2007/02/03 14:53

いつもDXライブラリ使わせて頂きお世話になっております。 大変初歩的な質問ですみませんが気になって仕方がないので書き込みさせていただきます。 1.LoadGraph等で読み込んだグラフィックは DeleteGraphでメモリから削除するということですが、 DeleteGraphせずにゲームを終了した場合は、 ゲーム終了後もメモリに残っていて、 パソコンの電源切るまでずっと残りっぱなしということになったりしないのでしょうか? 2.LoadGraphで読み込んだグラフィックをDerivationGraphで分割したあと、DeleteGraphでメモリから消す場合、LoadGraphから読み込んだグラフィックだけDeleteGraphすればいいのでしょうか? 3.1と似てますがメモリから読み込んだサウンドを DeleteSoundMemせずにゲーム終了した場合、メモリに残ったままになったりしないのでしょうか?

Page: 1 |

Re: DeleteGraphについて ( No.1 )
名前:けいし 日時:2007/02/04 18:15

 いえ、開放し忘れたものは、ソフト終了時に自動的に開放してくれるので、大丈夫ですよ  ただ、ソフト終了時までは残るので、開放せずにロードばかりしてると、メモリ不足等になるというだけです
Re: DeleteGraphについて ( No.2 )
名前:パインキラー 日時:2007/02/04 22:37

お返事ありがとうございます。 ずっと疑問に思ってて悩んでたことがこれで解決しました。 ところで質問の2番ですが 「 // グラフィックのロード Graph = LoadGraph( "testDiv.bmp" ) ; Graph2 = DerivationGraph( 0, 32, 32, 32, Graph ) ; DrawGraph( 100, 100, Graph2, TRUE ) ; (中略) DeleteGraph( Graph ) ; DeleteGraph( Graph2 ) ; 」 の 最後のDeleteGraph( Graph2 ) ; って必要なのか必要ないのかが分からないのですが どうなのでしょうか? この場合だと DeleteGraph( Graph ) ; だけで済みそうな感じがするので、 そうだとしたらかなり楽になるのですが・・・
Re: DeleteGraphについて ( No.3 )
名前:管理人 日時:2007/02/05 12:31

 パインキラーさん始めまして、DXライブラリの管理人です。 > 最後のDeleteGraph( Graph2 ) ; > って必要なのか必要ないのかが分からないのですが > どうなのでしょうか?  必要です。  内部で「Graph2 のハンドルは Graph のハンドルから派生した「子」的な存在」 という形態を採っていれば Graph を解放した時点で Graph2 のハンドルも解放 されるという仕組みであることが自然ですが、現在のDXライブラリでは 「Graph と Graph2 で使用する画像を共有している」という形態を採って いますので、Graph が DeleteGraph されても Graph2 も DeleteGraph される までは Graph = LoadGraph( "testDiv.bmp" ) ; でビデオメモリに読み込まれた 画像データは生き続けます。
Re: DeleteGraphについて ( No.4 )
名前:パインキラー 日時:2007/02/06 02:44

管理人様お返事ありがとうございます。大変よくわかりました。 これで不明だった点全て解決し安心してゲーム作りまくれます。ありがとうございました。

Page: 1 |