aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Made GLJPanel.display() use paintImmediately all the time; removed Kenneth Russel2005-02-271-24/+10
| | | | | | | now-unnecessary semaphore and heuristics git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@247 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated documentation to reflect single-threaded workaroundKenneth Russel2005-02-271-50/+63
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@246 232f8b59-042b-4e1e-8c03-345bb8c30851
* Moved debug printout of all available capabilities before selection of Kenneth Russel2005-02-261-6/+6
| | | | | | | window system's recommended choice git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@242 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 109: Two animator threads on two Frames crash Kenneth Russel2005-02-243-15/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed Issue 124: SIGSEGV on Fedora Core 3 / NVIDIA Stability problems have been reported on all three of JOGL's major supported platforms (Windows, Linux and Mac OS X) whose root cause is multithreading-related bugs in vendors' OpenGL drivers. On Windows, the most recent version of NVidia's drivers (66.93) when run on a GeForce 6800 causes a blue screen of death upon exit from the simplest JOGL demo (Gears). On Linux, JVM crashes have been reported upon exit of certain test cases on NVidia hardware. The same test case causes a report of an unexpected async reply from Xlib on ATI hardware (at the last time of testing -- I no longer have access to a Linux machine with ATI hardware because all of their currently available drivers crash the X server on my machine). On Mac OS X, low-level warnings from Cocoa are printed in multithreaded JOGL situations which can lead to JVM crashes. All of these problems' root cause is that the current OpenGL drivers on the market, or supporting software built on them, were not designed to be used in a multithreaded fashion. Most C programs which use OpenGL are either single-threaded or perform all of their OpenGL work from a single thread. JOGL was originally designed to support OpenGL rendering from arbitrary threads and appropriate synchronization was introduced into the library to handle this. However, we have had to scale back this support as stability issues have been encountered. The most recent round of reported bugs, including the PC crash upon exit of the JOGL demos, is serious enough that we must take drastic measures. Support was introduced in earlier JOGL releases to move all of the OpenGL work performed by JOGL and users' code via the GLEventListener on to the AWT event dispatch thread. It turns out that doing this works around all of the above reported bugs. In JOGL 1.1 b08 and 1.1 b09, code changes were made to make this single-threaded support more correct; this checkin includes another small set of such changes, including some to the GLPbuffer implementation, and changes the default of the flag controlling this support to true. -Djogl.1thread=true is now the default. -Djogl.1thread=auto restores the behavior of previous releases, which was to enable the single-threaded mode only with ATI cards. This auto-detection mechanism was not robust enough and adding cases for the crashes above was not feasible. -Djogl.1thread=false disables the single-threaded workaround. Older synonyms for this system property, JOGL_SINGLE_THREADED_WORKAROUND and ATI_WORKAROUND, remain in the source base for the time being. Changing the value of any of these system properties is not recommended. The expected performance impact of these changes is minimal. In earlier JOGL releases it appeared that the overhead of making a context current and releasing it each frame was very significant and a key differentiator in being able to match C performance. More recent tests seem to indicate that this is no longer the case, at least with current hardware. Regardless, we must achieve stability in order for the library to be useful and this seems to be the best means of achieving that goal. We believe that the compatibility impact of these changes for existing JOGL applications will also be minimal. For correctly-written JOGL applications, the only visible change in behavior should be that the values of thread-local variables accessed through the java.lang.ThreadLocal class may change since the actual thread on which the GLEventListener's callbacks will be executed may have changed. Multithreaded JOGL applications performing complex inter-thread synchronization may see subtle differences in behavior. We hope that such applications and the developers writing them will be able to handle this change in behavior without much trouble. We will continue to work with graphics card vendors to improve the stability of their OpenGL drivers. Until that happens, we believe this change will yield the best possible improvement in stability and portability for applications using JOGL. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@241 232f8b59-042b-4e1e-8c03-345bb8c30851
* Moved GLJPanel.reshape() work onto EventQueue thread under assumption Kenneth Russel2005-02-241-47/+62
| | | | | | | that it will be more stable on some cards git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@240 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added version string to verbose outputKenneth Russel2005-02-231-0/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@239 232f8b59-042b-4e1e-8c03-345bb8c30851
* Partial fix for Issue 114: GLCanvas canCreateOffscreenDrawable() function ↵Kenneth Russel2005-02-233-2/+11
| | | | | | | | | | | always returns true Fixed the Windows implementation of this routine to check for the presence of the WGL_ARB_pbuffer and WGL_ARB_pixel_format extensions. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@238 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 141: No NIO support in CgGL Kenneth Russel2005-02-231-0/+5
| | | | | | | A NioMode directive was missing from the cg-common.cfg file. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@237 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 140: glu.gluBuild2DMipmaps crash Kenneth Russel2005-02-231-11/+28
| | | | | | | | | Last portion of fix. Fixed typo in one loop in scale_internal_byte and scale_internal_ubyte routines, correcting visual artifacts. Fixed truncated comments. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@236 232f8b59-042b-4e1e-8c03-345bb8c30851
* Changed comments to C++ style to be able to comment out blocksKenneth Russel2005-02-231-8/+8
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@235 232f8b59-042b-4e1e-8c03-345bb8c30851
* Partial fix for Issue 140: glu.gluBuild2DMipmaps crash Kenneth Russel2005-02-231-0/+24
| | | | | | | | | | | | | | | | | This was a bug in the SGI GLU sample implementation and was reproduced by converting the attached test program to C and compiling in the code from the sample implementation. This bug was already fixed in the Mesa sources as bug 2510 and the patch was found at http://cvs.freedesktop.org/mesa/Mesa/src/glu/sgi/libutil/mipmap.c?rev=1.6&view=log by Googling for the terms "mipmap.c last row". The fix is to add a test-and-clamp for the highest row read from the texture. There is still a problem with visual artifacts when scaling non-power-of-two textures that this test case reproduces and that is continuing to be investigated. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@234 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 143: Pbuffer creation in display() causes exception Kenneth Russel2005-02-231-0/+9
| | | | | | | | | | | Fixed / worked around problem found by user mustang on the javagaming forums where if a recursive makeCurrent failed, it would incorrectly end up freeing the parent context. Not completely confident of this bug fix, but definitely fixes the mentioned problem and doesn't appear to break any of the demos. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@233 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug in gluScaleImage pointed out by user benjunmun on javagaming Kenneth Russel2005-02-221-0/+4
| | | | | | | forums. No test case yet, but fix seems correct. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@232 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed problem pointed out by user chrisDUPUIS on javagaming forums Kenneth Russel2005-02-221-2/+2
| | | | | | | where GLJPanel.display() wasn't synchronous but should have been git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@231 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated version string to 1.1 b10Kenneth Russel2005-02-151-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@230 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated Java Web Start jars to 1.1 b09Kenneth Russel2005-02-155-0/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@229 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated version string to 1.1 b09.Kenneth Russel2005-02-151-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@228 232f8b59-042b-4e1e-8c03-345bb8c30851
* Worked around bugs in NVidia's recent drivers. Added more debugging code.Kenneth Russel2005-02-141-22/+48
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@227 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed performance issues with accelerated GLJPanel on ATI cards. Kenneth Russel2005-02-141-25/+2
| | | | | | | | | Setting of the GL_PACK_LSB_FIRST property confused the drivers even though it didn't apply to the frame buffer readback (it applies only for bitmap data, and we were reading bytes.) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@226 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 110: NativeLibLoader should have a flag for loading the library Kenneth Russel2005-02-121-25/+36
| | | | | | | Applied suggested patch from submitter. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@225 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed unneeded rewind() calls.gkw2005-02-111-22/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@224 232f8b59-042b-4e1e-8c03-345bb8c30851
* OutOfMemoryError exceptions are now handled correctly.gkw2005-02-111-230/+161
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@223 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added extended error code information for wglShareLists failuresKenneth Russel2005-02-101-1/+2
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@222 232f8b59-042b-4e1e-8c03-345bb8c30851
* gluBuild2DMipmapLevelsCore packed-pixel routines were pointinggkw2005-02-081-12/+12
| | | | | | | to the wrong source buffer and were halving to the wrong size. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@221 232f8b59-042b-4e1e-8c03-345bb8c30851
* Changed certain http:// links to https://Kenneth Russel2005-02-081-7/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@220 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated webstart jars to 1.1 b08Kenneth Russel2005-02-075-0/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@218 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed problem with glu-impl-macosx.cfg after enabling of GKW's pureKenneth Russel2005-02-071-3/+3
| | | | | | | Java port of mipmap and scaling routines git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@217 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed problem in glu-impl-x11.cfg after switch over to use GKW's pureKenneth Russel2005-02-072-8/+10
| | | | | | | | | Java port of GLU mipmap and image scaling routines. Fixed problem in attempted workaround to allow Cg libraries to be found on java.library.path. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@216 232f8b59-042b-4e1e-8c03-345bb8c30851
* Hooked in GKW's Java port of the GLU library's mipmap and image Kenneth Russel2005-02-079-55/+1916
| | | | | | | | | | | | | | | | | scaling operations. Added new ForceProcAddressGen directive to GlueGen to force the addresses of the C routines to be fetched even though the functions were being ignored by the core JavaEmitter. Cut down on the number of variants of gluScaleImage and associated routines. Changed the Java signatures of the affected methods to take Buffer again instead of ByteBuffer (as was done during prototyping) to attempt to maintain binary compatibility with current JOGL programs. Fixed bug / problem in gluScaleImage implementation where incorrect scaling of pixel values was being applied in Image.empty_image(); there may be additional problems here for other pixel types. Put debugging code in BuildMipmap under jogl.debug.BuildMipmap System property. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@215 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 136: Return correct pbuffer support for ATI cardsKenneth Russel2005-02-071-0/+11
| | | | | | | | Added a workaround in X11GLContext for bug in ATI's drivers where they report only GLX 1.2 support, but actually do support pbuffers. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@214 232f8b59-042b-4e1e-8c03-345bb8c30851
* Changes to GLJPanel to make it work on Mac OS XKenneth Russel2005-02-041-7/+22
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@213 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added double-buffer argument to Mac OS X OpenGL context creationKenneth Russel2005-02-044-0/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@212 232f8b59-042b-4e1e-8c03-345bb8c30851
* Issue 44: Add pbuffer-based GLJPanel implementation Kenneth Russel2005-02-041-1/+2
| | | | | | | | Enabled hardware acceleration for GLJPanel by default after testing on Windows and Linux platforms. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@211 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug in X11GLContext where additional locking was needed inKenneth Russel2005-02-042-1/+19
| | | | | | | | pbuffer case. Doesn't seem to (and shouldn't) affect the normal onscreen case. Added additional debugging output. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@210 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 44: Add pbuffer-based GLJPanel implementation Kenneth Russel2005-02-0313-156/+563
| | | | | | | | | | | | | | | | | | | | | | | | Fixed Issue 61: Make debug variables load from system properties Added a hardware acceleration path for GLJPanel implemented using the GLPbuffer interfaces. If instantiation of the pbuffer fails, the GLJPanel implementation attempts to catch the resulting exception and fall back on the existing software rendering path. The new code has been successfully tested on Windows. This checkin attempts to make the needed changes to the pbuffer implementation on other platforms, but the GLJPanel continues to use software rendering until all platforms can be tested. Additionally, references to static final DEBUG flags have been made settable via system properties. "jogl.verbose" enables certain printing statements. "jogl.debug" enables all debugging printing. "jogl.debug.GLContext" enables the debug printing inside the GLContext class. The system property names are chosen by convention and are not enforced. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@209 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed build problems after integration of GKW's Java port of GLU Kenneth Russel2005-02-037-19/+219
| | | | | | | mipmap code git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@208 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added copy of JOGL/GlueGen overview talk slidesKenneth Russel2005-02-031-0/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@207 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added mipmap codegkw2005-02-031-0/+157
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@206 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 37: GLJPanel + Animator.stop() halts event dispatch thread Kenneth Russel2005-02-031-2/+1
| | | | | | | Updated heuristic of when to block waiting for the animator to stop. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@205 232f8b59-042b-4e1e-8c03-345bb8c30851
* Initial Check-Ingkw2005-02-0331-0/+10142
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@204 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed HTML for nav barKenneth Russel2005-02-021-7/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@203 232f8b59-042b-4e1e-8c03-345bb8c30851
* Merged in changes from Blackbird branch: refactoring and rewriting of Kenneth Russel2005-02-029-80/+172
| | | | | | | | | portions of GlueGen for more flexibility. Also fixed source-level problems associated with making GLCapabilities' clone() not throw CloneNotSupportedException. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@202 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 41: WindowsOffscreenGLContext failed to create with "Unable to ↵Kenneth Russel2005-01-312-3/+11
| | | | | | | | | | | | | | set pixel format" This is probably due to JOGL trying to request a double-buffered pixel format for the offscreen surface. To prevent applications from having to explicitly set the DoubleBuffered property of the GLCapabilities to false, the GLCanvas now clones the incoming GLCapabilities and disables double-buffering before requesting the underlying GLContext. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@200 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 102: Fail to find cgShader environment with webstart Kenneth Russel2005-01-311-1/+16
| | | | | | | | | | | Incorporated suggestion from submitter to call System.loadLibrary() on cg and cgGL before calling System.loadLibrary() on jogl_cg. Hopefully this will help Java Web Started applications by allowing the person doing the deployment to also deploy the Cg runtime environment if desired. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@199 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 99: intptr_t undefined compiling with VS .NET 2003 VC++ Kenneth Russel2005-01-312-4/+4
| | | | | | | | | | | Applied patch from submitter. I am not convinced it is correct because we definitely needed that #if clause in order to make JOGL compile with VC7. However, since I don't have a VC7 installation to test with and since the patch reportedly makes it work with Visual Studio 2003, I'll assume it's correct. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@198 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 95: incorrect bsh env fu in docs/HowToBuild.html Kenneth Russel2005-01-311-1/+1
| | | | | | | Applied typo fix from bug report. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@197 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 118: EXCEPTION_ACCESS_VIOLATION on show of 2nd canvas ↵Kenneth Russel2005-01-313-2/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (ATI-specific) The root cause of this bug was not the new DummyGL code, but severe bugs in ATI's OpenGL drivers where it appears that if an OpenGL context is ever made current on more than one thread during the lifetime of an application, problems begin to occur such as the SetPixelFormat call failing on the just the next newly-created HDC, or all subsequent SetPixelFormat calls failing on all subsequently-created HDCs. This was occurring because the single-threaded ATI workaround's automatic detection mechanism was not being enabled until the first time a context was made current, but by then it was typically too late; the context was made current on the end user's thread during e.g. Frame.show(), and if it was ever made current on another thread (like the AWT event queue thread, which is where all OpenGL operations are performed when the single-threaded workaround is enabled) then the problems would begin. The failure has only been seen on Windows so far; ATI's drivers on X11 seem to be better behaved. The workaround is to check for the presence of ATI's drivers very early during JOGL's initialization, by looking in the system directory for atioglxx.dll, and enabling the single-threaded workaround if it was found. This workaround causes the attached test case to work properly. Also added some more debugging code to make diagnosing problems like these easier in the future. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@196 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 97: Flickering when using ATI_WORKAROUND Kenneth Russel2005-01-292-14/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | The root cause was that JOGL's single-threaded workaround had a bug where if automatic swap buffer support was disabled, the user's calls to swapBuffers() were not being retargeted to run on the AWT event queue thread, as calls to display() were. The effect of this was that the OpenGL rendering was not necessarily guaranteed to complete before swapBuffers() was called, unless a glFlush() / glFinish() pair was inserted. Interestingly, testing showed that inserting the glFlush() / glFinish() just before the call to swapBuffers(), which was executing on the user's thread rather than the AWT event dispatch thread, did not cause the rendering output to complete properly. This implies either a bug in the implementation of glFlush() / glFinish() on the testing platform or a misunderstanding on my part of how these APIs behave. Putting the flush/finish after all of the OpenGL work done by the user in their display() routine worked correctly. Regardless, the intent of the single-threaded workaround was to cause all OpenGL-related work to be done on the event dispatch thread, which it now does. This fixes the reported problem. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@195 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 126: Patch to allow building native driver on BSD Kenneth Russel2005-01-283-3/+31
| | | | | | | | Incorporated patch, slightly modified to not perturb the Linux build in any way. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@194 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 54: No GL listener callbacks when setting render thread before ↵Kenneth Russel2005-01-281-0/+19
| | | | | | | | | | | | | | | | | | | | window is visible The issue (or a related one) is still present in the current JOGL build, although the symptom was different: a deadlock upon startup of the application. When the OpenGL context is created in the WindowsOnscreenGLContext implementation, it causes Component.getGraphicsConfiguration() to be called, which causes the AWT tree lock to be grabbed. Under some circumstances, another thread can already hold the AWT tree lock and call GLContext.invokeGL(), which leads to a classic deadlock. Resolved this by eagerly grabbing the tree lock under some circumstances (not all the time) before entering the synchronized invokeGL in (only) the Windows onscreen context implementation. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@193 232f8b59-042b-4e1e-8c03-345bb8c30851