summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* JOGL Error HandlingSven Gothel2010-04-278-48/+64
| | | | | | | | | | | - Catch invalid drawable for all impl. at GLContextImpl if !created yet - GLDrawableFactoryImpl (X11/WGL) catch and fwd Throwable properly - GLProfile catch LinkageError and handle it In case of nothing is available, a final ExceptionInInitializer will be thrown, with the produced GLException that no GLProfile is available.
* Relax Junit: TestOffscreen01NEWT, ie no failure if no PBuffer availableSven Gothel2010-04-271-0/+30
|
* test cleanupSven Gothel2010-04-271-2/+12
|
* - Fix GLProcAddressResolver regression: Use GLProcAddressResolver !Sven Gothel2010-04-2728-388/+379
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - X11GLXDrawableFactory: - Move shared resource creation/destruction into it's own thread - Remove the ATI hack (no XDisplay closing) for every Display, this is only necessary for the shared XDisplay and in case of AWT. - Newt - Display: Only pumpMessages if device is ready. - X11Display: Verify handle not null at DispatchMessage. - Common recursive ToolkitLock implementation, from src/nativewindow/classes/com/jogamp/nativewindow/impl/LockingNativeWindowFactory.java and src/newt/classes/com/jogamp/newt/Window.java, -> com.jogamp.nativewindow.impl.RecursiveToolkitLock - Unique XLockDisplay/XUnlockDisplay call via X11Util to simplify debugging. X11Util: Added debug code for XLockDisplay/XUnlockDisplay. Added fast LongObjectHashMap Added static lib loading and initialization. Removed active and passive list, as well as unused methods, to easy maintenance. Possible since the only 'uncloseable' Display might be the shareable one. - X11Lib: Added static initialization via X11Util Test: junit/com/jogamp/test/junit/jogl/demos/gl2/gears/TestGears* - Add WindowListener for quit ..
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-04-242-4/+3
|\
| * modifications due to method renaming in gluegen/procaddresstable.Michael Bien2010-04-242-4/+3
| |
| * Merge branch 'master' of github.com:mbien/joglMichael Bien2010-04-2451-218/+374
| |\
| * | changes due to refactorings in ProcAddressTable.Michael Bien2010-04-242-2/+2
| | |
* | | NEWT: Add missing return in recursive lock; Add MacOSX EVENT_KEY_TYPEDSven Gothel2010-04-242-0/+2
| |/ |/|
* | NEWT CleanupSven Gothel2010-04-2451-218/+374
|/ | | | | | | | | | | | | - Moved all implementation details (awt/x11/windows/macosx/..) to com.jogamp.newt.impl - Moved awt event handling com.jogamp.newt.awt.event -> com.jogamp.newt.event.awt - NEWTEvent extends java.util.EventObject - NEWTEventListener extends java.util.EventListener - Added Trace*Adapter, logging the event, incl. the time lag
* NEWT/AWT InteroperabilitySven Gothel2010-04-2443-432/+1432
| | | | | | | | | | | | | | | | | | | | | | | - Moved all event classes to com.jogamp.newt.event and the new AWT event helper to com.jogamp.newt.awt.event - Added Newt<Type>Adapter for convenience - Added AWT<Type>Adapter for - Using AWT agnostic NEWT event listener see com.jogamp.test.junit.jogl.demos.gl2.gears.TestGearsNEWT even for AWT see com.jogamp.test.junit.jogl.demos.gl2.gears.TestGearsAWT (Nice idea by mbien) - Forwarding AWT events to NEWT (refactoring) Misc - GLDrawableFactory.shutdown() is now protected and called by the JVM shutdown hook. Hence removing the validate().
* Moved event classed from com.jogamp.newt to com.jogamp.newt.eventSven Gothel2010-04-2411-35/+43
|
* Newt.AWTWindow: Set/Unset windowHandle (enables actual destroy call) / minor ↵Sven Gothel2010-04-232-15/+33
| | | | debug stuff
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-04-235-44/+37
|\
| * Merge branch 'master' of github.com:mbien/joglMichael Bien2010-04-231-1/+6
| |\
| * | reviewed calls to lockSurface() and ensured propper unlocking.Michael Bien2010-04-235-44/+37
| | |
* | | Reuse recursive locking codeSven Gothel2010-04-231-37/+38
| |/ |/|
* | Add missing finally unlock, if 2nd lock failsSven Gothel2010-04-231-1/+6
|/
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-04-226-207/+236
|\
| * Merge branch 'master' of github.com:mbien/joglMichael Bien2010-04-2211-177/+178
| |\
| * | reviewed X11Lib.XLock/UnlockDisplay() usage:Michael Bien2010-04-226-207/+236
| | | | | | | | | | | | | | | | | | - added lock(); try{foo();}finally{unlock();} where missing - made sure lock is called outside the try block - fixed nesting in situations with two independent locks
* | | Newt.X11:XEventsQueued: QueuedAlready doesn't work on ATI - use QueuedAfterFlushSven Gothel2010-04-221-5/+9
| |/ |/|
* | Review of using isGL2() and GL2.GL*Sven Gothel2010-04-2211-177/+178
|/
* Bring back GL2ES12 impl. for GL2ES1 and GL2ES2 desktop j2se and cdc. Fixing ↵Sven Gothel2010-04-225-31/+82
| | | | profiles accordingly.
* Migrating gl2/gl3/gl4 -> gldesktop. Use JOGL_GLDESKTOP_.. when using ↵Sven Gothel2010-04-221-3/+2
| | | | profile.jogl script
* Add remark (unsigned long -> uint_32) ..Sven Gothel2010-04-211-1/+1
|
* JOGL GL4 preperation (cont):Sven Gothel2010-04-2059-1254/+1415
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - All available OpenGL versions (native/platform) are verified at GLProfile initialization and can be queried .. A mapping of major,compat -> major,minor,options is created. - Removal of temp context creation, when creating a context. This was necessary to query general availability of ARB_create_context. Due to the shared context of X11GLXDrawableFactory and WindowsWGLDrawableFactory, this is no more necessary. Due to the version mapping, the ARB_create_context paramters are known. - NativeWindow X11Lib: Added X11ErrorHandler, throwing a RuntimeException. Necessary to catch BadMatch .. etc X11 errors, eg for glXCreateContextAttribsARB Hence all X11 calls are covered now. - X11DummyGLXDrawable needs to use an own Window, otherwise GLn n>2 fails - Flattening the desktop GL* implementation, all use GL4bcImpl, which reduces the footprint dramatically. - GL*Impl.isGL*() (desktop) utilizes the GLContext.isGL*(), hence the results reflect the actual native context version. - GLContextImpl makeCurrent/create: Added workflow documentation, clarified code, defined abstract methods to have a protocol. - Removed moved files (from here to gluegen), see gluegen a01cb3d59715a41153380f1977ec75263b762dc6 - NativeLibLoader -> <TYPE>JNILibLoader - Fixed Exception Handling (as in gluegen bce53b52c8638729750c4286dbc04cb14329fd34), ie removed empty catch Throwable .. - GLContext.setSwapInterval(): Nop in offscreen case, otherwise X11IOError (NVIDIA Bug) Test: Tests - Junit - demos.gears.Gears - demos.jrefract.JRefract Platforms - Linux 64/32 ATI/NVidia - MacOsX - Windows (virtualbox 3.1.6, offscreen failed) TODO/BUGS: - FIXME ATI GLn n>2 with AWT, can't make context current, works well on NVIDIA though - FIXME GL3GL4: Due to GL3 and GL4 implementation bugs, we still choose GL2 first, if available! - Add GL 3.3 to GL3/gl3ext.h - Add GL 4.0 to GL3/gl3ext.h and fix the GL3/GL4 seperation - Rename jogl.gl2.jar -> jogl.gldesktop.jar (as done with it's native lib already)
* code review (http://jogamp.org/bugzilla/show_bug.cgi?id=396): improved ↵Michael Bien2010-04-182-71/+86
| | | | | | exception handling in NWReflection and NativeLibLoaderBase. goal was to prevent catch(Throwable) and to fix or document empty catch blocks where it makes sense.
* DRIHack.driHackNeeded is now initialized once in the static initializer (not ↵Michael Bien2010-04-171-17/+27
| | | | in every begin() call).
* JOGL GL4 preperation (cont):Sven Gothel2010-04-176-182/+271
| | | | | | | | | - Cont. on Context creation refactoring (bb028021be2714e66d9b1062298a3e308c649c56) - Added Windows/WGL implementation - Added efficienct sharedContext usage if ARB is available, ie no more temp context has to be created. - Added more GLProfile GL4* code ..
* Fix broken Offscreen/Pbuffer query introduced in ↵Sven Gothel2010-04-169-24/+23
| | | | | | | | | | | | | | | bd4904fb04ab2168aeaf76e74385b3991429289a - Have to set the requested values in GLCapabilities if not relaxed and valid, otherwise the result is always onscreen, since the onscreen/pbuffer bits can be set for the same config. - Let GLContext implementations throw an Exception in case of no surface handle. JUnit Tests: - MiscUtils.setField -> MiscUtils.setFieldIfExists To allow _not_ throwing an exception :)
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-04-1611-144/+111
|\
| * code review: fixed empty catch blocks and a few compiler warnings in unit tests.Michael Bien2010-04-1511-144/+111
| |
* | JOGL GL4 preperation:Sven Gothel2010-04-1617-410/+716
|/ | | | | | | | | | | | | | - Re-Enable GL3bc native library build, works .. - Adding all the is/get GL4/GL4bc stubs .. - Adding dummy interface GL4 and GL4bc, will be removed when done - Context creation refactoring: - Move Version information to GLContext - Determine version by creation if possible (ARB_create_context), only use the unreliable GL_VERSION string if necessary. - Offering an almost platform independent ARB_create_context path: - createContextARBImpl - platform dependent GLX calls - createContextARB - platform independent setup and version loop
* JOGL (Windows):Sven Gothel2010-04-159-85/+78
| | | | | | | | | | | | | | | | | - WindowsWGLDrawableFactory is using [singleton] shared dummy resources for - Drawable and Context which are utilized in case they are needed .. They are removed at shutdown call - GLCapabilities - Set pbuffer as the HW capabilities show, hence onscreen && pbuffer is valid - DefaultGLCapabilitiesChooser: Respect PBuffer selection (fixed) Only skip a config, if request is !onscreen && pbuffer, but pbuffer n/a Tests: - JUnit Passed (Windows32: Chromium - Except PBuffer (n/a)
* Further ATI (fglrx) X11Display bug workaround/cleanupSven Gothel2010-04-1522-262/+1340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - See https://bugzilla.mozilla.org/show_bug.cgi?id=486277 - Calling XCloseDisplay occasionally leads to a SIGSEGV, even thought the reference is valid and OK. Workaround is not to close any X11Display, but to hold them stashed and reuse them. Since we already pipeline all X11Display's via Nativewindow's X11Util, an added referenceCounter and a global active/passive list solved this problem. This workaround is only active in case 'isVendorATI()'. NEWT/NativeWindow X11: - Let XIOErrorHandler and invalid display references fail hard with FatalError, otherwise we won't see the stack trace - and those bugs are indeed fatal. NativeWindow X11: - Install XIOErrorHandler, which stays active. - X11Util.X11Display: - Add reference counter - Add global active/passive list. Passive if reference count == 0 and marked as 'un-closeable' (-> ATI). Reusing passive members when create a new display. - JOGL: - Use DeleteLocalRef() calls to free temp NIO buffer in manual *Copied implementation. - GLDrawableFactoryImpl: Be serious about the shutdown() semantics - *GraphicsConfiguration: - Fix the invalid Onscreen/PBuffer/Pixmap determination (X11/EGL/WGL) - Just return null if not valid - X11GLXGraphicsConfigurationFactory - FBConfig - Determine recommendedIndex properly .. - Don't bail out if a FBConfig is invalid .. - Use Chooser in case nothing is recommended .. - X11OffscreenGLXDrawable fixes bugs: - wrong (int) cast of parent window in XCreatePixmap call - setting display to zero too early in destruction, ie before XCloseDisplay - X11GLXDrawableFactory is using [singleton] shared dummy resources for - Screen, Drawable and Context which are utilized in case they are needed .. They are removed at shutdown call - GLXVersion gathering in GLXUtil now .. - DefaultGLCapabilitiesChooser: Respect PBuffer selection Tests: - Add DrawableFactory shutdown() - Add various Offscreen Capabilties - Add Offscreen and non-pbuffer case - JUnit Passed (Linux64bit: NVidia/ATI) - demos.jrefract.JRefract passed (Linux64bit: NVidia/ATI)
* 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
| |