JOGL Support (JOGL2 that is)

@gouessej said:
@normen I don't understand why enabling OSCP seems to be necessary even for self signed certificates only under Mac whereas this bug under Windows occurs only with trusted certificates.

Heh, you know that theres a whole lot of other things as well? Oracles java feels much more like a beta on OSX than apples did though apples java was even missing some functionality :(
@normen said:
Heh, you know that theres a whole lot of other things as well? Oracles java feels much more like a beta on OSX than apples did though apples java was even missing some functionality :(

Ok I might have to fill a separate bug report for your bug.
@gouessej said:
Ok I might have to fill a separate bug report for your bug.

Ok so I don't know what changed when but with the latest JDK7 it works with whats in svn :)

..but for the TestMultiPostWater i get this:
[xml]INFO: Child (Statistics View) attached to this node (Gui Node)
Nov 01, 2012 12:35:07 AM com.jme3.renderer.jogl.JoglRenderer setFrameBuffer
SEVERE: Problem FBO:
FrameBuffer[format=512x512x1, drawBuf=0]
Depth => BufferTarget[format=Depth]
Color(0) => TextureTarget[format=RGBA8]

Exception in thread "AWT-EventQueue-0-AWTAnimator-1" java.lang.RuntimeException: java.lang.IllegalStateException: Incomplete multisample buffer.
at jogamp.common.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:205)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
at javax.media.opengl.Threading.invoke(Threading.java:191)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:449)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:142)
at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:176)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalStateException: Incomplete multisample buffer.
at com.jme3.renderer.jogl.JoglRenderer.checkFrameBufferError(JoglRenderer.java:1415)
at com.jme3.renderer.jogl.JoglRenderer.setFrameBuffer(JoglRenderer.java:1647)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:961)
at com.jme3.water.WaterFilter.preFrame(WaterFilter.java:199)
at com.jme3.post.FilterPostProcessor.preFrame(FilterPostProcessor.java:330)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:957)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1029)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)
at com.jme3.system.jogl.JoglDisplay.display(JoglDisplay.java:354)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:373)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:358)
at javax.media.opengl.awt.GLCanvas$7.run(GLCanvas.java:983)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:655)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:594)
at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:996)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:241)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)[/xml]

@normen it should be fixed now. Please update and give it another try.

@gouessej said:
@normen it should be fixed now. Please update and give it another try.

I get a similar error but more debug output, I'll post when I'm home.
@normen said:
I get a similar error but more debug output, I'll post when I'm home.

Ok. It is strange as I use exactly the same source code than the renderers based on the competitor of JOGL in the methods used for frame buffers.

I would like to start the port to NEWT but I have a problem. JMonkeyEngine 3.0 has no abstraction for Canvas. JmeCanvasContext.getCanvas() should not return an AWT canvas. In my humble opinion, JoglCanvas should not be forced to depend on AWT. I don't see the interest of switching to NEWT if all classes still depend on AWT, they won't be usable under Android and iOS. There should be a legacy canvas based on AWT, a canvas based on NEWT but with an AWT bridge and a canvas fully based on NEWT like for Ardor3D:
http://sourceforge.net/p/ardor3d-jogl2/code/81/tree/trunk/ardor3d-jogl2/src/main/java/com/ardor3d/framework/jogl/
@gouessej said:
Ok. It is strange as I use exactly the same source code than the renderers based on the competitor of JOGL in the methods used for frame buffers.

I would like to start the port to NEWT but I have a problem. JMonkeyEngine 3.0 has no abstraction for Canvas. JmeCanvasContext.getCanvas() should not return an AWT canvas. In my humble opinion, JoglCanvas should not be forced to depend on AWT. I don't see the interest of switching to NEWT if all classes still depend on AWT, they won't be usable under Android and iOS. There should be a legacy canvas based on AWT, a canvas based on NEWT but with an AWT bridge and a canvas fully based on NEWT like for Ardor3D:
http://sourceforge.net/p/ardor3d-jogl2/code/81/tree/trunk/ardor3d-jogl2/src/main/java/com/ardor3d/framework/jogl/

