null window handle: GDISurface

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

null window handle: GDISurface

runiter
I sometimes get this error when starting my Java3D app. When this happens the Canvas3D doesn't render anything (remains black). Is there a workaround for this?

com.jogamp.nativewindow.NativeWindowException: null window handle: GDISurface[ displayHandle 0x0
, surfaceHandle 0x0
, size 100x100
, UOB[ WINDOW_INVISIBLE ]
, WindowsWGLGraphicsConfiguration[DefaultGraphicsScreen[WindowsGraphicsDevice[type .windows, connection decon, unitID 0, handle 0x0, owner false, NullToolkitLock[obj 0x81ae8ff]], idx 0], pfdID 9, ARB-Choosen true,
        requested GLCaps[rgba 8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/0/8, sample-ext default, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], offscr[fbo]],
        chosen    GLCaps[wgl vid 9 arb: rgba 8/8/8/0, opaque, accum-rgba 16/16/16/16, dp/st/ms 24/0/0, dbl, mono  , hw, GLProfile[GL4bc/GL4bc.hw], on-scr[.]]]
, surfaceLock <19d7a112, 66caca87>[count 1, qsz 0, owner <J3D-Renderer-1>]
, GDIDummyUpstreamSurfaceHook[pixel 100x100]
, upstreamSurface false ]
        at jogamp.nativewindow.windows.GDISurface.lockSurfaceImpl(GDISurface.java:102)
        at jogamp.nativewindow.ProxySurfaceImpl.lockSurface(ProxySurfaceImpl.java:208)
        at jogamp.opengl.GLDrawableImpl.lockSurface(GLDrawableImpl.java:307)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:607)
        at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:591)
        at j3dcore/org.jogamp.java3d.JoglPipeline.useCtx(JoglPipeline.java:7264)
        at j3dcore/org.jogamp.java3d.Canvas3D.useCtx(Canvas3D.java:4861)
        at j3dcore/org.jogamp.java3d.Canvas3D.makeCtxCurrent(Canvas3D.java:2420)
        at j3dcore/org.jogamp.java3d.Canvas3D.makeCtxCurrent(Canvas3D.java:2406)
        at j3dcore/org.jogamp.java3d.Renderer.doWork(Renderer.java:997)
        at j3dcore/org.jogamp.java3d.J3dThread.run(J3dThread.java:271)
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

gouessej
Administrator
Hi

It would help if you could reproduce this problem with JOGL but without Java3D, even sporadically. Do you really request a configuration to perform offscreen rendering? Please indicate which hardware you use.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

runiter
I doubt I could reproduce this with pure JOGL. It only happens occasionally in my Java3D at random runs.

My graphics card is:
NVIDIA GeForce GTX 1660 Ti
CPU:
Intel i7-3770K

I'm using JCanvas3D which I guess indirectly calls offscreen rendering?

I'm adding JCanvas3D to a JPanel which is added to Javafx panel. Is there a better way to do this?
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

gouessej
Administrator
If you used NewtCanvasJFX, the interaction with OpenJFX / JavaFX would be easier and would use less intermediary classes.

Please can you provide a simple reproducer with Java3D if you think you can't reproduce it without Java3D?

I vaguely remember that Java3D Canvas3D and JCanvas3D do NOT extend GLCanvas and GLJPanel.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

runiter
Interesting, I didn't know about NewtCanvasJFX.
I will try switching to that to see if that resolves the issue. Thanks
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

gouessej
Administrator
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

runiter
Looks like NewtCanvasJFX is only for JOGL. There's no equivalent in Java3D yet?
Saeid Nourian, Ph.D. Eng. | Graphing Calculator 3D
Reply | Threaded
Open this post in threaded view
|

Re: null window handle: GDISurface

gouessej
Administrator
Only Phil can answer.
Julien Gouesse | Personal blog | Website