トップページ > 過去ログ > 記事閲覧
あたり判定によるメモリリーク?
名前:すにー 日時: 2011/09/05 22:02

お世話になっています。 大量のメモリリークに悩まされていたのですが原因がMV1CollCheck_Sphereにあるという結論になりました。 いろいろ変なことをやっているので別の箇所が原因かもしれませんが確認していただけますでしょうか。 /*地面との衝突判定*/ #define R (100000000) if(pos.y<500){ int num; num=MV1CollCheck_Sphere( handle, -1, VGet((float)pos.x,-R,(float)pos.z), R ).HitNum; //handleはMV1DuplicateModelで作成したもの if(num){ /* (処理) */ #ifdef DEBUG ofs<<"衝突"<<std::endl; #endif } } //--出力-- 9293:Alloc memory dump 9295: size: 76000( 74.219kb) file:Lib\DxModel.cpp line:29987 ID:5960 addr:0c245fe8 data:<....../E.p..{w.E> [01 00 00 00 02 cf 2f 45 10 70 d3 c0 7b 77 89 45] 9297: size: 76000( 74.219kb) file:Lib\DxModel.cpp line:29987 ID:5957 addr:0c2336b0 data:<.....'.E....)u.E> [01 00 00 00 f1 27 2e 45 be 13 80 c1 29 75 88 45] 9298: size: 76000( 74.219kb) file:Lib\DxModel.cpp line:29987 ID:5954 addr:0c220d78 data:<......,E.....u.E> [01 00 00 00 d8 86 2c 45 d3 e4 c7 c1 ab 75 87 45] 9299: size: 76000( 74.219kb) file:Lib\DxModel.cpp line:29987 ID:5951 addr:0c20e440 data:<....5.-E."...H.E> [01 00 00 00 35 f5 2d 45 9e 22 f2 c0 f9 48 84 45] : : 9369: size: 76000( 74.219kb) file:Lib\DxModel.cpp line:29987 ID:5738 addr:0af6be68 data:<.......D8...S..E> [01 00 00 00 a3 8d 94 44 38 89 da c0 53 cb 08 45] 9370: size: 76000( 74.219kb) file:Lib\DxModel.cpp line:29987 ID:5735 addr:0af59530 data:<.....b.D.......E> [01 00 00 00 a4 62 92 44 00 9c f2 be fb 1f 07 45] 9371: Total size:5776000(5640.625kb) Alloc num:76 //--Log-- 衝突 衝突 : : 衝突 衝突 (計76個) 環境は VC++2010Express Win7 です よろしくお願いします。

Page: 1 |

Re: あたり判定によるメモリリーク? ( No.1 )
名前:いっち 日時:2011/09/05 22:08

MV1CollCheck_Sphere のサンプルコードでも同じ事象が発生するのでしょうか? > h t t p ://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_3d.html#R9N5
Re: あたり判定によるメモリリーク? ( No.2 )
名前:すにー 日時:2011/09/05 22:27

サンプルでは問題ありませんでした MV1DuplicateModelやMV1RefreshCollInfoを利用しても同じでした
Re: あたり判定によるメモリリーク? ( No.3 )
名前:いっち 日時:2011/09/05 23:09

そうなりますと、事象の再現するソースコード無しで原因の究明を行うのは難しいように思います。
Re: あたり判定によるメモリリーク? ( No.4 )
名前:ysnr 日時:2011/09/06 06:51

MV1CollResultPolyDimTerminate をしていない、 もしくは漏れがあるのではないでしょうか。 >また、この関数は当たるポリゴンの数が不定である関係上、 >動的にメモリを確保していますので、 戻り値の情報が >必要なくなった場合は MV1CollResultPolyDimTerminate 関数に >戻り値の構造体を渡して後始末を行う必要があります。
Re: あたり判定によるメモリリーク? ( No.5 )
名前:すにー 日時:2011/09/06 09:26

いっちさん申し訳ありませんでした。 ysnrさんありがとうございます。 後処理を完全に忘れていました。

Page: 1 |