aboutsummaryrefslogtreecommitdiffstats
path: root/src/classes/javax/media/opengl/GLDrawableFactory.java
Commit message (Collapse)AuthorAgeFilesLines
* Native (non-AWT) port of Newt to Mac OS X using Cocoa. MostKenneth Russel2009-01-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | functionality (mouse click, mouse motion, mouse dragging, keyboard events) appears to be working. Currently works with the Apple JRE and requires the JVM command-line arguments -XstartOnFirstThread and -Djava.awt.headless=true . Will work with the standalone SoyLatte JRE pending additional launcher changes. Tested with Angeles demo and various JavaFX demos. Added -Dnewt.ws.name=AWT option to force the use of the AWT port of Newt on any supported platform. Known bugs: - While resizing a window or dropping down a menu, the application will hang. This is due to how the event processing is currently done in Newt (via Window.dispatchMessages()) and how Mac OS X deals with resize operations (by pushing a nested event loop into which we have no visibility). There are at least a couple of solutions. One would be to preserve the current API semantics but use a Newt Launcher class to move main() on to a different thread, saving the primordial thread for [NSApplication run]. Another would be to move Newt (and, by association, the JavaFX runtime code) to a callback model like GLUT. - Command-Q and the Quit menu option do not yet properly exit the application. - The coordinates for the WINDOW_MOVED event are wrong. Added the rest of the VK_ constants to the KeyEvent class. Made preliminary changes to support the SoyLatte JRE. Worked around initialization order issues with Fmod. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1838 232f8b59-042b-4e1e-8c03-345bb8c30851
* Factored out the remaining toolkit, and specifically AWT, dependenciesKenneth Russel2008-12-201-194/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fixed nested toolkit locking problem with X11PbufferGLXDrawable. WithKenneth Russel2008-12-141-19/+0
| | | | | | | | | | 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 typo pointed out by Jason MooreKenneth Russel2008-11-151-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1791 232f8b59-042b-4e1e-8c03-345bb8c30851
* - New profile GL2ES12 (desktop)Sven Gothel2008-07-211-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Intersection of GL2 + GLES1 + GLES2 - Common set of GLES1 + GLES2 - Utilized new 'ExtendedInterfaceSymbolsOnly' gluegen config - DroppingUniqVendorExtension + 3DFX + APPLE - Some APPLE enumerates are manually provided! - Removing of 'jogl.oswin.jar' - since it is redundant now! - Proper partitioning of 'jogl.gl2' and 'jogl.gl2es12' for - x11, win and osx - Profile selection/trial for e.g. GL2ES1 is now in the following order: 1) GLES1 2) GL2ES12 3) GL2 - Footprint for all profiles below 1/2 MB, NEWT: ES1: 284 kB ES2: 280 kB GL2ES12: 332 kB GL2: 456 kB git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1729 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactored more C compiler setup into gluegen-cpptasks.xml to make itKenneth Russel2008-06-301-2/+2
| | | | | | | | | | | | | | | | | | | | | easier to build native sources via Ant. Provided new gluegen.cpptasks.setup.compiler target which sets up platform-independent compiler and linker IDs and other properties which can be used in other projects' build files. Refactored JOGL build to use some of these new properties and eliminate duplication; more code savings possible. Added new GLWindow class to Newt implementing GLAutoDrawable to increase code sharing, and supporting making OpenGL calls inside of EventListener callbacks. Moved repaint() method from GLAutoDrawable to AWTGLAutoDrawable. Added WindowEvent and WindowListener interfaces to Newt, currently implemented on Windows and AWT backends (X11 backend would need to support and watch for window resizes -- FIXME added). Refactored common functionality into Newt Event class. Renumbered event IDs to avoid collisions. Fixed potential problems with removing event listeners inside of EventListener callbacks. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1702 232f8b59-042b-4e1e-8c03-345bb8c30851
* 3rd round cdcfp - compile clean.Sven Gothel2008-06-281-28/+50
| | | | | | | | | | | | | | | | | | | | | | | | 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-2/+7
| | | | | | | | | | | | | | | | 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
* Auto GL profile selection; New GLReflection (refactoring of common ↵Sven Gothel2008-06-251-69/+22
| | | | | | relfections); Fixes git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1684 232f8b59-042b-4e1e-8c03-345bb8c30851
* 2nd big refactoring.Sven Gothel2008-06-211-44/+82
| | | | | | | | | | | | | | | | | | | | | | 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@1670 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactoring JOGL to partition core windowing, AWT, GL, ES1 and ES2 .. WIPSven Gothel2008-06-011-17/+97
| | | | | | | | 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
* Added GLDrawableFactory.shutdown() to enable clean and cooperative Kenneth Russel2008-05-301-0/+8
| | | | | | | | termination, overriding it in EGLDrawableFactory to call eglTerminate. Made EGLDrawable.setRealized(false) clean up the EGLSurface. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1650 232f8b59-042b-4e1e-8c03-345bb8c30851
* Various bug fixes. Incorporated minimal window abstraction to Kenneth Russel2008-05-291-0/+2
| | | | | | | | | bootstrap EGL subsystem. Added back in GLU generation for ES 2. This code creates and shows the window for the demos.es1.RedSquare demo, but nothing is rendered yet. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1645 232f8b59-042b-4e1e-8c03-345bb8c30851
* Filled out EGLContext, EGLDrawable, and EGLDrawableFactory Kenneth Russel2008-05-281-38/+77
| | | | | | | | | | | | | | | 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-131-0/+8
| | | | | | | | | | | | | | | | | | | | | "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
* Added note on limitations of OpenGL context sharing to spec overviewKenneth Russel2006-02-151-1/+4
| | | | | | | | and pointed to it from GLDrawableFactory, GLDrawable, GLCanvas and GLJPanel git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@611 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added thrown exception information for GLDrawableFactory'sKenneth Russel2005-12-051-3/+15
| | | | | | | | | createGLPbuffer, createExternalGLContext and createExternalGLDrawable. Fixed build breakage with last checkin. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@480 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made throws clause for chooseGraphicsConfiguration follow documented Kenneth Russel2005-12-031-1/+2
| | | | | | | run-time exceptions git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@474 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added GLCapabilitiesChooser argument (currently ignored) to Kenneth Russel2005-11-271-5/+8
| | | | | | | | GLDrawableFactory.createGLPbuffer() based on JSR-231 expert group's feedback. Updated GLJPanel and demos. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@464 232f8b59-042b-4e1e-8c03-345bb8c30851
* Minor javadoc changes to GLDrawableFactory. Kenneth Russel2005-11-121-4/+11
| | | | | | | chooseGraphicsConfiguration() suggested by Justin Couch git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@441 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made public API changes discussed with expert group to make core JOGLKenneth Russel2005-11-091-66/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | API more toolkit-agnostic: 1. Decoupled instantiation of GLCanvas and GLJPanel objects from the GLDrawableFactory. GLCanvas and GLJPanel's constructors are now public and the associated factory methods have been removed from the GLDrawableFactory. 2. Changed the signature of GLDrawableFactory. chooseGraphicsConfiguration() to accept and return marker AbstractGraphicsDevice and AbstractGraphicsConfiguration interfaces, respectively. Defined new AWTGraphicsDevice and AWTGraphicsConfiguration wrapper classes simply wrapping the associated objects. An SWT port could define similar wrapper classes for its data types. 3. Allowed overriding of the specific GLDrawableFactory subclass instantiated through GLDrawableFactory.getFactory() by setting the system property "opengl.factory.class.name". For example, an SWT port might swap itself in by specifying the following system property on the command line: -Dopengl.factory.class.name=com.ibm.swt.opengl.SWTGLDrawableFactory Tested on Solaris/SPARC. Also fixed breakage on Solaris/SPARC due to recent split of jogl native library into jogl and jogl_awt pieces. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@431 232f8b59-042b-4e1e-8c03-345bb8c30851
* Merged JSR-231 branch on to the main JOGL trunk. The main trunk now Kenneth Russel2005-10-241-0/+282
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