-
Thread + opengl + sdl
Bonjour.
J'utilise Sdl pour fenêtrer Opengl. J'ai constaté qu'il était impossible de "threader" opengl.
Mais j'aurai voulu désynchroniser l'affichage d'éventuels autres traitements.
Donc j'ai une classe "Affichage", avec une méthode "init" et "run".
Dans "init" l'affichage est initialisé, et dans "run" un thread déroule les appels opengl pour l'affichage. Evidement cela ne marche pas.
Une solution consiste à mettre l'"init" dans le "run" pour que tout opengl se fasse dans le même thread.
Mes questions sont :
- est-ce que quelqu'un à des lien qui expliquent techniquement pourquoi cela doit être comme cela ?
- est-ce qu'il y a plus élégant comme solution ?
- est-ce que de jouer avec les contextes est faisable (et joli) ?
-
il faut bien comprendre que la création d'un contexte OpenGL dans un thread implique que le contexte sera lié à ce thread
expliquer le pourquoi de ce qui peux sembler une limitation n'est pas de mon ressort, mais plutot que de dire qu'il est impossible de threader OpenGL il faut plutot comprendre que OpenGL est déjà threadé (c'est le driver et le GPU qui s'occupent de tout)
lancer une commande OpenGL n'est pas bloquant et ce peu importe la durée d'execution de la commande (sans parler de glFlush) tout se passera côté driver / GPU(s)