We don't have an abstraction for anything but a "normal" window and an awt canvas (as well as panel but that is special and can be left out for now) so if its possible please just make a native window using newt for the normal display and replace the existing canvas with one that also returns an awt canvas (based on newt). We can look into how to integrate advanced options of the JOGL library later, for now this kind of "hot plugging" is already exciting enough ;)

[xml]INFO: Child (Statistics View) attached to this node (Gui Node)
02.11.2012 21:22:24 com.jme3.renderer.jogl.JoglRenderer setFrameBuffer
SCHWERWIEGEND: === jMonkeyEngine FBO State ===
=== OpenGL FBO State ===
FrameBuffer[format=512x512x1, drawBuf=0]
Context doublebuffered? false
FBO ID: 1
Depth => BufferTarget[format=Depth]
Color(0) => TextureTarget[format=RGBA8]
Is proper? true

Is bound to draw? true
Is bound to read? true
Draw buffer: GL_COLOR_ATTACHMENT0
Read buffer: GL_COLOR_ATTACHMENT0
== Renderbuffer Depth ==
RB ID: 1
Is proper? true
Type: Buffer
RB ID: 1
== Renderbuffer Color0 ==
RB ID: -1
Is proper? false
Type: Texture
Exception in thread "AWT-EventQueue-0-AWTAnimator-1" java.lang.RuntimeException: java.lang.IllegalStateException: Incomplete multisample buffer.
at jogamp.common.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:205)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
at javax.media.opengl.Threading.invoke(Threading.java:191)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:449)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:142)
at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:176)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.IllegalStateException: Incomplete multisample buffer.
at com.jme3.renderer.jogl.JoglRenderer.checkFrameBufferError(JoglRenderer.java:1415)
at com.jme3.renderer.jogl.JoglRenderer.setFrameBuffer(JoglRenderer.java:1680)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:961)
at com.jme3.water.SimpleWaterProcessor.postQueue(SimpleWaterProcessor.java:230)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:979)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1029)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)
at com.jme3.system.jogl.JoglDisplay.display(JoglDisplay.java:354)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:373)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:358)
at javax.media.opengl.awt.GLCanvas$7.run(GLCanvas.java:983)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:655)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:594)
at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:996)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)[/xml]

@normen The applet you tried use JOGLNewtApplet1Run.



Maybe your bug is caused by a problem in the way of querying a GLCapabilities instance, I have no idea of fix yet.



I will implement some canvases based on NEWT without deleting those based on AWT.

@gouessej said:
I will implement some canvases based on NEWT without deleting those based on AWT.

Wasn't there this newt-awt bridge? Just make such a newt panel and return a readymade canvas, wouldn't that be possible?
@normen said:
Wasn't there this newt-awt bridge? Just make such a newt panel and return a readymade canvas, wouldn't that be possible?

If I mix AWT and NEWT stuff, you won't be able to use the canvases on iOS and Android.

Please can you run the example that causes the bug with the competitor of JOGL so that I can compare the exception traces?
@gouessej said:
If I mix AWT and NEWT stuff, you won't be able to use the canvases on iOS and Android.

Please can you run the example that causes the bug with the competitor of JOGL so that I can compare the exception traces?

a) Well actually we plan to have a separate implementation for that, a more general "native window", idk if "flattening" the desktop implementation to that level as well makes sense due to the desktop history of java. Do you plan to plug another renderer into this window or do you plan to use this renderer on android via the generic interface? Also check out the JmeSystemDelegate class, it should give you an opportunity to separate this logic a bit.

b) Uhm, the lwjgl renderer doesn't bug out like that, I don't exactly know what you mean?
@normen said:
a) Well actually we plan to have a separate implementation for that, a more general "native window", idk if "flattening" the desktop implementation to that level as well makes sense due to the desktop history of java. Do you plan to plug another renderer into this window or do you plan to use this renderer on android via the generic interface? Also check out the JmeSystemDelegate class, it should give you an opportunity to separate this logic a bit.

