aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Made X11GLDrawableFactory.lockToolkit() and unlockToolkit() non-staticKenneth Russel2005-11-093-10/+14
| | | | | | | | so they can be overridden in subclasses. Fixed build breakage from last checkin. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@430 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactored JOGL's use of the JAWT to enable it to be more lazily Kenneth Russel2005-11-0914-157/+114
| | | | | | | | | | | | | | | | | | loaded. Separated out AWT-specific native code into a new jogl_awt native library on all platforms. Added a static helper method to the JAWT class to fetch the JAWT which is now called by all users. Added a new NativeLibLoader entry point to load the native code for the AWT implementation. Renamed the X11 platform's "lockAWT" and "unlockAWT" methods to "lockToolkit" and "unlockToolkit", respectively. In order to change this behavior only two methods in X11GLDrawableFactory need to be overridden. (During the writing of this checkin comment it was noted that these methods are currently static, but that will be fixed in a subsequent checkin.) Added the new jogl_awt native library to the the "dist" target's error checking code. Tested on Windows; more testing, including build testing, is needed on other platforms. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@429 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactored computations of sizes of data types and offsets of fields Kenneth Russel2005-11-0932-253/+653
| | | | | | | | | | | | | | | | in data structures in GlueGen to be performed lazily via SizeThunks. The concrete size of primitive data types is computed only by passing a MachineDescription into one of these thunks. Changed generated glue code for struct accessors to delegate their instantiation and field access to specialized 32- or 64-bit versions. This should allow one jar file to support both 32-bit and 64-bit CPUs; the native code is of course still specialized for the processor and data model. Changed default build to generate both 32-bit and 64-bit accessors for all generated data structures. Tested on Windows; more testing, including build testing, is needed on other platforms. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@426 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed RI-specific method descriptions from addNotify(), update(), Kenneth Russel2005-10-282-23/+60
| | | | | | | | | etc. based on feedback from pepijnve on the javagaming.org forums. Added documentation on what subclasses must do if these methods are overridden as in Java3D specification. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@411 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made spec changes suggested by Chris Campbell on javagaming.org forumsKenneth Russel2005-10-282-7/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@408 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated spec based on comments from rexguo on javagaming.org forumsKenneth Russel2005-10-283-5/+47
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@407 232f8b59-042b-4e1e-8c03-345bb8c30851
* Merged JSR-231 branch on to the main JOGL trunk. The main trunk now Kenneth Russel2005-10-24238-9122/+12032
| | | | | | | | contains the evolving JSR-231 Reference Implementation and the JSR-231 branch is permanently closed. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@401 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated version string to 1.1.1 for transparency support in GLJPanelKenneth Russel2005-06-301-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@315 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 168: Add support for transparency in GLJPanel Kenneth Russel2005-06-3014-62/+18
| | | | | | | | | | | Obey setOpaque() when selecting buffered image type. User must still request alpha bits in the GLCapabilities. Not supported on all back-end renderers; for example, Microsoft GDI renderer does not implement alpha bits when rendering to DIB sections. Added examples of use in JGears and JRefract demos. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@314 232f8b59-042b-4e1e-8c03-345bb8c30851
* Increased version string to 1.1.0 for final buildKenneth Russel2005-06-231-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@308 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 166: Memory leak with ATI Mobility Radeon 9700 Kenneth Russel2005-06-222-11/+33
| | | | | | | | | | | | | | | Worked around memory leak in ATI's OpenGL drivers by adding system property -Djogl.GLContext.nofree which users can specify on the command line. There is no good general-purpose workaround for this bug which works well on all hardware and in all kinds of applications. Issues may remain if this workaround is used and if the GLCanvas is removed and re-added to its parent container. Use at your own risk. Also cleaned up Windows ChoosePixelFormat code path; made sure PIXELFORMATDESCRIPTOR was completely filled out. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@306 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 165: GLUT 3.8 fixes bugs in glutStrokeLength and adds ↵Kenneth Russel2005-06-221-2/+10
| | | | | | | | | | | glutStrokeLengthf Added glutStrokeWidthf and glutStrokeLengthf and implemented glutStrokeWidth and glutStrokeLength in terms of them. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@305 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed problem with temporary (or otherwise) resizes of GLJPanel to Kenneth Russel2005-06-171-0/+7
| | | | | | | width == 0 or height == 0 git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@301 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added more debug informationKenneth Russel2005-06-104-22/+34
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@299 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug pointed out by abegel on javagaming.org forums where Kenneth Russel2005-06-051-2/+3
| | | | | | | gluBuild2DMipmaps was failing on 1x1 textures git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@294 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made pbuffer code and in particular floating-point pbuffer code moreKenneth Russel2005-06-023-5/+40
| | | | | | | | correct on Mac OS X; problems still exist, however (very likely driver bugs) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@293 232f8b59-042b-4e1e-8c03-345bb8c30851
* Cleaned up Mac OS X context handling. Removed incorrect retain call onKenneth Russel2005-06-012-151/+145
| | | | | | | | | NSOpenGLContext. Removed NSOpenGLPFANoRecovery and NSOpenGLPFAAccelerated flags from pixel format. Added NSAutoreleasePools around Cocoa calls. Added stereo support. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@292 232f8b59-042b-4e1e-8c03-345bb8c30851
* Changed Windows pixel format selection algorithm to prefer Kenneth Russel2005-06-011-3/+10
| | | | | | | | | | | ChoosePixelFormat / DescribePixelFormat, rather than wglChoosePixelFormatARB / wglGetPixelFormatAttribivARB, when multisampling is not requested. This is more in line with how LWJGL works and reduces the severity of a memory leak in ATI's current Windows drivers. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@291 232f8b59-042b-4e1e-8c03-345bb8c30851
* Reduced printing from jogl.debug.GLContextKenneth Russel2005-05-312-5/+9
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@290 232f8b59-042b-4e1e-8c03-345bb8c30851
* Javadoc fixesKenneth Russel2005-05-27115-125/+135
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@287 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug in floating-point pbuffer support on Linux and made HDR demoKenneth Russel2005-05-272-2/+2
| | | | | | | better-behaved on Linux git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@286 232f8b59-042b-4e1e-8c03-345bb8c30851
* Attempted to speed up GLJPanel redrawing by manually copying scanlines Kenneth Russel2005-05-271-35/+63
| | | | | | | rather than performing many Graphics.drawImage() calls git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@285 232f8b59-042b-4e1e-8c03-345bb8c30851
* Enabled resizing of pbuffer during shrinking of GLJPanel as wellKenneth Russel2005-05-261-6/+12
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@284 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 94: isFunctionAvailable throws exception on valid version stringsKenneth Russel2005-05-261-26/+32
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@283 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added more documentation about behavior of GLEventListener.init() and Kenneth Russel2005-05-242-3/+18
| | | | | | | GLJPanel resize operations git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@280 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed remaining bug in GLJPanel where resize operations did not cause Kenneth Russel2005-05-242-1/+10
| | | | | | | | the underlying GLCanvas to be destroyed in the hardware-accelerated path, so textures and display lists lingered on git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@279 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed bogus test against frame size = (0,0) which was breakingKenneth Russel2005-05-241-8/+1
| | | | | | | pbuffer support on Mac OS X 10.4 git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@278 232f8b59-042b-4e1e-8c03-345bb8c30851
* Attempt to make floating-point pbuffers portableKenneth Russel2005-05-206-13/+113
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@277 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added first-cut support for floating-point pbuffers on Mac OS XKenneth Russel2005-05-202-4/+16
| | | | | | | (untested) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@276 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added floating-point pbuffer support on X11Kenneth Russel2005-05-191-8/+5
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@274 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added more locking of AWT around GLX commands during X11 visualKenneth Russel2005-05-112-28/+53
| | | | | | | selection to fix problems seen on Solaris/x86 git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@270 232f8b59-042b-4e1e-8c03-345bb8c30851
* Upgraded Java Web Start files to 1.1 b11 and version string to 1.1 b12Kenneth Russel2005-05-111-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@269 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed race conditions in Mac OS X onscreen context creation thatKenneth Russel2005-05-106-12/+43
| | | | | | | showed up after recent GLJPanel fix to clean up resource leaks. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@267 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed race condition in GLJPanel implementation and improved behaviorKenneth Russel2005-05-101-1/+4
| | | | | | | of JRefract demo on Linux git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@266 232f8b59-042b-4e1e-8c03-345bb8c30851
* Worked around apparent ATI driver bug pointed out by abegel on Kenneth Russel2005-05-091-43/+52
| | | | | | | | javagaming.org forums where use of proxy textures was illegally setting a GL error condition. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@265 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 151: starting up the Animator before the GLJPanel has been shown ↵Kenneth Russel2005-05-075-6/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | result in an error The root cause of this error was the fact that WindowsPbufferGLContext.destroyImpl() uses WGL extensions to clean up resources associated with the pbuffer. Because these extensions are in the public WGL interface, they are wrapped by the DebugGL. However, an OpenGL context is not current at the time these routines are called, and it is illegal to call glGetError() at those points. The DebugGL pipeline was implicitly calling glGetError() after each of those calls, leading to the failure. This bug unmasked a couple of others. The code in the DebugGL needed a recursion count to make sure that glGetError() didn't get called in an infinite loop. Also, as a side effect of the fix for Issue 160, calling getGL() on the GLJPanel outside of GLEventListener.init() was causing a NullPointerException to be thrown. The GLJPanel has been fixed to return null in this case, and the specification of GLDrawable.getGL() has been improved. In order to make the behavior between the GLCanvas and GLJPanel similar, the GL object is now reset in the GLDrawable each time the underlying OpenGL context is recreated. This allows end users to set up e.g. the DebugGL unconditionally in their GLEventListener.init() method. The JOGL demos have been changed to reflect this. The test case in the bug report will be updated with code similar to the originally submitted test case (i.e., the Animator is started early) but which now works. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@264 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 160: Resource leaks in GLJPanel Kenneth Russel2005-05-022-2/+57
| | | | | | | | | | | | | | Added addNotify and removeNotify to GLJPanel which clean up the associated OpenGL contexts and other resources. Extended JRefract demo to stress GLJPanel creation and destruction. New code appears to be correct. Can see resource leaks when the bunny is loaded over and over, but believe these are probably due to allocation of large NIO buffers that are not getting finalized promptly. Stressing the Gears demo with both the pbuffer and software rendering paths shows that the OpenGL resources are being reclaimed properly. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@263 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 156: Patch to add linux.ia64 target Kenneth Russel2005-04-242-1/+3
| | | | | | | Applied patch from submitter. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@261 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 92: Platform Independent VSync functionality Kenneth Russel2005-04-244-0/+27
| | | | | | | | | Added GL.setSwapInterval() which delegates to appropriate platform-dependent routines. Must be called only from within GLEventListener callbacks. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@260 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 153: API method in SingleThreadedWorkaround class to change to ↵Kenneth Russel2005-04-101-0/+11
| | | | | | | | | | | | | old rendering model. Added SingleThreadedWorkaround.disableWorkaround(); for now, don't want to add this to the core JOGL API because at some point the SingleThreadedWorkaround should hopefully really become an implementation detail that no application should have to worry about. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@259 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 148: Swing Component Shadow on GLJPanel Kenneth Russel2005-04-101-5/+1
| | | | | | | | | | | | | | | | | | The test case specifies alpha bits in the GLCapabilities, which caused the GLJPanel to create a TYPE_INT_ARGB BufferedImage to store the results of the readback of the frame buffer for rendering into the GLJPanel. This appears to not be the correct thing to do, because it causes this BufferedImage to be alpha-blended with whatever other rendering is performed into Java2D's backing store. Therefore when the button was redrawn, its image would show up in this backing store alpha-blended with the OpenGL rendering results since both were redrawn simultaneously. I believe the correct solution is to never create a BufferedImage with an alpha component for the framebuffer readback even if alpha bits are specified in the GLCapabilities. This is what has been implemented in the JOGL source base. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@258 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 150: Rendering artifacts with GLJPanel. Kenneth Russel2005-04-101-2/+2
| | | | | | | | Fixed off-by-one error in rendering of GLJPanel's hardware-accelerated rendering results to the screen. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@257 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 146: GLUT teapot Kenneth Russel2005-04-091-0/+344
| | | | | | | | | | Applied patch from user tedmunds to provide both an old-style GLUT teapot as well as one which fixes some problems with the teapot's geometry and orientation. Updated HWShadowmapsSimple demo to use glutSolidTeapot as originally intended. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@256 232f8b59-042b-4e1e-8c03-345bb8c30851
* Attempted to work around bugs seen during resizing of GLCanvas on MacKenneth Russel2005-04-071-19/+8
| | | | | | | | | | OS X by updating the context during every makeCurrent, not just upon reshape. This appears to solve some issues without impacting performance significantly, although not all of the issues reported by users were reproducible on the machine where the fixes were tested. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@255 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 154: Patches for build problems Kenneth Russel2005-04-042-6/+7
| | | | | | | | | | | | | | Submitted patches had a couple of problems. First, the removal of the (incorrect) cast to const char* in the CMethodBindingEmitter caused build warnings on other platforms. Fixed these by making the const declarations correct for the conversion case of String[] -> char**. Second, addition of comparison of hashCodes in CompoundType.equals() seemed like too much of a hack. Fixed this by correcting potential problems in equals() and hashCode() methods; not sure whether this will solve the submitter's original problem, though. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@254 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug in GLU tesselator pointed out by user basszero on Kenneth Russel2005-03-111-1/+1
| | | | | | | | javagaming.org forums where combine callback was being called with incorrectly-typed outData git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@253 232f8b59-042b-4e1e-8c03-345bb8c30851
* Updated version string to 1.1 b11Kenneth Russel2005-02-281-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@249 232f8b59-042b-4e1e-8c03-345bb8c30851
* 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
* 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