Je me rapproche de la solution, cependant il me retourne une exception que je ne sais pas solver.
J'utilise cette ligne de code que j'ai trouvé dans la javadoc de JOGL dans un nouveau thread:
GLContext glc = GLDrawableFactory.getDesktopFactory().createExternalGLContext();
cependant cette ligne me renvoit cette exception :
javax.media.opengl.GLException: Error: attempted to make an external GLContext without a context current, werr 0
at jogamp.opengl.windows.wgl.WindowsExternalWGLContext.create(WindowsExternalWGLContext.java:79)
at jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory.createExternalGLContextImpl(WindowsWGLDrawableFactory.java:588)
at jogamp.opengl.GLDrawableFactoryImpl.createExternalGLContext(GLDrawableFactoryImpl.java:446)
at models.object.ThreadImport.run(ThreadImport.java:68)
at java.lang.Thread.run(Unknown Source)
Je cherche toujours pour résoudre cette erreur et ainsi avoir un nouveau context openGL mais si vous savez pourquoi j'ai cette exception, merci de me le dire.
[EDIT]
Je viens de trouver l'erreur, en fait, il faut créer le context OpenGL dans un thread ou un context OpenGL est déjà créé. Je le créé donc dans le constructeur avec :
1 2
| GLDrawableFactory.initSingleton();
glc = GLDrawableFactory.getDesktopFactory().createExternalGLContext();//avec GLContext glc |
et je récupère mon context dans le nouveau thread, je fais : puis je récupère mon objet GL2 et je fais ce que j'ai à faire.
L'ennuis c'est que le probleme revient au probleme du début, il me retourne la même excpetion, donc :
javax.media.opengl.GLException: array vertex_buffer_object must be enabled to call this method
at jogamp.opengl.gl4.GL4bcImpl.checkBufferObject(GL4bcImpl.java:34324)
at jogamp.opengl.gl4.GL4bcImpl.checkArrayVBOEnabled(GL4bcImpl.java:34351)
at jogamp.opengl.gl4.GL4bcImpl.glVertexAttribPointer(GL4bcImpl.java:32871)
at models.object.ObjectVBO.draw(ObjectVBO.java:342)
Partager