I have no plan for Android yet as there is no plan to implement the second code path to support Android versions lower than 2.3 in JOGL 2.0 yet and my smartphone is under Android 2.2. I have forgotten to speak about AWT-free plugins. If Java allows to run applets without AWT one day as it was planned a few years ago (in order to get an extremely short startup time), you will be happy to have some AWT-free canvases even in desktop environments. That's the same thing for embedded VMs with no AWT support, for example for video games machines.

I remind you that AWT full screen mode is still broken under Linux with KDE 4 whereas it works fine with NEWT. If you put a (NEWT) GLWindow into an AWT frame, you lose this advantage.

@normen said:
b) Uhm, the lwjgl renderer doesn't bug out like that, I don't exactly know what you mean?

I know that but you could have modified the source code to call the 2 methods displaying some information about frame buffers. Anyway I have just committed another fix, please give it a try.
@gouessej said:
I have no plan for Android yet as there is no plan to implement the second code path to support Android versions lower than 2.3 in JOGL 2.0 yet and my smartphone is under Android 2.2. I have forgotten to speak about AWT-free plugins. If Java allows to run applets without AWT one day as it was planned a few years ago (in order to get an extremely short startup time), you will be happy to have some AWT-free canvases even in desktop environments. That's the same thing for embedded VMs with no AWT support, for example for video games machines.

I remind you that AWT full screen mode is still broken under Linux with KDE 4 whereas it works fine with NEWT. If you put a (NEWT) GLWindow into an AWT frame, you lose this advantage.

Okay to try and make it clear and not lose ourselves in some terms I'll only talk from the jME/user side: You can start the renderer either with a native window/fullscreen context that doesn't depend on awt or you can get a canvas that then makes it dependent on awt. I know our settings window does depend on awt but lets put that aside for now as it can be replaced with a starter app or so setting the settings directly.

@gouessej said:
I know that but you could have modified the source code to call the 2 methods displaying some information about frame buffers. Anyway I have just committed another fix, please give it a try.

Ah right, sorry, I normally don't roam the renderer code ;)

This is what I get now:
[xml]02.11.2012 22:50:21 com.jme3.renderer.jogl.JoglRenderer setFrameBuffer
SCHWERWIEGEND: === jMonkeyEngine FBO State ===
=== OpenGL FBO State ===
Context doublebuffered? false
FBO ID: 1
Is proper? true
FrameBuffer[format=512x512x1, drawBuf=0]
Depth => BufferTarget[format=Depth]
Color(0) => TextureTarget[format=RGBA8]

Is bound to draw? true
Is bound to read? true
Draw buffer: GL_COLOR_ATTACHMENT0
Read buffer: GL_COLOR_ATTACHMENT0
== Renderbuffer Depth ==
RB ID: 1
Is proper? true
Type: Buffer
RB ID: 1
== Renderbuffer Color0 ==
RB ID: -1
Is proper? false
Type: Texture
Exception in thread "AWT-EventQueue-0-AWTAnimator-1" java.lang.RuntimeException: java.lang.IllegalStateException: Incomplete multisample buffer.
at jogamp.common.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:205)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
at javax.media.opengl.Threading.invoke(Threading.java:191)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:449)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:142)
at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:176)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.IllegalStateException: Incomplete multisample buffer.
at com.jme3.renderer.jogl.JoglRenderer.checkFrameBufferError(JoglRenderer.java:1415)
at com.jme3.renderer.jogl.JoglRenderer.setFrameBuffer(JoglRenderer.java:1680)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:961)
at com.jme3.water.SimpleWaterProcessor.postQueue(SimpleWaterProcessor.java:230)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:979)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1029)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)
at com.jme3.system.jogl.JoglDisplay.display(JoglDisplay.java:354)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:373)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:358)
at javax.media.opengl.awt.GLCanvas$7.run(GLCanvas.java:983)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:655)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:594)
at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:996)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
[/xml]

