Problème JOGL sous windows

Utilisateur anonyme - 24 déc. 2006 à 15:22
 Utilisateur anonyme - 24 déc. 2006 à 18:59
Bonjour à tous

Mon jeu marche très très bien sous linux. En revanche, sous windows ça donne ça :

Exception in thread "AWT-EventQueue-0" javax.media.opengl.GLException: Unable to                                              create OpenGL context for device context 0x150100bc
        at com.sun.opengl.impl.windows.WindowsGLContext.create(WindowsGLContext.                                             java:122)
        at com.sun.opengl.impl.windows.WindowsGLContext.makeCurrentImpl(WindowsG                                             LContext.java:150)
        at com.sun.opengl.impl.windows.WindowsOnscreenGLContext.makeCurrentImpl(                                             WindowsOnscreenGLContext.java:65)
        at com.sun.opengl.impl.GLContextImpl.makeCurrent(GLContextImpl.java:127)
        at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1                                             82)
        at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.                                             java:258)
        at javax.media.opengl.GLCanvas.display(GLCanvas.java:130)
        at javax.media.opengl.GLCanvas.paint(GLCanvas.java:142)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
        at sun.awt.RepaintArea.paint(RepaintArea.java:224)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:301)
        at java.awt.Component.dispatchEventImpl(Component.java:4486)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre                                             ad.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.                                             java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre                                             ad.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Quand je retire le full screen mode, ça me met quelque chose comme "GLException : Error swapping buffers".
Est-ce que ça vient des pilotes ATI? Que puis-je faire pour que ça marche à la fois sous windows et sous linux?

yeah! vive java

4 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 déc. 2006 à 15:54
Salut,

je vais encore troller mais pour que le jeu fonctionne il faut une nvidia et nan une daube d'ati (cela dis j'aurais plus misé sur la cause de la grosse m***e des drivers fglrx d'ati sous linux)

sinon tu à matté sur la FAQ de JOGL voir si ton prob n'est pas connu?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Utilisateur anonyme
24 déc. 2006 à 18:20
En fait, je viens de vérifier. La carte graphique, ou plutôt le chipset c'est du VIA/S3G et non du ATI. Sous linux avec ma carte ATI Radeon 9250 Pro avec des drivers Xorg fglrx, ça marche très bien. Je n'ai pas de préférence entre ATI et NVIDIA, les drivers propriétaires ne marchent pas sur mon linux, mon serveur X plante, ils y sont exaequo sauf que ma carte ATI marche avec accélération matérielle alors que j'ai laissé tomber ma carte NVIDIA qui a fini par me lâcher au bout d'une dizaine de tentatives d'installation.

Je dénonce le fait qu'ATI se soit adonné au piratage industriel et j'apprécie qu'NVIDIA fasse des efforts pour le support de linux. Mon jeu est mon projet de second semestre, il doit tourner sur Mac, Linux, Unix, Open-VMS éventuellement et windows. Je ne peux pas me permettre de ne m'intéresser qu'à un cas particuliers, à une configuration particulière. Je déteste windows et pourtant, j'ai mis des heures pour "adapter" mon code pour que ça marche aussi sous ce système d'exploitation. Voici comment :

Au lieu de mettre :

canvas.swapBuffers();

je mets plutôt :

try{canvas.swapBuffers();}catch(GLException gle){gle.printStackTrace();}

Les pilotes d'affichage doivent faire quelques bêtises au moment de changer de tampon. Pour le mode plein écran, je faisais comme ça :

GraphicsDevice gd=this.getGraphicsConfiguration().getDevice();
if(gd.isFullScreenSupported())
        gd.setFullScreenWindow(this);
else
        System.out.println("full screen mode not supported");

Apparemment, ce mode n'est pas supporté même si ça m'affiche le contraire. En le laissant tomber, il n'y a plus de "GLException : Unable to create OpenGL context ...". J'ai déjà regardé dans les autres forums mais je n'ai pas trouvé de réponse.

yeah! vive java
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
24 déc. 2006 à 18:51
Salut,

je suis du meme avis que toi concernant windows,ati et nvidia (perso je n'ai trouvé mon bonheur qu'avec les driver opensource ati soit ceux du serveur X)

concernant ton prob tu as essayé avec une simple fenetre jogl en gros sans le jeu qui tourne derriere?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Utilisateur anonyme
24 déc. 2006 à 18:59
Oui biensûr! Le problème apparait au niveau du fullscreen dès que tu fais un new GLCanvas et que tu es en fullscreen mode. Pour l'autre problème, je suis à peu près sûr que ça vient des pilotes. Je n'utilise que des pilotes opensource sous linux, il n'y a qu'avec ça que ça marche bien.

yeah! vive java
0
Rejoignez-nous