Problem moving Frame containing GLCanvas

I’m in desperate need to have this issue solved asap and hope that somebody out there can help me:

I’ve put a GLCanvas inside a Frame which is a window on the Desktop. The GLCanvas is refreshed through an animator. If I resize the window, the rendering area is updated just fine, but if I just move the window, JOGL still attempts to render to its old position and display is clipped against Canvas borders.

For example if I move the window 10 pixels to the left, the 10 leftmost pixels of the window will stop being updated (containing its content of last render before move) and the 10 rightmost pixels of the content will be clipped against the windows right border.

If I first move the window and then resize it just a pixel everything looks fine after the resize.

What might I be doing wrong and what can I do to resolve this?

I’m under the impression that JOGL should handle this itself (it does if I resize the Frame), but suspect that the necessary callbacks aren’t called if I move its parent since this doesn’t affect the relative dimensions of the GLCanvas, while a resize of the parent automatically also resizes the GLCanvas, thus work.

I’ve never seen behavior like this on any platform. What OS and graphics card? Can you post sample code that illustrates the problem on your system?

I’ve tinkered around with it a bit more and found that it seems to be related to this VM setting:

-Dsun.java2d.noddraw=true

I had to disable DirectDraw due to my graphics card (don’t remember the model, but it’s an Intel one, popular in many laptops) not working correctly in JOGL otherwise.

I don’t know if this problem has to do with the card/drivers or the VM-setting though.

Anyway, since it works on more popular gaming cards, it’s good enough for the time being, although I hope to see it solved in the future.

This is due to driver-level incompatibilities between DirectDraw and OpenGL. Java2D uses DirectDraw by default on Windows. I think that for correctness we need to specify that basically all JOGL applications should be run with -Dsun.java2d.noddraw=true on all platforms