aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* NEWT: Simplified LockingSven Gothel2010-06-0214-152/+210
| | | | | | | | | - Using Display.getEDTUtil() and Display.runCreateAndDestroyOnEDT() to determine the NEWT EDT behavior, which may be specialized by the implementation. - AWTWrapper and Newt/AWT Parenting deadlock fix. - Misc fixes in test cases
* JOGL: Unified GLContext native handleSven Gothel2010-06-0215-361/+324
| | | | | - All GLContext implementations are using the contextHandle of the super class. - GLContext.getHandle() exposes contextHandle for API cross access
* Merge branch 'master' of github.com:mbien/joglSven Gothel2010-06-011-5/+5
|\
| * fixed HTML header.Michael Bien2010-05-251-5/+5
| |
* | Allow build on OSX 10.5 (thanks to sed)Sven Gothel2010-05-311-1/+1
| |
* | test duration ..Sven Gothel2010-05-282-2/+2
| |
* | NEWT: Fix AWT Parenting ; Multithreading Issues ; Semantics: destroy(), .. ; ↵Sven Gothel2010-05-2844-1048/+2688
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Misc. Due to incapabilities of the previous AWT/NEWT reparenting the implementation and spec had to be changed to support this feature. See the first 2 comments below. - Tested on GNU/Linux (OK), Windows (a few bugs left) - TODO: - Clarify the size/layout issue, ie who is responsible etc In the test, incl AWT/NEWT, we set the size on the GLWindow and ie pack the AWT Frame. - Fix remaining [Windows] bugs .. - Fix/Implement MacOSX port .. Fix AWT/NEWT reparenting: =========================== - Now NewtFactory's createWindow() method for parenting handles NativeWindow only and is no more responsible for creating a child window upon an AWT Component. See class com.jogamp.newt.awt.NewtCanvasAWT for NEWT/AWT parenting. - New com.jogamp.newt.awt.NewtCanvasAWT, responsible for handling AWT's reparent events via addNotify/removeNotify. Reparenting is implemented via the new NEWT Window's reparentWindow() method. Also sets the background erase to false, if supported. - Fix zero size semantics in Window (setSize/setVisible) Since a zero size window is not supported by many compoenent (Windowing system, OpenGL, ..) we use the visibility methodology to not show a 0x0 window. See Javadoc. AWT components may start with zero size. - New NEWT Window: reparentWindow(NativeWindow newParent, Screen newScreen) Allowing to change the parent of a window. Similar with the fullscreen toggle, but without size/position change. Native reparenting allows to keep alive the native window while changing the container, hence it is preferred to a destroy/create cycle. To benefit from the native reparenting, a NEWT implementation has to implement 'protected boolean reparentWindowImpl(long newWindowHandle)' and return true, otherwise reparenting will be 'emulated' via the expensive destroy/create cycle. - NEWT's Window references all of it's children, if any - NEWT's Window propagates setVisible/destroy actions to it's children. - Fix NEWT's destroy() semantics. A call of destroy() or destroy(false) shall only result in the destruction of the native window (handle) nothing more. A subsequent setVisible(true) shall allow the complete recreation of the Window into a usable state. A call of destroy(true) destroys all resources the Window holds, may include Screen/Display and OpenGL resources in case of GLWindow. This is necessary to allow proper reparenting, where a native window may become destroyed, but should be recreated via setVisible(true) later on. - Fix NEWT set[Size|Position|Fullscreen|Visible] synchronization. Use a recursive lock instead of the Window instance, otherwise arbitrary Window access via AWT's EDT, NEWT's EDT or other threads can block. Also removed a use pattern like: key.lock() try { EDT.invoke(action()); } finally { key.unlock(); } Where action() itself uses the same lock object (here key), the result is a deadlock. NativeWindow Changes: ====================== - We can use XInitThreads() now (concurrent threading support) in combination with AWT. Might have been some async in our NEWT locking in regards to AWT (sync()), and the X11 Display changes made in c787f50d77e2491eb0d8201d534a6fa4885a929e. - NativeWindow's window handle is _not_ transient like surface handle, fixed documentation. JOGL Changes: ============= - New 'isRealized()' method in GLDrawable. - Misc Fixes ============ - Fix NEWT set[Size|Position|Fullscreen|Visible] duplicate code Due to pure abstract signatures, the set[Size|Position|Fullscreen|Visible] implementations of X11, OSX, .. contained duplicate code and state handling (size, pos, ..). These are now decoupled, ie generic set[Size|Position|Fullscreen|Visible] implementations calling simple set[Size|Position|Fullscreen|Visible]Impl implementations. - Fix NEWT: Renamed setAutoDrawableClient(boolean) to setHandleDestroyNotify(boolean) The semantic of setAutoDrawableClient(boolean) defaults to false was too complicated and specific, hence changed to setHandleDestroyNotify(boolean) defaults to true since its more clear and the name refers the window itself.. - Fix NEWT: Removed GLWindow's unused global window list - Fix NEWT: Remove Window's unused event mask - Rename com.jogamp.newt.impl.awt.AWTNewtFactory -> com.jogamp.newt.awt.NewtFactoryAWT
* | Fix NativeWindow/NEWT Unique Display Naming, X11 use real NULL Display nameSven Gothel2010-05-279-62/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | Use proper (X11) Display names to avoid multiple Display instances. The problem was in case of 'wrapping' another X11 Display, a previous Display instance used 'nil' to reflect the null default Display but the wrapped instance (using a Display handle) the proper Display name. Now all (X11) Display's are using the proper Display name instead of a dummy 'nil' name. - Fix: NEWT null Display name is validated upfront, instead of changing it later - Fix: Nativewindow's X11Util gathers the systems NULL Display name and offers a validation method - Fix: NEWT X11 Display validates the NULL Display name properly
* | Fix NativeWindow JAWT Code Generation and Bounds AccessSven Gothel2010-05-2711-162/+177
|/ | | | | | | | - Restructure: JAWT gluegen, use common jawt-common.cfg - Fix: Use proper capacity for GetDrawingSurface and GetDrawingSurfaceInfo - Fix: JAWTWindow maintains AWT bounds - Fix: JAWTWindow locking/unlocking decoupled with abstract implementation, which allows clear code and simpler unlock code.
* Changed NEWT NativeWindow creation contract - AWT/NEWT Parenting - Misc FixesSven Gothel2010-05-2156-728/+981
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +++++ Changed NEWT NativeWindow creation contract Original contract: (1) A native window was created as soon as possible, ie when NEWTFactory.createWindow(..) was called - if possible. (2) A valid native window has to be created at least after setVisible(true) has been called. Problems: Not all implementation are able to create the native window that early, but at setVisible(true) only (e.g: KD and EGL). Due to window parenting especially the new AWT/NEWT parenting, the native window can only be created in case the parent native window is valid. New contract: (1) A native window is created at setVisible(true), if it's a top level window or the native parent window is valid. (2) A valid native window may not be created after setVisible(true) has been called. Subsequent setVisible(true) calls shall be made in case the creation has not been done yet. This is demonstrated in GLWindow.display() for example. The new contract implements a lazy native window creation. +++++ AWT/NEWT Parenting - HierarchyListener and ComponentListener ensure that the NEWT child window will be setVisible according to the AWT parent window. - Lazy native window creation relaxes requirements to the parent window's state. - Attachment of the child window and setVisible() may be called after NEWT child window creation. - GLWindow supports NEWT child window creation directly The test case TestParenting01AWT.java reflect this new contract and demonstrates more simplified and more flexible use cases. +++++ NEWT Fixes: - All NEWT implementation's native code method names end with 0. - GLWindow: don't issue the actual 'init'/'display' call to GLEventListeners in case the window is not visible. - NEWT setSize/setPosition: if native-window call native-window action and let the attributes being set by the feedback call, which issues more action, ie RESIZE. else set the attributes directly, no feedback call/action is necessary. +++++ X11 Fixes: - X11GLContext MakeContextCurrent: Use MakeCurrent in case write and read drawable are equal, otherwise SEGV happens on ATI with heavy multithreading involved! Even XLockDisplay and XSync didn't help here .. - X11GLXDrawableFactory shared resource: Removed the resource holder thread to simplify code, hence proper release is no more desired and it could become a cause for deadlock. - Moved XInitThreads() from NEWT X11Window -> NativeWindow X11Util, since NativeWindow is loaded first (essential for XInitThreads()) and it is the more basic lib. - Made call to XInitThreads() conditional, ie it's spared if AWT could be used - which causes SEGV .. (AWT bug). See X11Util.java +++++ JOGL Fixes: - GLProfile.isAWTAvailable() -> NativeWindowFactory.isAWTAvailable() - GLProfile.isAWTJOGLAvailable() -> GLProfile.isAWTAvailable()
* XHTML cleanup for jogl deployment doc.Michael Bien2010-05-192-252/+238
|
* escaping ampersandin XMLMichael Bien2010-05-191-1/+1
|
* Merge branch 'master' of github.com:sgothel/joglMichael Bien2010-05-1917-40/+101
|\ | | | | | | | | Conflicts: doc/HowToBuild.html
| * Fix JNLPs .. vendor and urlSven Gothel2010-05-1913-23/+23
| |
| * Add javadoc_nativewindow_spec.zip and fix it's build locationSven Gothel2010-05-171-1/+4
| |
| * Incr timeout to 1minSven Gothel2010-05-171-1/+1
| |
| * Cover all Offscreen tests with Assume ..Sven Gothel2010-05-171-6/+42
| |
| * Added Cg referenceSven Gothel2010-05-171-1/+5
| |
| * HowToBuild: git doc refinementSven Gothel2010-05-171-3/+11
| |
| * Add Windows 64bit build docSven Gothel2010-05-171-4/+11
| |
* | XHTML cleanup for JOGL build howto.Michael Bien2010-05-191-191/+213
|/
* scripts sin64: remove native debug build flagSven Gothel2010-05-161-1/+1
|
* GlueGen/JOGL Windows x86 x86_64 MingW BuildsSven Gothel2010-05-166-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | | Property change to allow multilib with same property file: - windows.cg.lib -> windows.cg.lib32 windows.cg.lib64 - x11.cg.lib -> x11.cg.lib32 x11.cg.lib64 Fix windows build/test scripts .. ++++ - mingw linker option: --enable-auto-import - mingw now links against DLLs not libs, due to a runtime error while linking against JAWT ++++ x86: Using mingw 20100514, gcc 4.5.0 - clean - passed all junit.run tests x86_64: Using mingw-w64-bin_x86_64-mingw_20100515_sezero.zip, gcc 4.4.5 20100513 - clean - passed all junit.run tests
* GlueGen/JOGL Windows x86 x86_64 BuildsSven Gothel2010-05-167-18/+57
| | | | | | | | | | x86: Using mingw 20100514, gcc 4.5.0 - clean - passed all junit.run tests x86_64: Using mingw-w64-bin_x86_64-mingw_20100515_sezero.zip, gcc 4.4.5 20100513 - clean - passed most junit.run tests, still buggy
* Fix JOGL Deployment docSven Gothel2010-05-144-160/+287
|
* Fix docSven Gothel2010-05-143-30/+88
|
* Fix docuSven Gothel2010-05-141-5/+6
|
* Fix build HOWTOSven Gothel2010-05-142-66/+130
|
* Junit Core Test: Add GLContext version dumpSven Gothel2010-05-122-12/+103
|
* Use gluegen's junit.jar and antlr.jar if not specified otherwise in ↵Sven Gothel2010-05-126-7/+6
| | | | /home/sven/gluegen.properties
* Missing comment for last commit 6798fc1fb008eff4179f64775a7bf33cfbfd1981:Sven Gothel2010-05-1110-105/+228
| | | | | | | | | | | | | | | | | | | | | | | - zip Javadocs, moved to build* dir - re-enable WGL ARB GetContext (buggy) - relaxed junit tests: src/junit/com/jogamp/test/junit/jogl/awt/TestAWT01GLn.java - GL3bc/GL4bc + AWT doesn't work with ATI currently, driver bug src/junit/com/jogamp/test/junit/jogl/offscreen/TestOffscreen01NEWT.java - All test cases, ie pbuffer detection may fail, no pixmap detection - Fix Windows ARG CreateContext - GLContext - GLVersion mapping functions: use profile bit - Fix isGL*() queries { compat|core, ..} - Pass through the profile bit (COMPAT, CORE, ES), only one can be set - GLProfile - glAvailabilityToString() add the queried HW Context info -
* ../jogl.logSven Gothel2010-05-106-26/+107
|
* www: add proper redirection to folder wwwSven Gothel2010-05-081-0/+7
|
* Fixed comments (links)Sven Gothel2010-05-062-5/+8
|
* NEWT Windows: Add reparenting for fullscreen on child windowSven Gothel2010-05-061-1/+16
|
* A little cleanup ..Sven Gothel2010-05-068-107/+100
|
* Fix junit test: Move quit WindowListener outside of classSven Gothel2010-05-053-12/+53
|
* Newt: Add generic NativeWindow parenting, inclusive using an AWT Component ↵Sven Gothel2010-05-056-50/+629
| | | | as a parent
* Newt Window: sendEvent -> public; GLWindow must pass down sendEvent and ↵Sven Gothel2010-05-052-1/+9
| | | | requestFocus calls
* Fix commentsSven Gothel2010-05-053-45/+64
|
* Newt Windows: More checks; Use SetWindowPos(.. SHOWWINDOW ..) to make it activeSven Gothel2010-05-051-2/+12
|
* Newt X11: Add focus in/out events; Request focus with mouse clickSven Gothel2010-05-052-20/+46
|
* Newt Display Fix: Use a FQN (type:name) to map displays, otherwise ↵Sven Gothel2010-05-051-23/+38
| | | | applications with mixed types, eg AWT and X11 could reuse the wrong display
* JAWT Windows Fix: Use the JAWT window handle entry [to return it]Sven Gothel2010-05-052-3/+18
|
* Add JOGL_ALLALL profile for scripting, to use the <module>.all.jar bundlesSven Gothel2010-05-054-7/+58
|
* Renable full test caseSven Gothel2010-05-041-3/+3
|
* NEWT Fixes (Windows/child-win):Sven Gothel2010-05-0410-62/+105
| | | | | | | | | | | | | - Clarify NEWT setSize/setPosition in regards to fullscreen state - Windows: Allow child win to receive keyboard events - requestFocus: calls SetForegroundWindow and SetFocus - requestFocus when mouse clicked - add WS_TABSTOP - Windows: Allow child win to set position - TODO: child-win fullscreen as in X11 ..
* Remove critical path in shutdown ..Sven Gothel2010-05-042-4/+10
|
* NEWT Fixes:Sven Gothel2010-05-0412-109/+396
| | | | | | | | | | | | | | | | | | | | | | | | | | | - Common native in NewtCommon.c/.h - Add simple NEWTEventFiFo, providing a pattern to spool events by an EventListener and to process them where it impacts (GLEventListener ..) - Window [X11|Windows]: setSize/setPosition: - always store the values, - only act if valid and !fullscreen - Window [X11]: - Add requestFocus - Add setTitle - Fix parent/child window creation - Fix parent/child window fullscreen (reparenting) - JUnit Test: ParentTest: - Shows parent and client window animation - Client window shall be able to go into fullscreen, ie disconnect/reconnect from its parent. Test: Focus-client + type-'f' - Both windows receive/dispatch events properly
* Fix script locationSven Gothel2010-05-042-2/+6
|