Desactiver la v-sync

Résolu
cs_remi1203 Messages postés 42 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 5 novembre 2005 - 2 juil. 2005 à 14:40
cs_remi1203 Messages postés 42 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 5 novembre 2005 - 4 juil. 2005 à 20:48
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

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
4 juil. 2005 à 17:53
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
3
cs_remi1203 Messages postés 42 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 5 novembre 2005
4 juil. 2005 à 20:48
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
0
Rejoignez-nous