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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
組木紙織

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

#1

投稿記事 by 組木紙織 » 15年前

ゲーム作りのテストとして、
アニメーションの繰り返し処理をタイマーを使った場合とマルチスレッドを使った場合の
描写への影響の比較をしました。


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

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

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

シエル

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

#2

投稿記事 by シエル » 15年前

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

組木紙織

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

#3

投稿記事 by 組木紙織 » 15年前

>InvalidateRectの第3引数をTRUEにして、背景を再描画しているからではないでしょうか?

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

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

組木紙織

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

#4

投稿記事 by 組木紙織 » 15年前

>InvalidateRectの第3引数をTRUEにして、背景を再描画しているからではないでしょうか?

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る