aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/games/jogl
Commit message (Collapse)AuthorAgeFilesLines
* 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-105-10/+37
| | | | | | | 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-074-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 92: Platform Independent VSync functionality Kenneth Russel2005-04-243-0/+21
| | | | | | | | | 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 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
* 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 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 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 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
* Hooked in GKW's Java port of the GLU library's mipmap and image Kenneth Russel2005-02-072-36/+47
| | | | | | | | | | | | | | | | | 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-041-0/+1
| | | | 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-035-18/+20
| | | | | | | mipmap code git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@208 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
* Merged in changes from Blackbird branch: refactoring and rewriting of Kenneth Russel2005-02-021-5/+1
| | | | | | | | | 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 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