2009-08-03 4 views
2

Existe-t-il une méthode multiplateforme pour obtenir le taux de rafraîchissement du moniteur en python (2.6)? J'utilise Pygame et PyOpenGL, si cela aide.Comment puis-je déterminer le taux de rafraîchissement du moniteur?

Je n'ai pas besoin de changer la fréquence de rafraîchissement, j'ai juste besoin de savoir de quoi il s'agit.

+0

Qu'est-ce que vous allez utiliser le taux de rafraîchissement pour, si je pourrais demander? Si vous écrivez une boucle de jeu ou quelque chose, vous n'avez généralement pas besoin d'utiliser la fréquence de rafraîchissement. –

+0

Lorsque mon application est en cours d'exécution en plein écran, la fonction v-sync est activée, ce qui limite le nombre de fps à la fréquence d'actualisation. V-sync n'est pas activé en mode fenêtré, et le fps est plusieurs fois plus rapide. Je veux qu'il fonctionne à la même vitesse en fenêtré et en plein écran, donc je veux définir le maximum de fps comme le taux de rafraîchissement du moniteur. –

+0

Vous ne devriez pas lier votre logique de jeu et votre taux de rendu autant que vous avez. Regardez ici pour quelques constructions de boucle de jeu alternatives: http://dewitters.koonsolo.com/gameloop.html –

Répondre

3

Je ne suis pas sûr de la plate-forme que vous utilisez, mais sur la fenêtre, vous pouvez utiliser ctypes ou win32api pour obtenir des détails sur les périphériques, par exemple. en utilisant 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) 

sortie sur mon système:

\\.\DISPLAY1 Mobile Intel(R) 945GM Express Chipset Family 
Color: 0 
BitsPerPel: 8 
DisplayFrequency: 60 
Questions connexes