2
python(2.6)でモニタのリフレッシュレートを取得するためのクロスプラットフォームの方法はありますか?私はPygameとPyOpenGLを使用しています。どのようにしてモニタのリフレッシュレートを決定できますか?
私はリフレッシュレートを変更する必要はありません、私はそれが何であるかを知る必要があります。
python(2.6)でモニタのリフレッシュレートを取得するためのクロスプラットフォームの方法はありますか?私はPygameとPyOpenGLを使用しています。どのようにしてモニタのリフレッシュレートを決定できますか?
私はリフレッシュレートを変更する必要はありません、私はそれが何であるかを知る必要があります。
使用するプラットフォームについてはわかりませんが、ウィンドウではctypesやwin32apiを使用してデバイスに関する詳細を取得できます。私のシステム上のWin32API
import win32api
def printInfo(device):
print((device.DeviceName, device.DeviceString))
settings = win32api.EnumDisplaySettings(device.DeviceName, -1)
for varName in ['Color', 'BitsPerPel', 'DisplayFrequency']:
print("%s: %s"%(varName, getattr(settings, varName)))
device = win32api.EnumDisplayDevices()
printInfo(device)
出力を使用して:あなたは、私が頼むかもしれない場合は、のためのリフレッシュレートを使用しようとしている何
\\.\DISPLAY1 Mobile Intel(R) 945GM Express Chipset Family
Color: 0
BitsPerPel: 8
DisplayFrequency: 60
?ゲームのループなどを書いている場合は、通常、リフレッシュレートを使用する必要はありません。 –
私のアプリが全画面で実行されているときに、v-syncが有効になり、fpsがリフレッシュレートで上書きされます。 V-syncはウィンドウモードでは有効になっておらず、fpsは何倍も高速です。ウィンドウとフルスクリーンで同じスピードで動作させたいので、モニターのリフレッシュレートとして最大fpsを設定します。 –
あなたのゲームロジックとレンダリングレートをあなたのものと同じように結ぶべきではありません。いくつかの代替ゲームループの構造を見てください:http://dewitters.koonsolo.com/gameloop.html –