[過去ログ] 東方関連のツール総合スレ7 (1000レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
438(3): ◆swmpLV/75E 2009/09/28(月)23:03 AAS
フレームレート制御の方法について
単純な制御方法を紹介します
void wait_for_next_frame()
{
static LONGLONG frame_count=0;
static LONGLONG last_ticks=0;
frame_count++;
省24
451(1): ◆swmpLV/75E 2009/10/03(土)23:59 AAS
>>438の補足を少し…
> LONGLONG next_ticks = last_ticks + ( ( frame_count * get_clocks_per_sec() ) / 60 );
この処理では、次のフレームの開始時刻を算出しています
多くの文献、実装では、1フレームの時間を算出して、
前のフレーム開始時刻に、1フレームの時間を足して、次のフレームの開始時刻を得ています
例:
LONGLONG frame_ticks = get_clocks_per_sec() / 60;
省21
865(2): 854 2010/03/19(金)01:42 AAS
>>861
垂直同期の実装についてご解説頂きありがとうございます
拝読した上で幾つか疑問がありましたので、ご質問させてください
1フレームの長さを計測する方法で
>そして、さらに次の垂直帰線消去期間の開始時刻を得て
とありますが、こちらはGetRasterStatusから得られるScanLineの値が再び有効な値
(InVBlank=FALSE且つScanLineの値が0<=ScanLine<画面縦解像度)になった後に、
省14
869: ◆swmpLV/75E 2010/03/20(土)01:35 AAS
※長文で投稿できないため分割しました
>>865
> 解説の中で登場するsleepは>>438に登場する独自実装sleepを指していると
> 認識しているのですが間違いないでしょうか?
仰るとおりです
vpatchでは、SetWaitableTimer+WaitForSingleObjectで大まかなsleepを行い、
あとはビジーループでQueryPerformanceCounterにて時刻をチェックし、
省18
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s