###実現したいこと
Dxライブラリを用いた、幾何学的模様の全画面表示
その際の幾何学模様の計算をOpenMPを用いて並列処理し処理時間を短縮したい。
###詳細な状況
C++においてDxLibを用いて、ある計算したパターンをモニター上に全画面表示しようとしています。
その際、表示する模様は計算によって出力しています。
具体的には
#pragma omp parallel for for (i=o;i<1080;i++){ for(j=0;j<1080;j++){ if (条件文){ DrawPixelSoftImage(handle,j,i,0,0,0,255);} else{DrawPixelSoftImage(handle,j,i,0,0,0,255);} } } grhandle = CreateGraphFromSoftImage(handle); DeleteSoftImage(handle); DrawGraph(0,0,grhandle,TRUE)
としています。
コンパイルや実行はできているのですが、表示される画面が砂嵐のようなものになっていてその解決法がわからず困っています。
しかし、並列処理している
#pragma omp parallel for
の部分をコメントアウトすると砂嵐はなくなりました。なので原因がそこにあるのは間違いないようです。
DxLibの表示画面とOpenMPの並列処理はこのように影響し合うものなのでしょうか。
もし詳しくご存じの方がおられたらぜひお知恵をお貸しください。
砂嵐の画面は毎回同じものではなく、実行したうちの何回かは砂嵐の下に表示させたい模様が垣間見えていたので模様の計算などは問題ないのかと思っています。
###補足情報(言語/FW/ツール等のバージョンなど)
Visual C++, Visual Studio Community 2017
Windows 7 64 bit operating system
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/02 06:46
2017/08/02 06:48