OSX El Capitan issues

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

OSX El Capitan issues

mchristyuk
Hi Guys,

Just to say that I've noticed some strange behaviour in JOGL with 2.3.1 and 2.3.2 with El Capitan having installed it over the weekend. What I'm about to describe does not happen with older versions of JOGL from about 12 months ago (not sure of the exact versions).

Essentially placing a couple GLCanvas's in any kind of toggle container (TabPane/CardLayout/etc..) causes one to always show up over the top of the other and when resizing the container neither window resizes.

I've tried making a few simple test examples with a single GLCanvas and it shows the same incorrect resize behaviour. However if the GLCanvas is the root item in the frame then it appears to work ok..

The Java output window spews out the following:

Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const: conn 0x18543 token 0xfffffffffff428
Oct 19 11:01:02  java[4781] <Warning>: Backtrace (at 8153.17):
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  0   CoreGraphics                        0x00007fff9865e0b4 CGSDisableUpdateToken + 155
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  1   AppKit                              0x00007fff8cacc4c3 ___disable_updates_sync_block_invoke_2 + 17
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  2   libdispatch.dylib                   0x00007fff8d816453 _dispatch_client_callout + 8
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  3   libdispatch.dylib                   0x00007fff8d817a3a _dispatch_barrier_sync_f_invoke + 74
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  4   AppKit                              0x00007fff8cacc391 NSCGSDisableUpdates + 1162
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  5   AppKit                              0x00007fff8cacbe12 NSCGSTransactionRunPreCommitActionsForOrder_ + 156
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  6   AppKit                              0x00007fff8cacbd59 NSCGSTransactionRunPreCommitActions_ + 21
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  7   AppKit                              0x00007fff8d2746de -[_NSCGSTransaction synchronize] + 42
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  8   AppKit                              0x00007fff8d274851 NSCGSTransactionSynchronize + 76
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  9   AppKit                              0x00007fff8d060a19 -[NSSurface syncSurfaceWantsExtendedDynamicRange] + 150
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  10  AppKit                              0x00007fff8cb9ed59 -[NSSurface _createSurface] + 677
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  11  AppKit                              0x00007fff8cb9e6b4 -[NSSurface setFrame:] + 785
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  12  AppKit                              0x00007fff8cb9dfbe -[NSSurface syncToViewUnconditionally] + 174
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  13  AppKit                              0x00007fff8cb9dc6c -[NSSurface orderSurface:relativeTo:] + 101
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  14  AppKit                              0x00007fff8cc91d0a NSOpenGLContextAttachOnScreenViewSurface + 183
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  15  AppKit                              0x00007fff8cfb877b __27-[NSOpenGLContext setView:]_block_invoke + 192
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  16  AppKit                              0x00007fff8cabb0a9 NSPerformVisuallyAtomicChange + 147
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  17  AppKit                              0x00007fff8cc7ead1 -[NSOpenGLContext setView:] + 119
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  18  libjogl_desktop.jnilib              0x000000012d6e5dc0 createContext + 400
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  19  libjogl_desktop.jnilib              0x000000012d74bab5 Java_jogamp_opengl_macosx_cgl_CGL_createContext0__JJZJZLjava_lang_Object_2I + 149
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  20  ???                                 0x000000010bf9ead4 0x0 + 4495895252
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  21  ???                                 0x000000010bf90760 0x0 + 4495837024
Oct 19 11:01:02  java[4781] <Warning>: void CGSUpdateManager::log() const:  22  ???                                 0x000000010bf90760 0x0 + 4495837024

I'm presuming Apple have changed something again in the newest release of OSX that's upsetting things.. I've tried different Java versions and it doesn't make any difference..

Many Thanks

Mark
Reply | Threaded
Open this post in threaded view
|

Re: OSX El Capitan issues

gouessej
Administrator
Hi

Please make a real bug report:
http://jogamp.org/wiki/index.php/Jogl_FAQ#Bugreports_.26_Testing

Be more accurate, provide more information and a test case or use an existing unit test. If it's a regression, indicate precisely which version was working.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: OSX El Capitan issues

mchristyuk
Hi Julien,

As soon as I get chance to put something together I will.. just thought I'd post this as a "heads up"... or in case I'd missed something obvious!

Many Thanks

Mark
Reply | Threaded
Open this post in threaded view
|

Re: OSX El Capitan issues

mchristyuk
Hi Julien,

I've managed to fix/work around this issue.. but now I'm not sure whether it's a bug or a mistake in my coding. However it does only effect El Capitan so that might be a clue!

Essentially I had the code that finalised the layout of my panels and set them visible in a SwingUtilities.invokeLater() block. If I take them out of the block everything behaves correctly (although I do get that random text output still in the original message).

As soon as I put the calls back into the "invokeLater" thread then the second GLCanvas goes all screwy and essentially draws all over the top of the first GLCanvas.

As there may be a big "warning don't do this" message in some of the JOGL documentation somewhere then I won't raise this as a bug just yet...

Many Thanks

Mark
Reply | Threaded
Open this post in threaded view
|

Re: OSX El Capitan issues

gouessej
Administrator
Hi

Actually, putting some UI code into SwingUtilities.invokeLater() is a good idea. There is probably a bug in AWT under OS X. Which JVM do you use? Please can you indicate more precisely what you mean by "the code that finalised the layout of my panels and set them visible". In my humble opinion, it would be safer for us that you provide a tiny piece of code to reproduce your bug.
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: OSX El Capitan issues

mchristyuk
Hi Julien,

I did make a simple little demo whilst I was tracking down the problem. In fact I made two that I thought were identical and one showed the problem and one did not.. which had me stumped for a while.

The demo was just two GLCanvas's in separate Tab panes.

If I remember correctly if I just put the JFrame.setVisible(true) in the invokeLater section it broke.. removed the invokeLater and it displayed correctly.

I'll dig the code out from my machine when I'm back in the office.. but it really was that simple.

The JVM is the latest Oracle release (and also tested on some older Oracle 1.8 releases).

Many Thanks

Mark