aboutsummaryrefslogtreecommitdiffstats
path: root/src/classes/com/sun/opengl/impl
Commit message (Collapse)AuthorAgeFilesLines
* Fixed Issue 260: "GLException: Surface already locked" after failed makeCurrent Kenneth Russel2007-01-173-12/+21
| | | | | | | | | Added checking for thrown run-time exceptions to on-screen GLContext makeCurrent() implementations on all three major supported platforms; now unlocks the underlying GLDrawable if an exception is thrown. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1088 232f8b59-042b-4e1e-8c03-345bb8c30851
* Robustness improvements to TextRenderer and underlying RectanglePacker. Kenneth Russel2007-01-134-58/+256
| | | | | | | | | | | | | | | Added ability to specify a maximum size to which the RectanglePacker can expand. Added preExpand method to BackingStoreManager to support early eviction of unused entries instead of always expanding the backing store, and additionFailed method used when the backing store can not expand further. Added more robust free list coalescing to Level. Added support for shrinking of backing store and for eager compaction when there is a lot of vertical dead space. Added TextFlow demo which shows how to do dynamic layout of text and which acts as a stress test for the TextRenderer. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1083 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added -Djogl.drihack.disable for manual disabling of DRI hackKenneth Russel2007-01-111-0/+5
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1080 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 259: need a copy context Kenneth Russel2007-01-073-0/+47
| | | | | | | | | | Added and specified GLContext.copy() and supplied implementations on Windows, X11 and Mac OS X platforms. New code is untested at this time. May need to make subsequent changes on X11 and Mac platforms where new code has not been compiled yet. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1075 232f8b59-042b-4e1e-8c03-345bb8c30851
* With extensive help from Phil Race and Chris Campbell from the Java 2D Kenneth Russel2007-01-047-0/+893
| | | | | | | | | | | | | | | | | | | | | | team, added a TextRenderer class which enables high-performance rendering of bitmapped Java 2D fonts, with full Unicode support, into arbitrary OpenGL drawables using a simple API. Builds on top of the TextureRenderer class and its associated functionality; added createAlphaOnlyRenderer() and other methods to enable the TextRenderer. Caches rendering results on a string-by-string basis in an OpenGL texture using a fully automatic least-recently-used algorithm for good efficiency when rendering the same string or strings multiple times. Uses a rectangle packing algorithm, currently housed in com.sun.opengl.impl.packrect, for managing the positions of cached strings on a larger OpenGL texture to avoid OpenGL pipeline state changes. Added a TestTextRenderer demo which simply adds a moving text string and frames-per-second counter to the Gears demo; more sophisticated examples to come. (Some commented-out debugging code is being temporarily left in the new demo, to be removed in the next checkin, in order to have it in the version history.) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1067 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed NullPointerException in new cached GLCapabilities code on X11Kenneth Russel2006-12-191-2/+4
| | | | | | | platforms pointed out by bleb on javagaming.org forums git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1028 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed another performance problem related to buffer objects pointed Kenneth Russel2006-11-264-1/+412
| | | | | | | | | | | | | out by John Burkey. glGetBufferParameterivARB call in glMapBuffer was too expensive at least with Apple's multithreaded OpenGL implementation. Now track both bound buffer state (refactored into GLBufferStateTracker) as well as cache created buffers' sizes (expressed in GLBufferSizeTracker) and query the cache instead of OpenGL directly. Verified with VertexBufferObject demo that now no glGet queries are made at run-time. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1003 232f8b59-042b-4e1e-8c03-345bb8c30851
* Optimized buffer binding checks for glVertexPointer and similar calls Kenneth Russel2006-11-241-19/+32
| | | | | | | | | | | | | | on request from John Burkey. Now caches the buffer binding for GL_ARRAY_BUFFER, etc. upon glBindBuffer calls and invalidates this cache upon glPushClientAttrib / glPopClientAttrib calls, refreshing the state only when necessary using the glGetIntegerv call. Fixed knowledge of available OpenGL versions to support OpenGL 2.1 (and future minor version updates). Fixed breakage of GL_NV_vertex_array_range support after recent upgrade of wglext.h and glxext.h headers. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@994 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed native code for DRIHack and replaced it with code using theKenneth Russel2006-11-242-34/+16
| | | | | | | | | | | | | | | | | | | | | GlueGen runtime library (specifically the NativeLibrary class). Updated the build.xml, in particular the dist targets, to no longer build or copy this native library. Updated the NativeLibrary class to allow specification of the full path to the library. Removed the GlueGen runtime classes from jogl.jar; these are now expected to reside in gluegen-rt.jar and it is expected that developers will have this on their CLASSPATH. Updated the dist target to include the gluegen-rt native library and jar file. Updated the JOGLAppletLauncher to download and unpack the gluegen-rt-natives jar as well as the jogl-natives jar. Updated the HowToBuild, user guide, and JOGLAppletLauncher documentation for this restructuring. Fixed bug in gluegen-cpptasks.xml in detection of Solaris/SPARCv9 and refactored targets further. Tested on Solaris/x86 so far; further testing and debugging of the nightly builds and applet launcher, and update of the JOGL applet test, to follow. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@993 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 213: Expose GLCaps from GLDrawable Kenneth Russel2006-11-1912-37/+382
| | | | | | | | | | | | | | | | | | | Added getChosenGLCapabilities() to the GLDrawable interface. Implemented on Windows, Unix and Mac OS X platforms with various techniques. Attempts to provide correct answers in all cases, even when the GLCapabilitiesChooser mechanism is not supported. Required addition of new platform-specific Java code in most cases to either re-convert existing PIXELFORMATDESCRIPTORS / XVisualInfos, or to query the pixel format or visual chosen for drawables like pbuffers for which the chooser mechanism is not (yet) implemented. Tested on Windows, Solaris/x86, and Mac OS X with on-screen, off-screen and pbuffer drawables. (Full support for the Java2D/JOGL bridge is not yet in place; the answer returned from the GLJPanel in this case is currently the default GLCapabilities, and it is likely that "external" GLDrawables will return null.) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@989 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 240: Exceptions thrown in GLCapabilitiesChooser don't function ↵Kenneth Russel2006-11-131-4/+11
| | | | | | | | | | | | properly Restructured earlier workaround for problems seen on Intel Integrated Graphics chipsets by watching for non-GLExceptions propagated (presumably from user code) and passing them through. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@981 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed spurious printStackTrace call left over in Kenneth Russel2006-11-131-1/+0
| | | | | | | FunctionAvailabilityCache$Version constructor pointed out by Alan Hudson git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@979 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed spurious printStackTrace call left over in Kenneth Russel2006-11-131-1/+1
| | | | | | | FunctionAvailabilityCache$Version constructor pointed out by Alan Hudson git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@978 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug pointed out by user zero on JOGL forum where gluErrorStringKenneth Russel2006-10-051-2/+3
| | | | | | | didn't understand GL_INVALID_FRAMEBUFFER_OPERATION_EXT git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@938 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 242: Unable to select single-buffered visualKenneth Russel2006-08-141-3/+16
| | | | | | | | Fixed GLX_DOUBLEBUFFER and GLX_STEREO specifications for both on-screen and pbuffer visuals as per suggestion. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@885 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed crash triggered by Java 3D's JoglPipeline in off-screen Kenneth Russel2006-08-111-0/+4
| | | | | | | | | | | rendering on X11 platforms by watching for destruction of the pbuffer out from under an application-created context; could do better by explicitly destroying all application-created contexts in the shared code for both the GLCanvas and GLPbufferImpl (and probably the GLJPanel too) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@881 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed build breakage on X11 platforms after introduction ofKenneth Russel2006-08-021-1/+1
| | | | | | | com.sun.gluegen.runtime.NativeLibLoader class git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@872 232f8b59-042b-4e1e-8c03-345bb8c30851
* Revised Java2D/JOGL bridge to support new share context argument toKenneth Russel2006-08-016-14/+39
| | | | | | | | | | CGLSurfaceData.createOGLContextOnSurface(Graphics, long). Testing indicates that sharing of textures, etc. between pbuffers and the context created on the Java2D back buffer is no longer functioning, however. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@871 232f8b59-042b-4e1e-8c03-345bb8c30851
* Issue number:gfxadmin2006-07-2163-18/+648
| | | | | | | | | | | | | | | | | Obtained from: Submitted by: Travis Reviewed by: Sun is adding an alternative license term to the SGI Free B license which is permitted under that license. We are removing a couple of provisions from the SGI Free B license to make the license more liberal for our end users of JOGL. So these changes are just communication of that. There are no actual source code changes, just changes to the license file and the license text in each source code file. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@856 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added support for sharing of textures, etc. between GLPbuffers andKenneth Russel2006-07-218-16/+423
| | | | | | | | | | | | GLJPanels when the Java2D/JOGL bridge is active on Mac OS X. This required adding an alternate implementation for pbuffer drawables and contexts on OS X which uses CGL rather than the NextStep OpenGL APIs. Tested with advance Mustang bits on Mac OS X; Water and HWShadowmapsSimple demos (which use pbuffers) are now working within the JRefract harness when the Java2D/JOGL bridge is active. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@855 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed potential deadlock on OS X where JOGL could leave the surfaceKenneth Russel2006-07-191-0/+6
| | | | | | | locked on OS X when the window was zero-sized git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@850 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added hack workaround to Java2D class to assume that FBO support inKenneth Russel2006-07-111-0/+3
| | | | | | | | Java2D/OpenGL pipeline is not enabled on OS X; will need proper fix later git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@841 232f8b59-042b-4e1e-8c03-345bb8c30851
* Stubbed out setSwapInterval in MacOSXJava2DGLContext to fix crashesKenneth Russel2006-07-111-3/+4
| | | | | | | found by gziemski git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@840 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added code to support new entry points inKenneth Russel2006-07-107-0/+304
| | | | | | | | sun.java2d.opengl.CGLSurfaceData added by gziemski to enable the Java2D/JOGL bridge on Mac OS X. Currently untested. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@838 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 230: gluBuild2DMipmaps modifies Buffer positions Kenneth Russel2006-06-221-121/+166
| | | | | | | | Wrapped all Mipmap function entry points with code which saves and restores any incoming Buffer's position. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@824 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added support to Java2D/JOGL bridge for GL_ARB_texture_rectangle Kenneth Russel2006-06-191-0/+35
| | | | | | | support in Java2D/OpenGL pipeline's FBO code path git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@816 232f8b59-042b-4e1e-8c03-345bb8c30851
* Changed default sense of GLContext optimization flag to false. NowKenneth Russel2006-06-021-1/+10
| | | | | | | | | must explicitly specify -Djogl.GLContext.optimize on the command line to enable it. Added note to the user guide in the section on X11 platforms discussing this. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@795 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed debugging printlnKenneth Russel2006-05-291-2/+6
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@787 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 220: Gears demo throws exceptions with -Dsun.java2d.opengl=true Kenneth Russel2006-05-292-0/+5
| | | | | | | | | | | | On non-X11 platforms, removed workaround in Threading class which treats both the EDT and the QFT as viable threads upon which to execute OpenGL work. Deadlock issues remain on X11 threads when causing OpenGL contexts associated with heavyweight widgets to be made current on the QFT. On Windows the QFT is now used for all OpenGL work when the Java2D/JOGL bridge is active. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@786 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 224: External context dosen't work with GLCanvas Kenneth Russel2006-05-283-0/+54
| | | | | | | | Added short-circuiting of logic to prevent the current GLContext from being released due to makeCurrent() of an external GLContext. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@784 232f8b59-042b-4e1e-8c03-345bb8c30851
* Preliminary fix forKenneth Russel2006-05-281-3/+26
| | | | | | | | | | | | Issue 216: Cannot create GLCanvas on non-default GraphicsDevice Made JOGL Xinerama-aware; now uses screen 0 rather than the screen reported from the AWT GraphicsDevice when Xinerama is enabled. So far only compiled and tested on non-Xinerama configuration on Linux; more testing needed on Xinerama setups and on Solaris. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@782 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed another deadlock caused by introduction of FBO support in Kenneth Russel2006-05-161-0/+10
| | | | | | | Java2D/JOGL bridge git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@767 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed apparent deadlock in object tracking code provoked by GE Medical Kenneth Russel2006-05-111-45/+53
| | | | | | | Systems' demo by removing synchronization around one part of the code git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@761 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 221: Fixing stereo capability in WindowsGLDrawable Kenneth Russel2006-05-091-0/+3
| | | | | | | | Applied patch from user eteq to fix stereo support on Windows platforms. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@758 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed apparent bug pointed out by user EdwinOlson on jogl forum where Kenneth Russel2006-04-251-0/+1
| | | | | | | it seems the pbuffer drawable wasn't being reset to 0 on X11 platforms git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@738 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 215: Enhancement for NativeLibLoader Kenneth Russel2006-04-171-60/+90
| | | | | | | | Incorporated patch largely unmodified from user s_koehler. Cleaned up Cg library loading based on this work. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@720 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added workaround for apparent problem with ATI's proprietary driversKenneth Russel2006-04-032-0/+23
| | | | | | | | | where GL calls seem to result in GLX tokens being sent even for direct contexts, necessitating disabling of optimized on-screen context handling git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@701 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made internal methods which fetch the platform-dependent context outKenneth Russel2006-04-023-3/+3
| | | | | | | | of the GLContext implementations public instead of protected for easier interoperability with C libraries git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@699 232f8b59-042b-4e1e-8c03-345bb8c30851
* Replaced absolute path to libGL.so.1 with relative path to presumablyKenneth Russel2006-04-021-1/+17
| | | | | | | | fix problems with ATI's fglrx drivers, which use a libGL.so.1.2 placed in a nonstandard location git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@698 232f8b59-042b-4e1e-8c03-345bb8c30851
* Forced enabling of DRI hack on all Linux distributionsKenneth Russel2006-04-011-1/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@696 232f8b59-042b-4e1e-8c03-345bb8c30851
* Deleted obsolete MacOSXDummyGLContext.javaKenneth Russel2006-03-291-87/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@693 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed workaround for sharing textures and display lists betweenKenneth Russel2006-03-292-7/+5
| | | | | | | | | pbuffers and on-screen contexts that was necessary in 10.4.3 because it was causing problems with multisampling in particular on ATI hardware git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@692 232f8b59-042b-4e1e-8c03-345bb8c30851
* Worked around spurious SetPixelFormat failures seen on Intel 82855 Kenneth Russel2006-03-281-1/+11
| | | | | | | | | hardware with help from Matt Abraham by silently squelching a few back-to-back failures of this call and indicating that the surface was not ready yet. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@691 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed lurking problem associated with on-screen contexts' makeCurrent Kenneth Russel2006-03-283-5/+9
| | | | | | | | | | implementations on Windows and OS X where finally block should not cover lockSurface call; also fixed problem pointed out by Matt Abraham where if WindowsOnscreenGLDrawable.choosePixelFormat() threw an exception it would cause subsequent lockSurface() calls to fail git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@689 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug pointed out by Matt Abraham where a thrown exception from Kenneth Russel2006-03-261-1/+3
| | | | | | | the GLWorkerThread would be repeatedly thrown git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@687 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bugs in implementation of -Djogl.GLContext.noopt flagKenneth Russel2006-03-263-11/+23
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@685 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made MacOSXOnscreenGLContext obey disabling of optimized contextKenneth Russel2006-03-191-2/+14
| | | | | | | handling git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@670 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added fallback path in GLContext optimization code to be able toKenneth Russel2006-03-193-2/+43
| | | | | | | | | | | | disable behavior of leaving last context current on OpenGL worker thread. Currently can be manually disabled with -Djogl.GLContext.noopt. Added explicit test on X11 platforms of whether the onscreen context created is direct or not, and to disable context optimization if not, to automatically solve problems when running with indirect contexts typically from Mesa. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@668 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed resizing bug on Mac OS X which was a consequence of leaving theKenneth Russel2006-03-102-0/+13
| | | | | | | context permanently current on the GLWorkerThread git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@658 232f8b59-042b-4e1e-8c03-345bb8c30851
* Dummy putback to fix previous incorrect checkin comment: Kenneth Russel2006-03-081-1/+1
| | | | | | | | Augmented DRIHack to look for /usr/X11R6/lib/modules/dri as well as /usr/lib/dri when determining whether to enable DRI hack. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@656 232f8b59-042b-4e1e-8c03-345bb8c30851