Unwrapping a TraceGL/DebugGL

I want to integrate per frame tracing into xith3d. The problem is, that there seems to be no functionality to get the underlying GL object, that is wrapped into a DebugGL or TraceGL instance. So how do I disable the debug/trace pipeline once installed? Is storing the GL object when creating the debug/trace pipeline for later injection into the GLCanvas the preferred sollution?

Sorry about that – we didn’t plan for this. Right now there’s no public API but you could use reflection and setAccessible(true) to fetch the “downstreamGL” field in the TraceGL or DebugGL. That would be preferable because the underlying GL instance is thrown away and re-created for example when the OpenGL context is re-created. Please file an Enhancement with the JOGL Issue Tracker.

What happens to the DebugGL or TraceGL instance if a GL context is recreated? Is the downstreamGL field silently replaced or is the DebugGL/TraceGL instance discarded and needs to be reinstalled in the init() and/or reshape() method?

It’s discarded and needs to be reinstalled in the init() (though definitely not the reshape()) method.