summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* ATI (fglrx) PBuffer/X11Display bug workaround/cleanupSven Gothel2010-04-1319-124/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - See https://bugzilla.mozilla.org/show_bug.cgi?id=486277 - Description: - To use PBuffer, a context must be current - X11Display cannot be switched while using the PBuffer [within one thread]. Hence we shall try harder to reuse _the_ user configured X11Display - whenever possible. This is actually a good thing, ie cleanup up our code again. - Changes to workaround/cleanup: - GLDrawableFactory* methods 'canCreate*()' are changed to 'canCreate*(AbstractGraphicsDevice)' to allow pipelining the X11Display. This reduces the overhead of using a local TLS X11Display. - WindowsDummyWGLDrawable cstr gets the GLProfile as a parameter now, this is done while adding X11DummyGLXDrawable - forseeing the usecase to query available GLProfiles at startup. - X11DummyGLXDrawable added, following the WindowsDummyWGLDrawable path to have a dummy GLContext current to fix the ATI bug. NativeWindow X11: - Add XIOErrorHandler to identify the fatal failure of closing a Display (-> ATI bug). Build: - Adding ant.jar and ant-junit.jar to the junit compile/run classpath - Misc: - Fix: CreateDummyWindow(..) returns a HWND, not a HDC - mapToRealGLFunctionName: Added mapping for X11/GLX. - X11GLXGraphicsConfigurationFactory: Uncommented dead code 'createDefaultGraphicsConfigurationFBConfig' Tests: Passed (Linux64bit: NVidia/ATI) Todo: More tests on ATI, especially multithreading/X11Display usage.
* NEWT X11 Fix (mainly ATI and multithreading)Sven Gothel2010-04-138-163/+443
| | | | | | | | | | | | | | | | | | | | | | | | | | | - EventDispatchThread -> EDTUtil Since the name leads to the assumptions that an instance is the EDT. EDTUtil manages the EDT within. - EDTUtil, no more reference to Display, but use a Runnable for the pumpMessage() - Window.destroy() check if already done - X11Window: Added XErrorHandler to catch BadWindow and BadAtom while dispatching events - it is possible that the resource is already freed. Also added an XIOErrorHandler to identify the fatal Display* inaccessibility. Tests: - New junit/com/jogamp/test/junit/newt/TestWindows01NEWT.java Testing creation/destruction and double destruction (error case) - Fix: src/junit/com/jogamp/test/junit/jogl/offscreen/TestOffscreen01NEWT.java Properly holding all NEWT references .. Misc: - Reduced redundant NEWT 'toString()' output (*Capabilities, ..) -
* *** Now Using Apache-Ant-1.8.0 ***Sven Gothel2010-04-106-50/+101
| | | | | | | | | | | | | | | | | | | | Cleanup: - Adding Javac includeAntRuntime argument (false whenever possible) - Clear junit results folder before testing - <ant ..> tasks, use inheritRefs="true" inheritAll="true" whenever possible for better performance and consistency (no duplicate property names). The JOGL build -> build-<component> tree is clean in this respect. junit.run: Test*NEWT* Emulation of junit task, due to the fact that we have to place invoke our MainThread class first (-> MacOSX). Utilizing Ant-1.8.0 and ant-contrib-1.0b3 (loops, mutable properties). Fixed NEWT tests: - No more println .. using Assertions .. - Offscreen produces 2 files correctly (Linux/NVidia, OSX/NVidia, Win32/Emulation)
* Fix NEWT Window destroy/close race condition,Sven Gothel2010-04-094-57/+94
| | | | | | | | where a programatic window.destroy() call from thread 1 triggers a destroy() call via the native windowing toolkit via windowDestroyNotify(). It has to be checked/locked if a destroy is in progress, otherwise they could deadlock (OSX and Win32).
* junit: Add timeout (30s), enable offscreen testSven Gothel2010-04-092-6/+29
|
* Attach build-junit.xml to build.xml ; Add more tests Offscreen(broken on ↵Sven Gothel2010-04-0912-4/+1442
| | | | ATI), Drawable
* Fix missing MacOsX Newt refactoringSven Gothel2010-04-091-30/+30
|
* Added FIXME comment: DBLBUFOFFSCRN, to tag the impl of forcing single buffer ↵Sven Gothel2010-04-094-8/+8
| | | | on offscreen/pbuffer
* Cleanup ant files, intro: build-common.xml used for all targets; Extracting ↵Sven Gothel2010-04-092-3/+3
| | | | build-junit.xml
* Added doc/deployment:Sven Gothel2010-04-084-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JOGL-JAR-BUNDELING.txt A first FAQ about the (new) JAR partitioning. lstjars/lstjars.linux_amd64-20100406.log A first deployment payload measurement in kBytes :) New JAR Partitioning: All-In-One (*all*): - with AWT - without AWT See JOGL-JAR-BUNDELING.txt Atomic: See JOGL-JAR-BUNDELING.txt - Removed property setup.noall, since the *all* targets are mandatory now. Currently - Added gl4 part (still empty) - Fixed make/lstjars.sh and etc/profile.jogl (new JAR bundles) - Fixed make/lstjars.sh to produce JAR and PACK200 numbers, and using the *all* bundles if possible. MacOsX: - Fix missing refactoring in src/newt/native/MacWindow.m - Adding missing NSWindowDelegate protocol to NewtMacWindow as mandatory since 10.3.6 Misc: - Applied: 'gluegen.cpptasks.striplibs' to all native libraries. - Use path.seperator (ant) and system.env.library.path (gluegen), for junit runs.
* added intelliJ modules for jogl, newt and nativewindow. Removed other ↵Michael Bien2010-04-083-38/+0
| | | | projectfiles.
* modifications due to class movement in gluegen.Michael Bien2010-03-3129-56/+25
| | | | updated joglversion files.
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-03-3027-1145/+334
|\
| * fixed a bunch of javadoc warnings.Michael Bien2010-03-2914-76/+72
| |
| * renamed BufferUtil to GLBuffers.Michael Bien2010-03-298-112/+93
| |
| * com.jogamp.opengl.util.BufferUtil extends com.jogamp.gluegen.runtime.Buffers.Michael Bien2010-03-2911-417/+78
| | | | | | | | removed all redundant methods from BufferUtil.
| * renamed platform dependent BufferUtil into java file.Michael Bien2010-03-292-449/+0
| |
* | Adaptions toSven Gothel2010-03-309-53/+58
|/ | | | | http://www.jogamp.org/bugzilla/show_bug.cgi?id=392 7220416bcef3140883d3966d921442feae3107c4
* moved com.jogamp.javafx.* to com.jogamp.*.Michael Bien2010-03-2959-301/+294
|
* changes due to BufferFactory -> Buffers renaming in gluegen.Michael Bien2010-03-291-9/+9
|
* final large refactoring to move to com.jogamp.*.Michael Bien2010-03-28126-393/+394
|
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-03-28306-710/+742
|\
| * refactoring part 4 (remaining files): renamed com.sun.opengl -> ↵Michael Bien2010-03-2711-26/+26
| | | | | | | | com.jogamp.opengl.
| * refactoring part 3 (impl package): renamed com.sun.opengl -> com.jogamp.opengl.Michael Bien2010-03-2787-184/+184
| |
| * refactoring part 2 (glu package): renamed com.sun.opengl -> com.jogamp.opengl.Michael Bien2010-03-2796-256/+256
| |
| * refactoring: renamed com.sun.opengl -> com.jogamp.opengl.Michael Bien2010-03-27108-206/+204
| |
| * added idea project filesMichael Bien2010-03-273-0/+38
| |
| * refactoring due to gluegen changes.Michael Bien2010-03-2730-38/+34
| | | | | | | | - renamed com.sun.gluegen.runtime -> com.jogamp.gluegen.runtime.
* | Adaption for gluegen a41f4d504d2f8cf58114d570d23f757ab2659cfcSven Gothel2010-03-281-1/+1
|/
* http://www.jogamp.org/bugzilla/show_bug.cgi?id=391Sven Gothel2010-03-262-8/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As shown below, the concurrent access of GLStateTracker while being cleared by GLContext.destroy() causes a NPE. GLContext.destroy() shall disable it first, then clear it. The state stack pop method shall also swap the mapping with a most atomic action. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.sun.opengl.impl.GLStateTracker.getInt(GLStateTracker.java:94) at com.sun.opengl.impl.gl2.GL2Impl.glGetIntegerv(GL2Impl.java:6102) at com.sun.opengl.impl.gl2.GL2Impl.imageSizeInBytes(GL2Impl.java:26000) at com.sun.opengl.impl.gl2.GL2Impl.imageSizeInBytes(GL2Impl.java:25713) at com.sun.opengl.impl.gl2.GL2Impl.glTexImage2D(GL2Impl.java:18692) at glredbook1314.combiner.init(combiner.java:104) at com.sun.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:88) at javax.media.opengl.awt.GLJPanel$Updater.init(GLJPanel.java:557) at com.sun.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:88) at com.sun.opengl.impl.GLPbufferImpl$InitAction.run(GLPbufferImpl.java:274) at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:149) at com.sun.opengl.impl.GLPbufferImpl.maybeDoSingleThreadedWorkaround(GLPbufferImpl.java:267) at com.sun.opengl.impl.GLPbufferImpl.swapBuffers(GLPbufferImpl.java:157) at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:159) at javax.media.opengl.awt.GLJPanel.dispose(GLJPanel.java:238) +++
* fixed compiler error in TextureRenderer.Michael Bien2010-03-261-1/+1
|
* http://www.jogamp.org/bugzilla/show_bug.cgi?id=378Sven Gothel2010-03-268-175/+194
| | | | | | | | | | | | | | Changed solution with a necessary API change of TextureData etc. Adding required GLProfile element to the factories etc, so it is clear for which GLProfile data is being created without the need of a current GLContext. TextureData/AWTTextureData: Removed the glPostInit* effort .. IMPACT: Texture util's API change - minor user code change necessary. +++
* http://www.jogamp.org/bugzilla/show_bug.cgi?id=378Sven Gothel2010-03-252-0/+227
| | | | | | | | | | | | | | | | | Test: Added JUNIT Test Environment: - tests: jogl.test.jar - run: 'ant junit.run' Currently only runs 1 test regarding this bug id. Adding PATH (windows) or LD_LIBRARY_PATH (unix). Test initialized AWTTextureData without a current GLContext and then uses it to render .. Solution: Pending initialization of GL depending data, offered in TextureData.glPostInit(), specialized in AWTTextureData.
* http://www.jogamp.org/bugzilla/show_bug.cgi?id=378Sven Gothel2010-03-252-22/+87
| | | | | | | | | | | | | | | | | Test: Added JUNIT Test Environment: - tests: jogl.test.jar - run: 'ant junit.run' Currently only runs 1 test regarding this bug id. Adding PATH (windows) or LD_LIBRARY_PATH (unix). Test initialized AWTTextureData without a current GLContext and then uses it to render .. Solution: Pending initialization of GL depending data, offered in TextureData.glPostInit(), specialized in AWTTextureData.
* http://www.jogamp.org/bugzilla/show_bug.cgi?id=363LICENSE_CLEANUP_STARTSven Gothel2010-03-2496-96/+96
| | | | Upgrade SGI FreeB license headers
* refactoring: new struct accessor method naming conventions.Michael Bien2009-11-1110-62/+62
|
* Add OpenGL 3.x compatibility profile GL3bc,Sven Gothel2009-10-184-17/+82
| | | | | | | | | | | where 'bc' is not a religious remark, but simply means 'backward compatible' :) GL3bc := GL2 + GL3, hence the interface does not define any new values or methods. Moved GL3's 3.1 part from gl3.h to gl3ext.h, so it can be included in gl3bc.c, besides gl2.h.
* All tracker are aggregated in the GLContext nowSven Gothel2009-10-177-58/+90
| | | | | | | | | | | | | | | and used within the GL*Impl. New GLStateTracker: - Tracking client/server states - Currently supports PixelStorei - Prologued in glPixelStorei and glGetIntegerv, the latter will return the tracked state if available and not call the GL method. Impacts performance and ES1 compatibility (supports ALIGNMENT). Fixed 'imageSizeInBytes' calculation: - skipPixels and skipRows is a static one time offset
* All tracker are aggregated in the GLContext nowSven Gothel2009-10-171-0/+211
| | | | | | | | | | | | | | | and used within the GL*Impl. New GLStateTracker: - Tracking client/server states - Currently supports PixelStorei - Prologued in glPixelStorei and glGetIntegerv, the latter will return the tracked state if available and not call the GL method. Impacts performance and ES1 compatibility (supports ALIGNMENT). Fixed 'imageSizeInBytes' calculation: - skipPixels and skipRows is a static one time offset
* GLProfile: usesNativeGLES[12] remove check with non impl GL2ES[12] ; Add ↵Sven Gothel2009-10-161-4/+19
| | | | usesNativeGL[23]
* Fix WindowsOffscreenWGLDrawableSven Gothel2009-10-161-2/+3
|
* Fix Solaris buildSven Gothel2009-10-152-20/+21
|
* X11 Display Lock completed (hope so)Sven Gothel2009-10-1211-146/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - JOGL GLXUtil - JOGL X11GLXDrawableFactory - JOGL X11GLXGraphicsConfigurationFactory - JOGL X11OffscreenGLXDrawable - NW X11GraphicsConfigurationFactory NEWT Display - Stop EDT immediatly from within EDT when destroying - NEWT Window - Remove obsolete 'disposeSurfaceHandle()' NEWT GLWindow destroy(): - Deep destruction (Window, Screen and Display) if owner, otherwise just the GLWindow/GLDrawable - Add 'sendDisposeEvent' flag, to allow avoiding sending dispose to all GLEventListeners in a critical shutdown, ie from within the browser. NEWT EDT - More fine grained locking - unlocked while event dispatching - double check locking - Fixed cases where we are running on the EDT ..
* NativeWindow X11: Lock/Unlock Display if using itSven Gothel2009-10-111-5/+12
|
* NEWT X11 Display Lock:Sven Gothel2009-10-1112-113/+151
| | | | | | | | | | | | | | | Integrate Display.lock/unlock, so the generic Window will call it. Specialized for X11Display, the only real impl of it. Fixes offscreen EDT usage .. GLProfile: Add isAWTAvailable() and isAWTJOGLAvailable() TextureIO: - Add NetPbmTextureWriter - Only use IIOTexture* if !isAWTJOGLAvailable() - Add write (TextureData, File)
* NEWT: Avoid NPE at destroy() ; DEBUG println ..Sven Gothel2009-10-102-4/+20
|
* NEWT: Add EventDispatchThread (EDT) pattern.Sven Gothel2009-10-1018-381/+719
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to limitations on Windows, we need to standardize the one thread for - window creation, and - event dispatching This was already mentioned in the previous implementation but while integrating into another threading model (Plugin3), it turned out that manual managing the thread is too much of a burden. NEWT now uses a EDT per Display and Thread as the default, where Display creation, Window creation and event dispatching is 'pipelined' into. This can be switched off: NewtFactory.setUseEDT(boolean onoff); and queried via: NewtFactory.useEDT(); Note this EDT impl. does not implicate a global lock or whatsoever. The experimantal semantics of a current GL context for input event dispatching is removed, i.e. the GL context is no more made current for mouse/key listener. This reduces the complexity and allows the proper impl. of the external dispatch via EDT .. for example. Removed: GLWindow: setEventHandlerMode(int) .. etc X11Display: XLockDisplay/XUnlockDisplay needed to be utilized to allow the new multithreading (EDT/Render) Display usage. X11Window: lockSurface/unlockSurface locks X11Display as well .. +++++ NEWT: 'getSurfaceHandle()' semantics changed. To allow usage of the surfaceHandle for OS where it is allocated thread local (MS-Windows), it shall be aquired/released while lockSurface/unlockSurface. This is done in the Windows Window implementation. GLWindow can no more query 'getSurfaceHandle()' to verify if 'setRealized()' was successful. NEWT: Window surface lock is recursive and blocking now, as it shall be.
* EGL more query config trials; Avoid NPE if no config is chosenSven Gothel2009-10-056-20/+50
|
* Fix On-/Offscreen and PBuffer.Sven Gothel2009-10-0517-43/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Demos are working again: demos.jrefract.JRefract - X11, Win32, OSX -Dsun.java2d.opengl=true demos.jrefract.JRefract - X11, Win32 demos.readbuffer.Main [-GL2,-GL2ES1] -test 0 demos.es1.RedSquare - X11, Win32, OSX, EGL demos.readbuffer.Main [-GL2,-GL2ES1] -test [12] demos.es1.RedSquare - X11, Win32 - OSX not, because of the missing feature of attaching a read surface. - EGL not, because the emulation I used didn't support attaching a read surface. Emulation bug .. probably .. MacOSXWindowSystemInterface.m createContext(): - Verify if passed surface handle _is_ a view, now it could be a pbuffer etc .. handle as well. Cleanup GLDrawableImpl.setRealized(boolean realized) - Calls setRealizedImpl() (implementation) now, and only if new stated differs .. - setRealizedImpl() fixed for: MacOSXPbufferCGLDrawable: recreate/destroy WindowsOffscreenWGLDrawable: recreate/destroy WindowsPbufferWGLDrawable: no-recreate/destroy X11OffscreenGLXDrawable: recreate/destroy X11PbufferGLXDrawable: recreate/destroy WindowsWGLContext: - wglMakeContextCurrent(): uses isFunctionAvailable .. - create(): Uses WGL.MakeCurrent() and releases the created context, due to unavailable MakeContextCurrent extensions before updating the procaddress tables.
* Fix: EGL set doublebuffer:=false for offscreenSven Gothel2009-10-051-0/+1
|