HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0503
Agurakiモニターのリフレッシュレートを取得する方法3解決


Aguraki

リンク

2017/5/3(Wed) 23:56:10|NO.79535

Agurakiです。
いきなりですが、モニターのリフレッシュレートを取得する方法を探しています。

HGIMG3でゲームを作っていて、フルスクリーンに出来るようにしてみたのですが、
垂直同期がONになってしまうようです。
今までリフレッシュレートが60fpsの環境しか想定してこなかったので、
このままではゲーム全体が高速に動いてしまいそうです。
そのため、モニターのリフレッシュレートを取得し、それを基に補正を掛けたいのですが、
肝心のリフレッシュレートを取得する方法がよく分かりません…

どなたか教えていただけると幸いです。



この記事に返信する


ZAP

リンク

2017/5/4(Thu) 00:32:55|NO.79537

モニタのリフレッシュレートを取得する方法はわかりませんが、

hginiで初期化する前に

hgsetreq SYSREQ_DXVSYNC,1

を入れておけば垂直同期を待たないようにすることができるので、
自前でタイマーでウェイトをとればモニタに依存しないと思います。



MillkeySoftw

リンク

2017/5/4(Thu) 04:45:18|NO.79540

ディスプレイのリフレッシュレート(動作周波数) の取得サンプル

#module _Aguraki_DisplayHz_ #uselib "user32.dll" #func EnumDisplaySettings "EnumDisplaySettingsA" sptr,int,var #define ENUM_CURRENT_SETTINGS -1 #defcfunc GetDisplayFrequency dim DEVMODE,156/4 EnumDisplaySettings 0,ENUM_CURRENT_SETTINGS,DEVMODE return DEVMODE(30) #global mes "現在のディスプレイの動作周波数 : "+GetDisplayFrequency()+" Hz"
WINAPI - User32.dll : EnumDisplaySettings
https://msdn.microsoft.com/ja-jp/library/cc428506.aspx



Aguraki

リンク

2017/5/4(Thu) 10:54:38|NO.79543

ZAPさん 垂直同期OFFの情報ありがとうございます。 オプションで切替可能にしてみます。

MillkeySoftwさん サンプルまでありがとうございます。 使わせていただきます。



ONION software Copyright 1997-2021(c) All rights reserved.