トップページ > 記事閲覧
ConvScreenPosToWorldPosがメモリ破壊?
名前:みけCAT 日時: 2013/09/28 21:31

Windows Vista Home Premium SP2 32ビット Intel(R) Core(TM)2Duo T8100 @2.10GHz 2.10GHz RAM 4.00GB gcc 4.7.2 DXライブラリ(MinGW用) Ver3.11 Ver3.11a (圧縮ファイルのMD5:B3500C93DD829D2643852093F15C113C) シェーダーを用いて画像処理を行うプログラムと、 画像処理をせずに普通に描画するプログラムの速さの比較をしようとしました。 後者のプログラムを実装するために、 vert[0].pos=ConvScreenPosToWorldPos(VGet(0.0f,0.0f,0.1f)); のような感じで描画するポリゴンの頂点座標を得ようとすると、 計測した時間が変な値になり、メモリが破壊されているようでした。 さらに、終了時に強制終了しました。 VGetを引数に入れたのが悪いのかと思い、 VECTOR GetWorldPosFromScreenPos(float x,float y,float z) { VECTOR screenPos=VGet(x,y,z); return ConvScreenPosToWorldPos(screenPos); } という関数を定義して上の文の代わりに用いたところ、計測した時間も表示されずに強制終了しました。 VGetのみを使用してposの値を設定したところ、画像は描画されませんでしたが、 強制終了することなく実行することができました。(おそらく設定した座標が適当すぎるから?) この現象は、DXライブラリ、gcc、自分のプログラムのどれの不都合だと考えられるでしょうか? プロジェクト一式(画像は入っていません、512x512の24ビットBMPを用意してください) h t t p : //gigafileupload.com/file/06595760760553925.zip
メンテ

Page: 1 |

Re: ConvScreenPosToWorldPosがメモリ破壊? ( No.1 )
名前:みけCAT 日時:2013/09/30 16:17

リファレンスのConvScreenPosToWorldPosの項目 h t t p : //homepage2.nifty.com/natupaji/DxLib/function/dxfunc_3d.html#R12N11 に載っているサンプルプログラムをコピペして試したのですが、 起動してモデルが表示されたあと7秒くらい放置すると、強制終了しました。 また、マウスカーソルをモデルが表示されている場所に重ねても、表示はNO HITのまま変わりませんでした。 3.10aと3.08cでも試しましたが、いずれも同様に強制終了し、 「データ実行防止のため閉じました」という通知が表示されました。(3.11では出ませんでした) 念のため、ソースコード及びバイナリ、Log.txtです。 モデルとTex?.bmpはいずれも3.11付属のものを使用しました。 3.11 h t t p : //gigafileupload.com/file/0039383749552580505.zip 3.10a h t t p : //gigafileupload.com/file/016580303521047923.zip 3.08c h t t p : //gigafileupload.com/file/02803700685902283.zip
メンテ
Re: ConvScreenPosToWorldPosがメモリ破壊? ( No.2 )
名前:管理人 日時:2013/10/01 00:18

> この現象は、DXライブラリ、gcc、自分のプログラムのどれの不都合だと考えられるでしょうか? 手元の gcc 4.5.2 の環境では問題なく動作しているので、gcc のバージョンが違うことが 原因である可能性が高そうです gcc 4.7.2 でコンパイルした全 a ファイルを用意するのは少し時間が必要なので 最速でも対応は今週末になると思います
メンテ
Re: ConvScreenPosToWorldPosがメモリ破壊? ( No.3 )
名前:みけCAT(解決) 日時:2013/10/01 22:06

ありがとうございます。 Ver 3.11のソースコードのうち、自分が使わなそうな一部機能を無効にし、 libDxLib.aをビルドして差し替えたところ、 公式サンプルの動作が改善しました。 また、自分のプログラムも強制終了しなくなりました。 (時間表示も正常のようですが、画像は描画されませんでした。別のところのミスかもしれないのでデバッグします) 改善したバイナリを置いておきます。 h t t p : //gigafileupload.com/file/07539621486244046.zip
メンテ
Re: ConvScreenPosToWorldPosがメモリ破壊? ( No.4 )
名前:管理人 日時:2013/10/06 05:35

gcc 4.7.2 でビルドした aファイルと gcc 4.5.2 でビルドした aファイルを別々に 用意することにしました みけCATさんの方で既に対応されているので必要ないかもしれませんが、 一応こちらにアップしました http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存