Section courante

A propos

Section administrative du site

SetOpenGLMode

Fixe le mode OpenGL
Delphi / Free Pascal WinGraph

Syntaxe

Procedure SetOpenGLMode(Direct:Boolean);

Description

Cette procédure permet de changer le mode de dessin pour les routines OpenGL. Le paramètre (Direct) est l'une des constantes suivantes :

Constante Description
DirectOff Le pilote OpenGL n'écrit pas directement à l'écran.
DirectOn Le pilote OpenGL écrit directement à l'écran.

Dans le premier mode (DirectOff), tous les dessins OpenGL sont exécutés dans le tampon OpenGL. Pour cette raison, vous devez utiliser la fonction spécifique glFlush() d'OpenGL pour libérer ce tampon dans la page active après chaque cadre. Ce mode est principalement utilisé pour les dessins OpenGL statiques lorsque la vitesse n'est pas si importante. Dans les pilotes basés sur palette, les dessins OpenGL sont affectés par la palette sélectionnée. C'est le mode par défaut.

Dans le second mode (DirectOn), tous les dessins OpenGL sont exécutés directement à l'écran. Cela signifie des graphiques à grande vitesse, mais aucune possibilité de conserver une copie de la sortie OpenGL dans la page active. Ce mode est principalement utilisé pour les images dynamiques lorsque la vitesse est importante. Les dessins OpenGL ne sont pas affectés par la palette sélectionnée.

Dans les deux modes, vous devez utiliser UpdateGraph(UpdateNow) après chaque image, afin de mettre à jour l'écran. Lors du changement de mode OpenGL, tous les paramètres OpenGL précédents sont perdus.

Vous pouvez mélanger les routines OpenGL et WinGraph, mais cela n'est généralement pas recommandé. Si vous le faites, gardez à l'esprit ce qui suit : en mode (DirectOff), les routines WinGraph doivent être appelées après la fonction glFlush() et UpdateGraph(UpdateOff) doit être activé en premier pour éviter les mises à jour d'écran entre les commandes ; en mode (DirectOn), vous pouvez mélanger ces routines comme vous le souhaitez, mais un scintillement de l'écran peut apparaître.

Avant d'appeler les routines OpenGL, vous devez vérifier avec OpenGLEnabled si le pilote OpenGL est initialisé. Voir cette routine pour plus de détails.



Dernière mise à jour : Lundi, le 10 Juillet 2023