"wglMakeCurrent" sous Linux
Bonjour voila je tente de faire du code portable et je me demandais si sous linux on devais faire un equivalent de "wglMakeCurrent" par thread aussi. wglMakeCurrent semble etre purement microsoft. Il y a sous Win 1 Context OpenGL par thread. Est ce pareil en Linux ?
Re: "wglMakeCurrent" sous Linux
Citation:
wglMakeCurrent semble etre purement microsoft
comme toutes les fonctions wgl*
Citation:
Il y a sous Win 1 Context OpenGL par thread.
1 par thread ? tu as vu cela ou ? un thread est un process, tu confond peut-etre avec autre chose non ?
le context opengl doit correspondre à une "sortie" opengl, un affichage, donc tu dois en avoir un par affichage, 1 seul si tu ne crée qu'une seule vue ou même si tu as plusieurs vues au sein d'une même fenêtre. un modeleur 3D pourrait créer plusieurs contexte, un pour chaque vue, pas forcément dans plusieurs threads.
Citation:
je tente de faire du code portable
je te conseille plutot de te rabattre sur une bibliothèque de fenêtrage
comme l'a dit Bafman dans un autre post, la bibliothèque glut est facile à utiliser, sinon il y a SDL
les avantages c'est clairement le côté portable en plus d'avoir quelque chose qui est éprouvé et qui fonctionne à coup sûr
Re: "wglMakeCurrent" sous Linux
Citation:
Envoyé par shenron666
Citation:
Il y a sous Win 1 Context OpenGL par thread.
1 par thread ? tu as vu cela ou ? un thread est un process, tu confond peut-etre avec autre chose non ?
le context opengl doit correspondre à une "sortie" opengl, un affichage, donc tu dois en avoir un par affichage, 1 seul si tu ne crée qu'une seule vue ou même si tu as plusieurs vues au sein d'une même fenêtre. un modeleur 3D pourrait créer plusieurs contexte, un pour chaque vue, pas forcément dans plusieurs threads.
Par test quant je me suis casser les dents en codant. Et ca a ete confirmé par le RedBook que je vient d'éplucher ^^. En faite je Precise par, Un seul peu etre le courrant a la fois. Et je parle bien de Thread.
Citation:
To make a rendering context current, use glXMakeCurrent(); glXGetCurrentContext() returns the
current context. You can also obtain the current drawable with glXGetCurrentDrawable() and the
current X Display with glXGetCurrentDisplay(). Remember that only one context can be current for
any thread at any one time. If you have multiple contexts, you can copy selected groups of OpenGL state
variables from one context to another with glXCopyContext(). When you're finished with a particular
context, destroy it with glXDestroyContext().
Citation:
Envoyé par shenron666
Citation:
je tente de faire du code portable
je te conseille plutot de te rabattre sur une bibliothèque de fenêtrage
comme l'a dit Bafman dans un autre post, la bibliothèque glut est facile à utiliser, sinon il y a SDL
les avantages c'est clairement le côté portable en plus d'avoir quelque chose qui est éprouvé et qui fonctionne à coup sûr
Non je fait ca a la Quake3 avec un Core par type d'OS. Je ne vise que Linux et Win donc ca va ^^.
A présent, c'est réglé je sais que c'est pareil en Linux ^^.
Re: "wglMakeCurrent" sous Linux
Citation:
Envoyé par Heptaeon
En faite je Precise par, Un seul peu etre le courrant a la fois. Et je parle bien de Thread.
Là dessus oki :wink:
encore que, il est peut-etre possible d'en activer plusieurs si on a plusieurs renderers (plusieurs cartes graphiques)
pas les moyens de tester
Citation:
Non je fait ca a la Quake3 avec un Core par type d'OS. Je ne vise que Linux et Win donc ca va ^^.
Bon courage :wink: