何か創りたい。
http://toshirr.blog13.fc2.com/
* Toshi's Recess Room - Toshi Creates. - GDI によるアニメーション
<< 2017/09 - 2017/10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/11 >>

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[ No. ]
[ 日時 : --/--/-- (--.) --:--:-- ]
[ カテゴリ : スポンサー広告 ]


GDI によるアニメーション

メリー クリスマス。
冬季休業をまあまあ満喫中です。

クリスマスである今日なんですが、
「実力テスト実施」というプレゼントを受け取りました。。。
年末年始だろうが受験生には関係無いと言わんばかりの状態です...。

本題は GDI によるアニメーションです。
GDI で動きを作ろうと思ったら WM_TIMER や WM_PAINT を駆使する手段。
他のメッセージも受け取れるようにしなければならないので、
自分でウェイトを掛けて描画したのでは迷惑千万。なので、
一定の周期でシステムから必要な処理を呼び出して頂くということに相成ります。
それが SetTimer, KillTimer, WM_TIMER のトリオですね。

後はどんなアニメーションをさせたいかを考え、実行するのみ。

SetTimer API で、10 ミリ秒のウェイトを指定しました。
0.01 秒毎に描画するわけです。滑らかにアニメーションさせるには、
これ位あれば十分と踏んでいます。
利用しているディスプレイのリフレッシュ レートが 60 Hz なので、
60 FPS 以上あればとりあえずガクガクなことにはならないはず、と勝手に予想。
まあ、60 Hz として見る側からすれば、60 FPS 以上あったとしても
あって無いようなものでしょうが。。。無駄な仕事をさせるわけですし。

Windows Vista では、こういった GDI はハードウェアに任せなくなり、
全てソフトウェア レンダリングされるなどといったことになっているそうです。
ということは GDI に限っては、Windows XP 等よりも速くない...?

と、余談は終わりですが、
アニメーションというのはなかなか難しいものです。
カウンタを用意して、WM_TIMER が飛んで来る度にインクリメントし、
そのカウントを参照して規則正しくアニメーションの描画を行う形を取っています。
これ以外に考えは出ませんでした。
また、描画の必要がある度にメモリ デバイス コンテキストを作成して、
そこに全て描画してから、メイン ウィンドウのデバイス コンテキストに対して
一気に転送し、最後にメモリ デバイス コンテキストを解放するようにしました。

これはちらつきを避ける為ですが、先述の 0.01 秒毎のアニメーションにも
この作成しては解放し作成しては解放しを繰り返している為、
精神衛生上不摂生な気分に陥ってしまいそうなので、
メモリ デバイス コンテキストは常に持っておき、そこに選択するビットマップを
逐一作成しては解放し...を繰り返すという手段に書き替えようと思います。
ウィンドウのサイズはそのときまで分からないので、
ビットマップだけはそれに合わせて作って放して、というわけです。
この手段で上手くいったら即採用。
スポンサーサイト

[ No. 464 ]
[ 日時 : 2006/12/26 (Tue.) 00:21:28 ]
[ カテゴリ : プログラミング ]
[ コメント : 0 ]
[ トラック バック : 0 ]


コメント


コメントの投稿









トラック バック


トラック バック URI

http://toshirr.blog13.fc2.com/tb.php/464-abe670b9


前後の記事

これ以降に書かれた記事 : 適切な形に変形し(BlogPet)
これ以前に書かれた記事 : 冬季休業

プロフィール

Toshi

  • Author:Toshi
  • 何かを創りたい Toshi の記録


ブログ内の検索


最近の記事


最近のコメント


最近のトラック バック


カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


月別の記事


カテゴリ別の記事


RSS フィード


<< 2017/09 - 2017/10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 2017/11 >>
* Toshi's Recess Room - Toshi Creates. - GDI によるアニメーション
http://toshirr.blog13.fc2.com/
(C) 2005 - 2009 Toshi, All Rights Reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。