aboutsummaryrefslogtreecommitdiffstats
path: root/src/classes/com/sun/opengl/impl/windows
Commit message (Collapse)AuthorAgeFilesLines
* After more thought, realized once again that because most Java windowKenneth Russel2008-12-293-3/+0
| | | | | | | | | | | | | | | | | toolkits create persistent Java heap objects corresponding to components that might be realized and unrealized multiple times, the programming model of JOGL implies that GLDrawables must be persistent with regard to the components for which they are created, and that the setRealized(true/false) hook must be the indicator that any OpenGL resources associated with that window are to be created or destroyed. Removed GLDrawable.destroy(); it is now once again only present for GLPbuffer. Fixed up various on-screen and off-screen GLDrawable implementations. Refactored EGLDrawable implementation to trigger on setRealized(true/false); these changes have been compiled but not tested. Clarified documentation of GLDrawable.setRealized. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1828 232f8b59-042b-4e1e-8c03-345bb8c30851
* Factored out the remaining toolkit, and specifically AWT, dependenciesKenneth Russel2008-12-202-243/+223
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from GLDrawableFactory implementations into NativeWindowFactory implementations. These dependencies were the up-front selection of the GraphicsConfiguration and the locking and unlocking of the toolkit, which are both currently needed only on X11 platforms due to how OpenGL and the window system interact there. Added X11GraphicsDevice and X11GraphicsConfiguration classes which are intended to be used by Newt or potentially other third-party window toolkits. Unified the separate NativeWindow and AWT GLDrawableFactory implementations in the GLDrawableFactory class. Exposed the toolkit locking mechanism through the NativeWindowFactory and introduced the concept of a default NativeWindowFactory which is used by the X11 drawable and context implementations. Removed unnecessary toolkit locking calls from Mac OS X and Windows drawable and context implementations. Added a registration mechanism for new NativeWindowFactories, allowing third parties to plug in new window toolkits orthogonally to the OpenGL drawable and context code. The public APIs for the NativeWindowFactory and the GLDrawableFactory, in particular how they are fetched, changed as a result of these refactorings. Updated all uses. Fixed bug in X11OffscreenGLXDrawable introduced during last set of changes. Tested demos on Solaris, Mac OS X and Windows. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1824 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed setSize(), setPosition(), setVisible(), and setFullscreen()Kenneth Russel2008-12-164-27/+15
| | | | | | | | | | | | from javax.media.opengl.NativeWindow interface as these are concerns of the window toolkit and not the OpenGL binding. Removed isVisible(), isFullscreen(), getX(), and getY(). getWidth() and getHeight() remain. Changed implementations of offscreen and pbuffer drawables and changed GLJPanel to destroy and re-create its offscreen GLDrawable upon resize rather than attempting to resize the GLDrawable directly. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1823 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed nested toolkit locking problem with X11PbufferGLXDrawable. WithKenneth Russel2008-12-142-8/+8
| | | | | | | | | | this fix pbuffers and the GLJPanel are working again on X11 platforms. Moved lockToolkit, unlockToolkit and isToolkitLocked from GLDrawableFactory to GLDrawableFactoryImpl. Updated all call sites. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1819 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed breakage of GLJPanel caused by confusion between requested and Kenneth Russel2008-12-124-20/+24
| | | | | | | | | | | | | chosen GLCapabilities. Separated these out and refactored requested GLCapabilities into GLDrawableImpl superclass. Removed setChosenGLCapabilities from the public API and made it protected on GLDrawableImpl. Removed it from all public GLDrawable implementations such as GLCanvas and GLJPanel. Fixed bug in Gears demo where mouse listener was not being hooked up correctly. Tested so far on Windows; testing on other platforms to follow. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1815 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Removed StaticGLInfo usage.Sven Gothel2008-11-131-4/+9
| | | | | | | | | | | | | | | | | | | | | | | Function availability is checked by the dynamic ProcAddressTable, so it works as described/desired and removed around 30 kB of text. - Adding EGLExt to support EGLImage to share video buffers between another API (e.g. OpenMax) - EGL: Added platform extension query support - EGLClientBuffer is opaque long - GLXExt: Removed duplicated enumerates from GLX - GLContext: Promoted getPlatformExtensionsString() - GLProfile.setProfile<GL*>(void) changed order of setting the GL profile to: highest -> lowest: GL2 .. GL2ES12 .. GLES2 .. GLES1 git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1784 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed unnecessary GL2 dependencies from desktop window system code. Kenneth Russel2008-08-081-4/+0
| | | | | | | | | | | | Moved Linux-specific DRIHack into shared code so it could be called from the common code path in GLProfile which now loads the shared libraries. Temporarily ignored WGL_OML_sync_control and WGL_NV_gpu_affinity extensions to avoid dependencies on NIO classes (java.nio.LongBuffer) not in CDC/FP/JSR-239 NIO profile. Can now run JOGL with CVM on the desktop. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1743 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Using new config feature: 'IgnoreExtendedInterfaceSymbols <java class ↵Sven Gothel2008-07-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | source file>' and get rid of manual 'Ignore' configs for common stuff in the base interfaces. - Add: GLUnsupportedException: - Using new config feature 'UnsupportedExceptionType GLUnsupportedException' - GLUnsupportedException is used for anything 'UnsupportedOperationException' - GLU: - GLU itself is no more abstract - GLU contains the tesselator implementation - name, return type, modifiers and arguments - createGLU(..) - operated by profile name now. - GLU itself will be used for GLES2 - Cleanup: - gluegen/GL configs .. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1725 232f8b59-042b-4e1e-8c03-345bb8c30851
* GL Unification 2nd round.Sven Gothel2008-07-043-22/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Terminology: ARB Extensions: "GL2", "ARB", "OES", "OML" Vendor Extensions: "EXT", "NV", "ATI", "SGI", "SGIS", "SGIX", "HP", "IBM", "WIN" Pass-1 Unify ARB extensions with the same value Pass-2 Unify vendor extensions, if exist as an ARB extension with the same value. Pass-3 Emit Done: - Unification of GL enumerates - Unification of GL functions - dynamic extension lookup - .. TODO: - Break down GL.java: GL + GL2ES1ES2 (for future GL3, etc) - Add a GL2 small implementation, to only support the GL2ES2 subset, 'GL2SubES2' .. +++ - Fixed X11 build breakage of 'jawt' linkage. - Fixed NEWT native code mouse- and keyevent id's, missed sync while moving them from the bitfield notation. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1708 232f8b59-042b-4e1e-8c03-345bb8c30851
* GL Unification 1st round.Sven Gothel2008-07-033-106/+106
| | | | | | | | | | | | | | | | | | Terminology: ARB Extensions: "GL2", "ARB", "OES", "OML" Vendor Extensions: "EXT", "NV", "ATI", "SGI", "SGIS", "SGIX", "HP", "IBM", "WIN" Pass-1 Unify ARB extensions with the same value Pass-2 Unify vendor extensions, if exist as an ARB extension with the same value. Pass-3 Emit TODO: - Break down GL.java enumerations: GL + GL2ES (for future GL3) - Same for function calls .. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1703 232f8b59-042b-4e1e-8c03-345bb8c30851
* 3rd round cdcfp - compile clean.Sven Gothel2008-06-285-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Re-adding cdcfp: com/sun/opengl/impl/glu/mipmap/* com/sun/opengl/impl/GLPbufferImpl.java Using 'BufferUtil.nativeOrder(ByteBuffer)' to set up the native byte order. 'BufferUtil.nativeOrder' is now public. GLDrawableFactory: - removed 'hardcoded' awt attribute. Cleanup NEWT's AWT wrapping implementation. - NativeWindowFactory incooperates with the wrapping property. Bugs on X11/NEWT/AWT: - no events - deadlock at shutdown - deadlock if EGLDrawable with AWT get's locked git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1700 232f8b59-042b-4e1e-8c03-345bb8c30851
* Mac OS X port of new JOGL and Newt. Currently leverages the AWT; willKenneth Russel2008-06-271-0/+1
| | | | | | | | | | | | | | | | re-host Newt on lower level code when a port to an AWT-less Mac OS X-based mobile device is done. Added support to NativeWindow and Newt for wrapping a Java-based window from a toolkit like the AWT, and added appropriate code to the GLDrawableFactory implementations to recognize and handle these NativeWindows. Fixed naming of native method for JAWT_DrawingSurfaceInfo.platformInfo0(). Fixed linker definition on Mac and cleaned up Windows variants. Fixed intptr_t definitions in ES1 and ES2 native code. Added workaround for GLU type reference in com.sun.opengl.util.texture.Texture. Fixed bugs in Newt event dispatching. Tested with RedSquare demo on Mac OS X. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1698 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added getSurfaceHandle() to NativeWindow abstraction in support of Kenneth Russel2008-06-267-24/+24
| | | | | | | | | | | | Windows platform where there is a distinction between the window handle (HWND) and window surface (HDC). WGL implementation now refers to window surface instead of window handle. JAWT implementation returns same value for both window handle and window surface. Newt creates window surface on demand; unneeded for EGL binding. RedSquare demo now runs on Windows with Newt + GL2. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1695 232f8b59-042b-4e1e-8c03-345bb8c30851
* Bug fixes to compile and run on Windows. Added more debugging code. Kenneth Russel2008-06-262-1/+13
| | | | | | | | | Not working yet due to mismatch between Newt's getWindowHandle(), which returns an HWND, and the WGL code, which expects an HDC. Work still ongoing. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1694 232f8b59-042b-4e1e-8c03-345bb8c30851
* removing relocated filesSven Gothel2008-06-261-162/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1690 232f8b59-042b-4e1e-8c03-345bb8c30851
* Native Compilation: Partitioning and X11 cleanSven Gothel2008-06-251-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1680 232f8b59-042b-4e1e-8c03-345bb8c30851
* finishing 2nd refactoringSven Gothel2008-06-2112-2553/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1671 232f8b59-042b-4e1e-8c03-345bb8c30851
* 2nd big refactoring.Sven Gothel2008-06-2113-7/+2521
| | | | | | | | | | | | | | | | | | | | | | Goals are orthogonal components for: - OS Windowing system - NEWT, X11, Windows, MacOsX - GL Windowing GLUE - EGL, GLX, WGL, CGL - GL profiles - core and util packages - generate all Java components from any platform All above goals are achieved. TODO: - Native compilation fix and test - Check/Fix Win32, MacOSX and the mobile devices - .. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1665 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactoring JOGL to partition core windowing, AWT, GL, ES1 and ES2 .. WIPSven Gothel2008-06-012-2/+70
| | | | | | | | Compile Clean: X11, noAWT, ES1, no *.impl.x11/win/macosx See jogl/make/build.xml for new build properties. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1654 232f8b59-042b-4e1e-8c03-345bb8c30851
* Filled out EGLContext, EGLDrawable, and EGLDrawableFactory Kenneth Russel2008-05-281-0/+4
| | | | | | | | | | | | | | | implementations on top of autogenerated EGL binding. Added GLDrawableFactory.initialize(String) taking the profile name (PROFILE_GL_20, PROFILE_GLES1, and PROFILE_GLES2 defined in GLDrawableFactory) to bootstrap the system and allow run-time selection of the window system binding. Modified eglplatform.h to extend EGLNativeDisplayType to pointer size. Changed egl.cfg to change most EGL types to opaque longs. Still missing pieces include the function pointer lookup and autogeneration of the EGL binding in all situations. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1643 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactorings to support building JOGL for OpenGL ES 1 and OpenGL ES 2. Kenneth Russel2008-05-133-10/+6
| | | | | | | | | | | | | | | | | | | | | "ant -Djogl.es1=1" builds JOGL for OpenGL ES 1. "ant -Djogl.es2=1" builds JOGL for OpenGL ES 2. "ant" builds JOGL for desktop OpenGL (2.1). Building desktop OpenGL is currently broken (FIXME) -- more refactorings are necessary. When compiling, it is currently necessary to specify -Djogl.noglnatives=1 on the ant command line as well, because the generated native code does not link properly since we do not have OpenGL ES libraries on the desktop. Building the generated native code using a cross-compiler is not yet hooked up into the ant build mechanism. It is necessary to build the generated native code with external tools. Also incorporated spatialized audio framework using Windows waveOut device; this is a temporary measure until a different workspace can be found for this code. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1630 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed problem pointed out by user operator on JOGL forum where chosen Kenneth Russel2007-04-071-1/+16
| | | | | | | | GLCapabilities on Windows was returning null for pixel formats using full-scene antialiasing git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1193 232f8b59-042b-4e1e-8c03-345bb8c30851
* Addendum to fix for Issue 271: wglGetPixelFormatAttribivARB() fails forcing ↵Kenneth Russel2007-02-201-1/+1
| | | | | | | | | | software OpenGL Conditionalized one more debug-only use of a multisample-related query. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1142 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 271: wglGetPixelFormatAttribivARB() fails forcing software OpenGL Kenneth Russel2007-02-201-4/+8
| | | | | | | | | | New code added for support of getChosenGLCapabilities() was causing errors described in bug report. Conditionalized querying of multisample properties based on availability of WGL_ARB_multisample extension. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1141 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 260: "GLException: Surface already locked" after failed makeCurrent Kenneth Russel2007-01-171-4/+7
| | | | | | | | | 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
* Fixed Issue 259: need a copy context Kenneth Russel2007-01-071-0/+14
| | | | | | | | | | 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
* Fixed Issue 213: Expose GLCaps from GLDrawable Kenneth Russel2006-11-195-10/+66
| | | | | | | | | | | | | | | | | | | 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
* Revised Java2D/JOGL bridge to support new share context argument toKenneth Russel2006-08-011-1/+1
| | | | | | | | | | 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
* Added code to support new entry points inKenneth Russel2006-07-101-0/+10
| | | | | | | | 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 220: Gears demo throws exceptions with -Dsun.java2d.opengl=true Kenneth Russel2006-05-291-0/+3
| | | | | | | | | | | | 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-281-0/+18
| | | | | | | | 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
* 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
* Made internal methods which fetch the platform-dependent context outKenneth Russel2006-04-021-1/+1
| | | | | | | | 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
* 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-282-3/+8
| | | | | | | | | | 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 bugs in implementation of -Djogl.GLContext.noopt flagKenneth Russel2006-03-261-1/+13
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@685 232f8b59-042b-4e1e-8c03-345bb8c30851
* Changed locking protocol for on-screen surfaces to only use the JAWT's Kenneth Russel2006-02-201-24/+5
| | | | | | | | | | | | | | | | | | | | | DrawingSurface locking primitives during the makeCurrent operation. While in theory the JAWT should be used for locking for the entire duration of the makeCurrent/release pair, in practice because OpenGL is orthogonal to the window system this is not really necessary, at least if higher-level locking primitives are used to make sure the window is not torn down out from under the library while OpenGL rendering is being performed. The OpenGL-related work done in GLCanvas.addNotify() and removeNotify() handles this. These changes enable simultaneous multi-head rendering on X11 systems with one OpenGL context per thread. Changed GLContext.destroy() to acquire the context's lock during the destroyImpl operation for correctness in the new protocol. Changed several Mac OS X native code entry points to not take an unnecessary NSView* argument. Tested with several demos on all platforms to stress creation and destruction of multiple kinds of OpenGL contexts. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@624 232f8b59-042b-4e1e-8c03-345bb8c30851
* Renamed "offscreen" capability bits in GLCapabilities to "pbuffer" Kenneth Russel2006-02-163-14/+14
| | | | | | | | capability bits to be more explicit about how they are to be used; no objections from JSR-231 expert group git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@616 232f8b59-042b-4e1e-8c03-345bb8c30851
* Completion of initial work on FBO support in Java2D/JOGL bridge. Kenneth Russel2006-02-113-3/+9
| | | | | | | | | | | | | | | | | | | | | Discovered it was necessary to re-attach the color and depth renderbuffers to the FBO in JOGL's context, even though it shared textures and display lists with Java2D's context; this may be a driver problem and merits further investigation. Found it was also necessary to create a new depth renderbuffer; apparently could not use Java2D's. This is almost certainly a driver bug. At this point, with the forthcoming planned changes to Mustang, JOGL works when -Dsun.java2d.opengl.fbobject=true is specified. Problems remain with the HWShadowmapsSimple (extremely slow performance) and InfiniteShadowVolumes (throws exception because of inability to share textures and display lists between pbuffer's context with stencil buffer and Java2D's context) demos. Worked around earlier exceptions with InfiniteShadowvolumes demo by avoiding sharing textures and display lists with dummy GLContexts. Changed build to produce DebugGL and TraceGL earlier so they can be used in e.g. GLJPanel. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@599 232f8b59-042b-4e1e-8c03-345bb8c30851
* Further work on FBO support in Java2D/JOGL bridge. Upgraded JOGL's Kenneth Russel2006-02-112-0/+6
| | | | | | | | | | | | | Java2D class to latest proposed set of APIs in OGLUtilities and changed usage of these APIs to be approximately correct. Left in fallback path for working with non-FBO case in current Mustang builds. Not working yet, and don't yet understand why; checking in at this intermediate point to be able to more easily test on more machines. Added error checking to creation of external GLContexts and GLDrawables on Windows and X11 platforms. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@597 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made loading of GLU library lazier, partially in the hope that thisKenneth Russel2006-02-101-6/+11
| | | | | | | | may address problems on certain Linux distributions where for some reason we're falling back to software rendering with Mesa git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@595 232f8b59-042b-4e1e-8c03-345bb8c30851
* Further work on FBO support in Java2D/JOGL bridge. Recast how Kenneth Russel2006-02-061-0/+3
| | | | | | | | | | | | | | | | | | GLObjectTrackers are specified between contexts and separated this from the maintenance of the GLContextShareSet, although the API (registerForObjectTracking) is in the GLContextShareSet class. If the Java2D/OpenGL pipeline and FBOs are active, causes all JOGL contexts created to share textures and display lists with a context from Java2D (currently acquired from a VolatileImage, but will probably need to change how this is done). GLObjectTrackers however are only shared between JOGL contexts where the user has explicitly requested sharing. This yields the expected semantics of server-side object deletion when the context is destroyed. Upgraded GLJPanel to handle FBO manipulation. Not working yet; more debugging necessary on Java2D side as well. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@585 232f8b59-042b-4e1e-8c03-345bb8c30851
* Intermediate checkin for FBO support in Java2D/JOGL bridge. Needed to Kenneth Russel2006-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | keep track of server-side OpenGL objects, like textures and display lists, created by the end user to preserve the illusion of independent contexts even though they will all share textures and display lists with the Java2D OpenGL context in order to access its FBO. Added GLObjectTracker class to track creation and destruction of these objects and to support cleanup when the last referring context has been destroyed. Modified GLContextShareSet to create and install GLObjectTrackers when necessary and GLContext to ref and unref tracker appropriately. Changed GlueGen's JavaPrologue and JavaEpilogue directives (and their documentation) to perform argument name substitution. Wrote documentation section on argument name substitution and specified behavior for primitive arrays (converts to string "array_name, array_name_offset" in substitution). Rephrased GlueGen's RangeCheck directives in terms of JavaPrologue directives and deleted old specialized code. Fixed bug in handling of VBO support in GLConfiguration when JavaPrologue was present for affected functions. Added JavaPrologue and JavaEpilogue directives to all existing OpenGL routines creating server-side objects (though it's possible some were missed) to call GLObjectTracker when necessary. Added RangeCheck directives for these routines as well. Worked around bug in JOGL demos where shutdownDemo() was being called more than once. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@584 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added profiling support to WindowsOnscreenGLDrawable to figure out why Kenneth Russel2006-01-291-0/+56
| | | | | | | | JOGL applets running in Mozilla/Firefox are so slow -- apparently the WINGDI call SwapBuffers() is taking a long time, but unclear why git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@569 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 173: Adjust gamma, brightness and contrast Kenneth Russel2006-01-221-6/+49
| | | | | | | | | | | | | Added com.sun.opengl.util.Gamma supporting adjusting of gamma, brightness, and contrast. API and implementation derived from code in the LWJGL project. Added demos.gamma.TestGamma demo illustrating how to use the APIs. Tested on Linux, Mac OS X and Windows. No Solaris support at this time, although future Solaris releases, being based on the Xorg server, will probably have support for the required XF86VidMode extension. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@557 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Issue 193: antialiasing querying using GLCapabilitiesChooser no Kenneth Russel2006-01-201-85/+94
| | | | | | | | | | | | | | | longer works in JSR 231 beta 02 This was a bug inadvertently introduced during refactoring of the multisample support during the development of JSR-231 beta 2 to support multisampled pbuffers. Additionally another bug was introduced during yesterday's bug fix for exceptions thrown while producing the GLCapabilities[] array for the GLCapabilitiesChooser. Both issues have been fixed in this checkin. The printing code in GLCapabilities has also been extended to print the multisampling-related properties. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@553 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug in WindowsGLDrawable.iattributes2GLCapabilities pointed out Kenneth Russel2006-01-201-4/+4
| | | | | | | by user hifujava on javagaming.org forums git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@552 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed more problems related to recent restructuring of glue code Kenneth Russel2006-01-012-4/+4
| | | | | | | | | | | | generation to support simultaneous 32- and 64-bit ports. Now uses size() (on Java side) and sizeof (on C side) when creating direct Buffers for struct accessors rather than passing MachineDescription down to JavaMethodBindingEmitter and CMethodBindingEmitter. Now uses 64-bit MachineDescription when sizing outgoing arguments and return types for bound methods. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@506 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed bug in render-to-texture support on WindowsKenneth Russel2005-12-231-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@501 232f8b59-042b-4e1e-8c03-345bb8c30851