Menu

#61 RectangularClusterTracker openGL error with jAER1.5

closed
None
normal
jAER
RectangularClusterTracker
1.5
DVS128
Windows
2014-05-19
2014-05-19
BjoernBeyer
No

Since jAER 1.5 release the RectangularClusterTracker can not be used, due to a openGL related bug. The error message is attached below.

The relevant lines of code in the filter are:

GLU glu = new GLU();
GLUquadric clusterRadiusQuad = glu.gluNewQuadric();

I think this should be easy as it should be just related to the JOGL2 update.
However I dont know how to fix it.

When the filter is selected the following error appears:

May 19, 2014 10:10:38 AM net.sf.jaer.eventprocessing.FilterChain contructPreferredFilters
WARNING: couldn't construct filter net.sf.jaer.eventprocessing.tracking.RectangularClusterTracker for chip    ch.unizh.ini.jaer.chip.retina.DVS128 : java.lang.reflect.InvocationTargetException will remove    this filter from Preferences
javax.media.opengl.GLException: No OpenGL context current on this thread
at javax.media.opengl.glu.GLU.getCurrentGL(GLU.java:177)
at javax.media.opengl.glu.GLU.gluNewQuadric(GLU.java:1303)
at javax.media.opengl.glu.GLU.gluNewQuadric(GLU.java:1291)
at net.sf.jaer.eventprocessing.tracking.RectangularClusterTracker.<init>(RectangularClusterTracker.java:179)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at net.sf.jaer.eventprocessing.FilterChain.contructPreferredFilters(FilterChain.java:377)
at net.sf.jaer.eventprocessing.FilterFrame.renewContents(FilterFrame.java:516)
at net.sf.jaer.eventprocessing.FilterChain.customize(FilterChain.java:420)
at net.sf.jaer.eventprocessing.FilterFrame.jbuttonSelectFiltActionPerformed(FilterFrame.java:681)
at net.sf.jaer.eventprocessing.FilterFrame.access$600(FilterFrame.java:42)
at net.sf.jaer.eventprocessing.FilterFrame$6.actionPerformed(FilterFrame.java:249)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Discussion

  • Luca Longinotti

    Luca Longinotti - 2014-05-19

    Fixed in revision 4680.
    JOGL 2.0 requires OpenGL resources to be created inside valid OpenGL contexts, which means in our case mostly inside the draw() method. The easy and working fix here is to just set the instance variables to null, and then perform a quick if (glu == null) check and do the initialization inside the actual draw() method, right at the start.

     
  • Luca Longinotti

    Luca Longinotti - 2014-05-19
    • status: open --> closed
    • Component: --> RectangularClusterTracker
     

Log in to post a comment.