aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* - Adding GLAutoDrawable.ScreenChangeActionEnabled reflecting theSven Gothel2009-06-1337-275/+516
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | boolean system property 'jogl.screenchange.action', wheather to enable or disable (default) the drawable configuration in case the screen changed .. - X11Util Changes: Clarified the documentation a bit. Renaming for clarification: getDefaultDisplay() -> getStaticDefaultDisplay() isXineramaEnabled() -> isXineramaEnabledOnStaticDefaultDisplay() Removing for clarification: getDisplayConnection() Introducing thread current default display, which returns/creates one display connection for the running thread in TLS. getThreadLocalDefaultDisplay() This shall be used with care, to not risc memory leakage. Currently used for long term objects, ie Pbuffer .. - Validated the ToolkitLock lock/unlock in relation with the NativeWindow surface lock/unlock. Both locking mechanism may be related, e.g. in case of AWT/JAWT. Here, a JAWT surface lock would implicitly lock the global JAWT. The latter is actually intended to be done by the JAWT ToolkitLock implementation we offer. Not calling it would steal it's lock and we won't benefit from it's recursive behavior. A followup ToolkitLock lock would deadlock, since we already have locked it implicitly with the surface lock. Hence the NativeWindow surface lock needs to be the owner of the JAWT ToolkitLock 'lock' incl. issuing it's optional native locking. Massive multithreading tests on multi core machines (X11, Windows, MacOSX) AWT and NEWT (AWT/Native) .. no deadlocks under java demos.es[12].RedSquare -GL2 -GL2 -GL2 -GL2 java demos.es[12].RedSquare -awt -GL2 -GL2 -GL2 -GL2 java demos.es[12].RedSquare -GL2 -GL2 -awt -GL2 -GL2 - NEWT Windows: - Adding fullscreen - Cleaning up the UserData attachment, adding JNIEnv, and removing the global reference at window destruction. The later removes a StackOverflow .. alright, but still a lack of true multiple top level window. - NEWT AWTCanvas: Apply Ken's fix for using disableBackgroundEraseMethod - FIX X11AWTGLXGraphicsConfigurationFactory: Wow .. I must have been blind, now using the right method X11SunJDKReflection.graphicsDeviceGetDisplay() :) However, in case we couldn't determine the display handle, we will use a thread local display handle. - git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1943 232f8b59-042b-4e1e-8c03-345bb8c30851
* Made computation of required buffer size for operations likeKenneth Russel2009-06-1313-52/+189
| | | | | | | | glTexImage2D and glReadPixels more precise. Added buffer size checking for glGetTexImage. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1942 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added back in NVIDIA, ATI and Apple OpenGL extensions to GL interfacesKenneth Russel2009-06-133-6/+39
| | | | | | | | | | | (principally GL2). Added IgnoreExtension directives for extensions that appear to be largely obsolete. This allows demos like the HDR demo to compile again. Made "ant -Djogl.cg=1" work again, assuming a compatible Cg implementation is on the build machine. The Cg version currently being bound to is unfortunately obsolete and needs an upgrade. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1941 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed incorrect call to Runnable.run() added during Threading refactoringKenneth Russel2009-06-131-1/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1940 232f8b59-042b-4e1e-8c03-345bb8c30851
* Formatting changeKenneth Russel2009-06-131-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1939 232f8b59-042b-4e1e-8c03-345bb8c30851
* Attempt to get disableBackgroundErase hack working again with 6u10+,Kenneth Russel2009-06-131-4/+11
| | | | | | | but despite calling method, still see flickering with 6u13 git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1938 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed build problems with VC9 where manifests were not installedKenneth Russel2009-06-133-30/+8
| | | | | | | correctly into DLLs; updated documentation git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1937 232f8b59-042b-4e1e-8c03-345bb8c30851
* Added description of why X11NativeWindowFactory andKenneth Russel2009-06-121-8/+80
| | | | | | | | | X11AWTNativeWindowFactory and the toolkit locks are needed. Uncommented their instantiation; issues with them will need to be solved in some other way than removing them completely. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1936 232f8b59-042b-4e1e-8c03-345bb8c30851
* - NEWT X11Window setSize0 - change fullscreen method to MWM,Sven Gothel2009-06-126-70/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which is more reliable .. - NEWT X11Window remove XSetWindowFocus, since it causes BadMatch, let the desktop manager do this .. not our job - NEWT AWTWindow - Adding fullscreen mode. Note: AWT only allow undecoration if the window wasn't visible yet. - Fixing some runOnEDT .. - Query correct screen size - AWTCanvas .. adding the disableBackgroundErase() hack .. - NativeWindowFactory .. disabling com.sun.nativewindow.impl.x11.awt.X11AWTNativeWindowFactory, (JAWT lock) com.sun.nativewindow.impl.x11.X11NativeWindowFactory, (monitor lock) since it causes more troubles than benefit. GLCanvas is serialized anyways .. and NEWT AWT would freeze, since that JAWT lock is even taken in the input loop. FIXME: Has to be discussed. - git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1935 232f8b59-042b-4e1e-8c03-345bb8c30851
* GLSL ShaderUtil: Use TLS to make it thread safeSven Gothel2009-06-122-12/+15
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1934 232f8b59-042b-4e1e-8c03-345bb8c30851
* MacOSX: Exception for GL3 profile .. no OpenGL 3.1 implementation yetSven Gothel2009-06-121-0/+3
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1933 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Adding CR + TAB to toString() methods for better visibility,Sven Gothel2009-06-1233-214/+536
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | use a unix style capable viewer/editor for the debug methods .. - Multihead code is working now for - GLCanvas, GLJPanel - Newt: GLWindow, AWTWindow and WindowsWindow WindowsWindow is using the MonitorFromWindow(HWND) win32 method to detect a monitor change, same as AWT's implementation. AWT does the detection within getGraphicsConfiguration(). Added documention in GLAutoDrawable inkl. the fixed protocol for such a case (regeneration cycle). The interesting thing here is, that in my test environment, the windows NV driver keeps up the previous HDC pixelformat even within a new HDC (all same HWND), if the HWND is dragged from a 32bpp-screen to a 16bpp-screen and vice versa. But for the sake of other driver behaviors, this implementation shall fix the multihead support on windows and other non Xinerama driven arrangements. Another good thing of the in deep investigation was to fix the documentation and other bus, as follows: - FIX GLDrawableHelper.dispose(): Don't remove the event listeners, since dispose() does not mean EOL. - FIX remove all actions of NativeWindow.LOCK_SURFACE_CHANGED, due to the unreliable (never worked here for me) behavior. Also .. acting on a surface change from within a GLDrawable is already to low level, and misses all the appropriate actions. See GLAutoDrawable for the spec. - FIX all GLDrawable implementations update the graphics configuration on setVisible(true), except MacOSX, which does it on create context. The latter is ok with the spec .. - FIX removed the windows NO_FREE hack, since it could introduce a non released context .. which is not good. The context state shall be completely handled by GLContext - FIX GLDrawableImpl.setVisible(false): removed nativewindow invalidate() call - this is wrong, due to the spec. A window may survive many cycles of setVisible(). - FIX GLCOntextImpl lock the lock as soon as possible in destroy() - Add native method WindowsWindow.MonitorFromWindow(..) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1932 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed GLAutoDrawable's dispose(boolean regenerate), and added it's ↵Sven Gothel2009-06-127-102/+87
| | | | | | semantic to it's documentation, plus references to the multihead display change git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1931 232f8b59-042b-4e1e-8c03-345bb8c30851
* javadoc fixesSven Gothel2009-06-112-7/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1930 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Fixing SPEC documentation for bindings JOGL and NativeWindow, Sven Gothel2009-06-1191-1168/+5276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lot's of javadoc changes/fixes. - Fixing transparency values RGB[A] in GLX and EGL, adding those in GLCapabilities. - Adding EGLPbuffer (untested yet) Added EGLOnscreenContext, EGLOnscreenDrawable and EGLPbufferContext, EGLPbufferDrawable, which completes the now abstract EGLContext and EGLDrawable. - Decoupling EGLDrawableFactory and DynamicLookupHelper: Since OpenGL ES has 2 libraries and hence 2 DynamicLookupHelper, one for each, these are decoupled in EGLES1DynamicLookupHelper and EGLES2DynamicLookupHelper, where each uses the base class EGLDynamicLookupHelper. EGLDynamicLookupHelper act's also as the owner of these singleton instances. EGLDrawableFactory is now pure singleton, and has no more relation to the ES[12] libraries. Still, GLDrawableFactory.getFactory(GLProfile) stays, due to the selection of the right factory, ie EGLDrawableFactory or a native one (X11GLX, WindowsWGL or MacOSXCGL). Added GLDrawableImpl.getDynamicLookupHelper(). DynamicLookupHelper implementation is pushed down to the specialisation of GLDrawableImpl, hence removed GLDrawableImpl implements DynamicLookupHelper. - Fixing Locking - Always throw an Exception if unlock is called without being locked. - Removed NativeWindow.LOCK_NOT_SUPPORTED, since it made the locking state ambiguos. - Using a generated Exception at locking to mark the object locked, and to let it throw in case of double locking. - Removed redundant lockToolkit() calls, where lockSurface() calls are made - Fixing GLWindow wrapped toolkit (e.g. AWTWindow) usage - In case the passed NativeWindow only contains a wrapper window, we use the NativeWindowFactory.getNativeWindow() pipeline to produce a valid NativeWindow. This object is only referenced within the drawable, hence we have to use it for actual NativeWindow related operations. - Add setVisible(): lockSurface()/unlockSurface() to allow getting the windowHandle - Overwriting all drawable related Window method's, using the drawable's NativeWindow if exists. - getNativeWindow() - lockSurface()/unlockSurface()/.. - getWindowHandle()/getSurfaceHandle() - Fix NativeWindowFactory.getNativeWindowType(), so the custom and pure values are set once (static init) - not overwritten (prev. bug). - NEWT: Added WindowEvent.EVENT_WINDOW_DESTROY_NOTIFY support in AWTWindow. Now the proper dispose() calls are made to all GLEventListeners if the AWT window is being closed - before it is actually destroyed. - Threading now uses the AWTThreadingPlugin, a ThreadingPlugin interface AWT implementation, containing the refactored Threading code. - Reintroduced getChosen*Capabilities and getRequested*Capabilites, where get*Capabilities is renamed back to getRequested*Capabilities. The semantics are necessary to allow the drawables (and NativeWindow) to be regenerated in case of a device change in a multihead environment. Otherwise there is a risk that recursive choosing of the Capabilities will degenerate the result. - Multihead logic .. Exception: Xinerama, where all monitors share the same static configuration, and the window handle 'survive' X11, MacOSX and Win32 with a Xinerama behavior 1) Recognition of a display/screen/surface change - It is prooven that the JAWT model (JAWT_LOCK_SURFACE_CHANGED) while locking the surface is not reliably propagated, ie doesn't work here, if the display change happens. - AWT's Canvas.getGraphicsConfiguration() can reliably being used to detect this case, ie compare the old GraphicsConfiguration with the new one. - A solution for other native windowing toolkits must be found, ie query the current underlying pixel-configuration, if it changed - act. In which case the the following shall be done: 2.0) - notify all GLEventListener via the dispose(GLAutoDrawable) 2.1) - destroy the OpenGL context 2.2) - call GLDrawable's setRealized(false) 2.3) - call GLDrawable's setRealized(true) 2.4) - create a new OpenGL context 2.5) - notify all GLEventListener via the init(GLAutoDrawable) Steps 2.0 - 2.5 are executed with GLAutoDrawable's dispose(true) call. Step 2.3, setRealized(true) on GLDrawable shall: 2.3.1) - Choose the GLCapabilities again, based on the requested ones, and update the choosen ones in the AbstractGraphicsConfiguration. 2.3.2) - Update AbstractScreen within the new AbstractGraphicsConfiguration to reflect the possible screen change. DONE: Xinerama mode: X11 + Xinerama, MacOSX DONE: Introducing GLAutoDrawable.dispose(boolean regenerate) DONE: 2.3.1 on setRealized(true): Windows, MacOSX (implicit on createContext) TODO: Windows setRealized(true) on AWT Canvas getGraphicsConfiguration(), can't lock the JAWT surface sometimes - exception, code disabled, see GLCanvas.java TODO: 2.3.1 on setRealized(true): X11 and EGL TODO: Find a test case, without Xinerama behavior TODO: Code for Newt/NativeWindow to detect (1) and propagate GLAutoDrawable's dispose(true). TESTS: - MacOSX (Xinerama) OK - X11 -TwinView (NV) OK -Xinerama (NV) OK - Win32 (Xinerama) OK - GLAutoDrawable's dispose(true) - git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1929 232f8b59-042b-4e1e-8c03-345bb8c30851
* Minor egl cleanupSven Gothel2009-06-051-4/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1928 232f8b59-042b-4e1e-8c03-345bb8c30851
* Win-EGL: Add dll function lookup for C++ decoration (Imageon driver) ; EGL: ↵Sven Gothel2009-06-056-80/+119
| | | | | | Some cleanup git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1927 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix GL3 (3.1) Windows - Adding OpenGL32 lookup for core functions - GL3 ↵Sven Gothel2009-06-053-15/+26
| | | | | | Windows works as well. java demos.GLInfo -GL3, or java demos.es2.RedSquare -GL3 git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1926 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix/Clean EGL path; Adding Windows AWT path; Windows works with MinGW (GL2)Sven Gothel2009-06-0522-73/+290
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1925 232f8b59-042b-4e1e-8c03-345bb8c30851
* Compile clean under windowsSven Gothel2009-06-046-7/+30
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1924 232f8b59-042b-4e1e-8c03-345bb8c30851
* Add MacOSX support / tested on one threadSven Gothel2009-06-039-13/+231
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1923 232f8b59-042b-4e1e-8c03-345bb8c30851
* Tested:Sven Gothel2009-06-0365-665/+1154
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Linux / X11 / GL3 / GL2 / ES1 / ES2 - Using etc/profile.jogl JOGL_ALL . ./setenv-jogl.x86.sh JOGL_ALL - Java2D/GLJPanel: demos.jrefract.JRefract - GLCanvas: demos.gears.Gears - Newt/Nativewindow (demos.GLInfo, demos.es2.RedSquare, demos.es2.RedSquare) - with multiple instances of different GL profiles, ie java demos.es1.RedSquare -GLES2 -GLES1 java demos.GLInfo -GLES2 -GL2 - GL 3.1 test with demos.GLInfo java demos.GLInfo -GL3 java demos.GLInfo -GL3 -GL2 with NVIDIA 180.37.05 JOGL Enable parallel GLProfiles: - GL holds it's GLProfile - GL / GLBase added: hasGLSL() getGLProfile() - Removed all hardcoded GLProfile checks - Make GLProfile an instance of GLCapabilities - GLCapabilities needs GLProfile in constructor, or null for the default GLProfile - All GLProfiles are singelton mapped objects, setup and verified at static init. - All GLDrawableFactories in GLDrawableFactory are singelton objects, setup at static init. - GLDrawableFactories.getFactory() needs an argument, which leads to GLProfile, ie NativeWindow, AbstractGraphicsConfiguration, GLCapabilities or GLProfile. - EGLDrawableFactory takes GLProfile as an argument, being able to take the singleton role as ES1 or ES2 - EGLDrawableFactory loads ES & EGL libraries _local_, otherwise the symbols produce a collision (Unix/PC-Emulation). TODO: Check on Windows/WinCE ! - Fixing etc/profile.jogl JOGL_ALL EGLGraphicsConfigurationFactory - Added eglGetConfigs -> GLCapabilities -> eglChooseConfig, in case the simple eglChooseConfig fails. - Using given chooser, is null, use DefaultGLCapabilitiesChooser Moved FixedFuncUtil.class -> jogl.util.jar, otherwise the FixedFuncUtil pipeline cannot be used without emulation. GLDrawable Rename getChosenGLCapabilities() -> getGLCapabilities(), since all GLCapabilities access functions return the current state. Add getGLProfile() NativeLibLoader[Base] Added 'addLoaded' and 'isLoaded', so all LoadAction implementation can use it and circumvent double library loading. GlueGen Split openLibrary -> openLibraryLocal / Global, utilizing as an optional flag (global), which is true per default. TODO: How to do this on Windows ? TODO: Verify Windows and MacOSX !! git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1922 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix Deadlock in X11AWTNativeWindowFactory (adding missing notifyAll() ; ↵Sven Gothel2009-05-307-80/+109
| | | | | | Stricten unlock(), throw an exception if not locked to make cheap coding more visible ; Removed double lock of surface and JAWT ; Adding missing try/finally block for some locks git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1921 232f8b59-042b-4e1e-8c03-345bb8c30851
* Clarifying resetGLFunctionAvailability() -> ↵Sven Gothel2009-05-3011-27/+63
| | | | | | setGLFunctionAvailability(boolean force) and updateGLProcAddressTable() ; fixes missing init for some Context implementations, ie PBuffer git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1920 232f8b59-042b-4e1e-8c03-345bb8c30851
* JOGLSven Gothel2009-05-29150-2364/+7515
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added OpenGL 3.0 and 3.1 support 3.0 as part of GL2 (extensions only) 3.1 forward compatible as GL3, ie doesn't contain the GL2 fixed function stuff etc Added code to retrieve a 3.0/3.1 context: X11/GLX and Windows/WGL TODO: MacOSX !! Updated GL and GLX extensions Fixing auto GLProfile selection, determine if GL2ES[1] uses GL2 or ES Usage of the unified GraphicsConfiguration of NativeWindow for all platforms. Sure, the broken OS (Win32/MacOSX) have a update mechanism for theit queried Capabilities after drawable creation. Adding X11/GLX GLXFBConfig usage and fixing it's attribute mapping Fixing GLX/X11 FBConfig/XVisual query function's memory leak, using a manual implementation, which copies the data and calls XFree. Added WGL extension WGL_ARB_create_context Tested: Linux x86 and x86_64 GL2, ES2 and ES1 Note: Nvidia driver couldn't make the succesfully created 3.1 context current. TODO: Verify Windows and MacOSX !! git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1919 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt: better keyboard input support on Windows (warning: may have broken the ↵Dmitri Trembovetski2009-05-283-214/+630
| | | | | | mobile windows build because of unicode API usage, I have no way to check) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1918 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt: implemented simple window focus management for Mac OS XChristopher Campbell2009-05-263-1/+60
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1917 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt: implemented simple Window focus management ↵Dmitri Trembovetski2009-05-267-41/+119
| | | | | | (focusGained/focusLost/requestFocus for Window). Currently only implemented on Windows. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1916 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed NEWT mouse events on Mac OS X to be consistent with Windows ↵Christopher Campbell2009-05-261-2/+24
| | | | | | implementation (0==none, 1==left, 2==middle, 3==right). git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1915 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt: fixed mouse wheel support on windows - needed to translate mouse ↵Dmitri Trembovetski2009-05-261-2/+11
| | | | | | event coordinates from screen to client git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1914 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt fixes: implemented mouse wheel support - currently only hooked up on ↵Dmitri Trembovetski2009-05-259-40/+128
| | | | | | Windows platform, others will follow git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1913 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt fixes for Windows implementation: beginnings of proper modifier ↵Dmitri Trembovetski2009-05-242-0/+19
| | | | | | handling for key events; ignore WM_ERASEBG event to avoild flickering when resizing git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1912 232f8b59-042b-4e1e-8c03-345bb8c30851
* Checking in forgotten ShaderUtil.javaKenneth Russel2009-05-221-0/+400
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1911 232f8b59-042b-4e1e-8c03-345bb8c30851
* Optimized GLU creation by caching Class object for implementationKenneth Russel2009-05-221-8/+20
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1910 232f8b59-042b-4e1e-8c03-345bb8c30851
* Refactored shader-related utility routines from core GL2ES2 class intoKenneth Russel2009-05-226-302/+34
| | | | | | | | | | | | ShaderUtil class. Added GLContext.getAttachedObject(String) and putAttachedObject(String, Object) to allow arbitrarily named objects to be attached to GLContext. Removed explicitly defined toString() operations on GL implementations which were problematic and which would have required downward references into com.sun.opengl.util.glsl package after this refactoring. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1909 232f8b59-042b-4e1e-8c03-345bb8c30851
* Recently code (UnifiedName, GLUnifiedName) was added to GlueGen toKenneth Russel2009-05-2017-155/+310
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | automatically detect duplicate constant and function definitions between vendor and ARB extensions and the OpenGL core, and to remove the suffixes of ARB extensions. This code has helped automate the process of discovering extensions that were promoted into the OpenGL core. While this code has saved some manual effort, it has also caused several problems: 1. It causes obsolete ARB extensions to be incorrectly moved into the core OpenGL namespace. GL_ARB_texture_rectangle, GL_ARB_vertex_blend, and GL_ARB_matrix_palette are examples of extensions that should not have their ARB suffixes removed because they are dead-end extensions. Definitions which are explicitly specified that they will change, such as those in the EGL_KHR_sync extension, were also incorrectly moved into the core namespace. 2. It has caused certain OpenGL ES-specific definitions to accidentally be promoted into the core OpenGL namespace: for example, the constants associated with the GL_OES_point_size_array extension, which were incorrectly placed into the GL2ES1 interface. 3. It causes namespace collisions between certain ARB extensions that are only accessible via their ARB entry points and core OpenGL routines: specifically GL_ARB_vertex_program and GL_ARB_fragment program. Based on tests on NVIDIA's drivers, when a developer wants to use the earlier ARB_vertex_program and ARB_fragment_program semantics rather than GLSL, it is mandatory to use the ARB entry points rather than the core OpenGL entry points. 4. It is not easy to configure the behavior of this automatic merging, nor easy to see how it would be extended to be configurable. 5. It does not address the problem of detecting which extensions are common between desktop OpenGL and OpenGL ES. A different algorithm would be needed to solve that problem. 6. It has a high degree of functional overlap to the IgnoreExtension directive which has previously been used to ignore ARB extensions that were promoted into the OpenGL core. There were already IgnoreExtension directives in place for all of the OpenGL extensions subsumed in OpenGL 1.1 through 1.3. 7. It has been the cause of several bugs and unexpected interactions with the Ignore and ForceProcAddressGen directives. After careful consideration, it appears that the problems with this code outweigh the benefits and it has been removed. The run-time code which attempts to find extension variants of core entry points has been retained, however. To reduce the amount of subsequent manual work, the following additions have been made: 1. A generic SymbolFilter mechanism has been added to GlueGen, which can be used to pre-process the entire set of constant and function definitions at any time during glue code generation (although it is recommended to do so at the beginning of processing, i.e., in GlueEmitter.beginEmission()). 2. The RenameJavaMethod directive has been generalized to RenameJavaSymbol, and can now work on constant definitions. 3. A ConstantDefinition class has been added. 4. A RenameExtensionIntoCore directive has been added to the GLEmitter which will rename all constant definitions and entry points associated with a particular OpenGL extension into the core namespace, i.e., stripping off any ARB or similar suffixes. 5. An AutoUnifyExtensions directive has been added which is disabled by default but which will automatically ignore any OpenGL extension which has been completely subsumed into the OpenGL core and, if not, print out the first declaration in that extension which caused it to fail to be ignored. The extensions common between OpenGL ES and desktop OpenGL have now largely been moved into the core namespace using the RenameExtensionIntoCore directive. A couple of these extensions had slight differences between desktop OpenGL and OpenGL ES; the common declarations were renamed manually. IgnoreExtension directives have been added for those ARB extensions promoted into the OpenGL core up to OpenGL 2.1. A few extensions which were either silently promoted into the core specification (GL_EXT_paletted_texture) or are obsolete (GL_EXT_multisample, GL_EXT_point_parameters) were also ignored. The GlueGen runtime code which looks up extension versions of core APIs via GLExtensionNames makes this possible without breaking compatibility on older machines that do not support OpenGL 2.1 directly. With these changes, the same effect as the automatic extension unification mechanism has been achieved, with much more explainable and controllable results. Before-and-after versions of all of the public interfaces (GL, GL2ES1, GL2ES2, GLES1, GLES2, and GL2) have been compared by hand to ensure that the results are as expected and desired. Bugs in BuildStaticGLInfo were fixed which were preventing the extension associations in the OpenGL ES headers from being discovered. getExtensions() was added to be able to enumerate the discovered extensions. Most .cfg files were changed to parse both the desktop OpenGL and the OpenGL ES headers using the GLHeaders directive so that the extension associations are known for both sets of APIs. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1908 232f8b59-042b-4e1e-8c03-345bb8c30851
* Removed unneeded dependence on GL/glx.h; verified that JOGL can now beKenneth Russel2009-05-011-1/+0
| | | | | | | built on an X11 machine without OpenGL headers, but with OpenGL librares git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1907 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed Solaris buildKenneth Russel2009-04-301-1/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1906 232f8b59-042b-4e1e-8c03-345bb8c30851
* Renamed gl-ignore-gl2_es12-special.cfg to gl-if-gl-ignores.cfg for clarityKenneth Russel2009-04-282-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1905 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fixed build problems with nativewindow and newt with Visual Studio 2008Kenneth Russel2009-04-262-2/+0
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1904 232f8b59-042b-4e1e-8c03-345bb8c30851
* NEWT: mouse pressed fixSven Gothel2009-04-131-7/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1902 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt fixes for Windows implementation: implemented undecorated window styleDmitri Trembovetski2009-04-102-5/+10
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1900 232f8b59-042b-4e1e-8c03-345bb8c30851
* Preserve mouse button number while draggingSven Gothel2009-03-281-5/+5
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1899 232f8b59-042b-4e1e-8c03-345bb8c30851
* Newt fixes for Windows implementation: implemented setPosition, setTitle; ↵Dmitri Trembovetski2009-03-242-8/+93
| | | | | | fixed mouse modifiers, hooked up window move notification git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1898 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix: glShaderCompilerAvailable() and glGetShaderBinaryFormats()Sven Gothel2009-03-201-0/+6
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1897 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix GLProfile.isGL2ES[12](), adding GLProfile.hasGLSL()Sven Gothel2009-03-206-14/+21
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1896 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix build all javadoc generated source pathSven Gothel2009-03-201-1/+1
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1895 232f8b59-042b-4e1e-8c03-345bb8c30851
* Putback AWTAnimatorImpl to util, hence *AnimatorImpl are protected againSven Gothel2009-03-202-4/+3
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1894 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix GL2ES12.isGL() and re-adding the shader code to the jarSven Gothel2009-03-203-2/+7
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1893 232f8b59-042b-4e1e-8c03-345bb8c30851
* Fix: Missed package move of AWTAnimatorImplSven Gothel2009-03-202-3/+4
| | | | git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/branches/JOGL_2_SANDBOX@1892 232f8b59-042b-4e1e-8c03-345bb8c30851