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