And this is lwjgls output:
[xml]=== OpenGL FBO State ===
Context doublebuffered? false
FBO ID: 1
Is proper? true
Is bound to draw? true
Is bound to read? true
Draw buffer: GL_COLOR_ATTACHMENT0
Read buffer: GL_COLOR_ATTACHMENT0
== Renderbuffer Depth ==
RB ID: 1
Is proper? true
Type: Buffer
RB ID: 1
== Renderbuffer Color0 ==
RB ID: -1
Is proper? false
Type: Texture[/xml]

Please update the source code of the JOGL renderers (use ā€œclean and buildā€ if necessary), it should work fine now.

@gouessej said:
Please update the source code of the JOGL renderers (use "clean and build" if necessary), it should work fine now.

But you didn't make any commits since? Thats how it crashes now.

@normen Look at the revision 9937, I modified readFrameBuffer.

@gouessej said:
@normen Look at the revision 9937, I modified readFrameBuffer.

Yet it crashes like so:
[xml]SCHWERWIEGEND: === jMonkeyEngine FBO State ===
=== OpenGL FBO State ===
Context doublebuffered? false
FrameBuffer[format=512x512x1, drawBuf=0]
FBO ID: 1
Depth => BufferTarget[format=Depth]
Is proper? true
Color(0) => TextureTarget[format=RGBA8]
Is bound to draw? true

Is bound to read? true
Draw buffer: GL_COLOR_ATTACHMENT0
Read buffer: GL_COLOR_ATTACHMENT0
== Renderbuffer Depth ==
RB ID: 1
Is proper? true
Type: Buffer
RB ID: 1
== Renderbuffer Color0 ==
RB ID: -1
Is proper? false
Type: Texture
Exception in thread "AWT-EventQueue-0-AWTAnimator-1" java.lang.RuntimeException: java.lang.IllegalStateException: Incomplete multisample buffer.
at jogamp.common.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:205)
at javax.media.opengl.Threading.invokeOnOpenGLThread(Threading.java:172)
at javax.media.opengl.Threading.invoke(Threading.java:191)
at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:449)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:142)
at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:176)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.IllegalStateException: Incomplete multisample buffer.
at com.jme3.renderer.jogl.JoglRenderer.checkFrameBufferError(JoglRenderer.java:1415)
at com.jme3.renderer.jogl.JoglRenderer.setFrameBuffer(JoglRenderer.java:1680)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:961)
at com.jme3.water.SimpleWaterProcessor.postQueue(SimpleWaterProcessor.java:230)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:979)
at com.jme3.renderer.RenderManager.render(RenderManager.java:1029)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:251)
at com.jme3.system.jogl.JoglDisplay.display(JoglDisplay.java:354)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:373)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:358)
at javax.media.opengl.awt.GLCanvas$7.run(GLCanvas.java:983)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:655)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:594)
at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:996)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
at java.awt.EventQueue.access$400(EventQueue.java:82)
at java.awt.EventQueue$2.run(EventQueue.java:663)
at java.awt.EventQueue$2.run(EventQueue.java:661)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)[/xml]

Hi



@normen If I donā€™t find the root cause of this bug, maybe someone else with some experience on frame buffers will be able to fix it.



There are now a NEWT canvas and a NEWT display. Only a few classes are missing for mouse and input handling.

I can look into itā€¦not that iā€™m an expert in frame buffers, but i did the filter thing, maybe I did something wrong that was coincidentally working with LWJGL.



The thing I donā€™t get is that the mentioned test case does not use multisampled framebuffer.



Gonna look into it, and see if I can help

@nehon said:
I can look into it...not that i'm an expert in frame buffers, but i did the filter thing, maybe I did something wrong that was coincidentally working with LWJGL.

The thing I don't get is that the mentioned test case does not use multisampled framebuffer.

Gonna look into it, and see if I can help

I get it with most tests really, this was TestSimpleWater but it crashes like this with most post fx as well.