Desactiver la v-sync

Résolu
Signaler
Messages postés
42
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
5 novembre 2005
-
Messages postés
42
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
5 novembre 2005
-
Salut,

J'ai un prog en opengl en C (sans GLUT, et je ne compte pas l'utiliser) sous windows.

Apparement la fonction SwapBuffers() limite le fps à 30 pour la
synchronisation verticale. C'est possible de la désactiver (la v-sync) ?



merci

2 réponses

Messages postés
237
Date d'inscription
lundi 20 mai 2002
Statut
Membre
Dernière intervention
22 juillet 2011
2
Salut :)



Pas très compliqué, mais il faut le savoir ;) Note : ceci devrait fonctionner sur toutes les cartes à partir de 1999...



1. Vérifier que l'extension WGL_EXT_swap_control est disponible, avec un glGetString(GL_EXTENSIONS);



2. Obtenir les pointeurs de fonctions correspondant à l'extension :



typedef void (APIENTRY *PFNWGLEXTSWAPCONTROLPROC) (int);
typedef int (*PFNWGLEXTGETSWAPINTERVALPROC) (void);

PFNWGLEXTSWAPCONTROLPROC wglSwapIntervalEXT = NULL;
PFNWGLEXTGETSWAPINTERVALPROC wglGetSwapIntervalEXT = NULL;




wglSwapIntervalEXT = (PFNWGLEXTSWAPCONTROLPROC)wglGetProcAddress("wglSwapIntervalEXT");
wglGetSwapIntervalEXT = (PFNWGLEXTGETSWAPINTERVALPROC)wglGetProcAddress("wglGetSwapIntervalEXT");


Après, on peut faire toute une série de fonctions comme :



bool VSyncActif()
{
return (wglGetSwapIntervalEXT() > 0);
}

void DefinirVSync(bool activer)
{
if (activer)
wglSwapIntervalEXT(1);
else
wglSwapIntervalEXT(0);
}




Voilà, @+ et bonne soirée

M'enfin le plus simple reste de le faire dans les parametres de ta carte graphique :D
Messages postés
42
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
5 novembre 2005

merci beaucoup !!!



en effet il fallait le savoir.



Pour les paramètres de la carte non je préfère le régler dans le code, comme ca ça marche sur n'importe quel pc.


merci.
remi1203