ページ 11

マルチスレッドとタイマーによるアニメーションについて

Posted: 2010年7月08日(木) 20:08
by 組木紙織
ゲーム作りのテストとして、
アニメーションの繰り返し処理をタイマーを使った場合とマルチスレッドを使った場合の
描写への影響の比較をしました。


マルチスレッドではちらつきが出ないのにもかかわらず、
シングルスレッドでやった時はちらつきが出てきます。
何故このような事が起こるのでしょうか?

サンプルコードを添付しました。
MULTI_THREADを1とするとマルチスレッドで動作するようにしています。

画像も一緒に添付しようとしたのですが、大きすぎるとおこられたので コードのみにしてます。

Re:マルチスレッドとタイマーによるアニメーションについて

Posted: 2010年7月08日(木) 20:28
by シエル
タイマーを使ったシングルスレッドでは下記のように、
InvalidateRectの第3引数をTRUEにして、背景を再描画しているからではないでしょうか?
::InvalidateRect(hWnd,NULL,TRUE);

Re:マルチスレッドとタイマーによるアニメーションについて

Posted: 2010年7月08日(木) 20:34
by 組木紙織
>InvalidateRectの第3引数をTRUEにして、背景を再描画しているからではないでしょうか?

そうでした、FALSEにしたらどちらもちらつきがなく動きました。

初歩的な質問で申し訳ありませんでした。
ありがとうございます

Re:マルチスレッドとタイマーによるアニメーションについて

Posted: 2010年7月08日(木) 20:34
by 組木紙織
>InvalidateRectの第3引数をTRUEにして、背景を再描画しているからではないでしょうか?

そうでした、FALSEにしたらどちらもちらつきがなく動きました。

初歩的な質問で申し訳ありませんでした。
ありがとうございます