Salut!
vu comme ca ca ressemble BEAUCOUP a un probleme de changement de contexte:
- chacune de tes fenêtres OpenGL est censée avoir son propore contexte, si tu crées une texture, une display list (n'importe quoi en fait) dans un certain contexte elle ne sera valide que dans celui là.
- Problème: dans la plupart des tutoriels que j'ai trouvé sur le net en me mettant a OpenGL, les changements de contexte sont proposés comme ca (c'est du code Windows, mais j'imagine que quel que soit ton envirronement c'est similaire):
wglMakeCurrent(wglGetCurrentDC(), wglGetCurrentContext())
Ca marche...tant que tu n'as qu'une seule fenêtre.
En effet si ta 2eme fenêtre appelle ca apres que la 1ere ait été crée, le "current" context que renverra windows sera celui de la 1ere...donc ca crée bcp de problèmes.
La solution: sauvegarder le DC et le RC (dans m_hDC et m_hRC par exemple) de chaque fenêtre lors de leur création puis, avant d'appeler des commandes openGL pour cette fenêtre, appeler:
wglMakeCurrent(m_hDC, m_hRC)
Encore une fois, c'est du code windows désolé, mais à mon avis faut regarder par là.
Et moralité: éviter d'utiliser les wglGetCurrent* et similaires...
bonne chance!
Partager