summaryrefslogtreecommitdiffstats
path: root/src/newt/native/X11Window.c
Commit message (Collapse)AuthorAgeFilesLines
* NEWT: Add EventDispatchThread (EDT) pattern.Sven Gothel2009-10-101-31/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* NEWT: Fix X11 ConfigureEvent ; X11Window don't propagate pos change if parentedSven Gothel2009-09-291-23/+32
|
* Newt: native window parenting MacOSX: OK (but parent clipping is missing) ; ↵Sven Gothel2009-09-121-27/+37
| | | | X11: windowResize event handled
* NEWT: Native window parenting (X11: OK); AWTWindow external Frame OKSven Gothel2009-09-121-13/+8
|
* NEWT: Basic/Naive window parenting support ; NEWT GLWindow: remove ambigous ↵Sven Gothel2009-09-121-4/+6
| | | | create functions, ie with Window and Capabilities arguments
* - Fix: X11 locking Sven Gothel2009-06-181-39/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current thread default display or the given display is being used, hence it is no more required to use a ToolkitLock for X11 without AWT. Removed X11 ToolkitLock in case of X11 without AWT, which is being detected with the absence of the classes java.awt.Component _AND_ javax.media.nativewindow.awt.AWTGraphicsDevice or with the system property java.awt.headless=true Only in the Java2D/Swing case, one 'leaking' Display is created within canCreateGLPbuffer(). - Workaround for Hotsport bugs #4395095, #6852404 4395095 JNI access to java.nio DirectBuffer constructor/accessor 6852404 Race condition in JNI Direct Buffer access and creation routines - Added build.xml -Dbuild.noarchives=true property to skip the time consuming creation of zip archives. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1988 232f8b59-042b-4e1e-8c03-345bb8c30851
* Corrected non-C syntax. Worked around ancient compiler/OS onKenneth Russel2009-06-171-26/+49
| | | | | | | Solaris/SPARC nightly build machines. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1978 232f8b59-042b-4e1e-8c03-345bb8c30851
* - Add: GLProfile.get(name) return default if name=="GL" as well (or if null)Sven Gothel2009-06-171-189/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add: NEWT pumpMessages/dispatchMessages - Handled by the Display implementation for all windows - Windows .. OK - MacOSX .. OK - X11 .. OK - Added Atom Property handling to attach java window object to window - Removed the eventMask for dispatching messages, since dispatching is for all windows now. (Wasn't impl. for all platforms anyways) - All init static code will funnel in the Display.initSingletion(), to ensure a proper init order for all platforms. - Display creation is unique for (name,thread). Handling a TLS mapping of display-names to Displays. - GLWindow: autoSwapBufferMode and eventHandlerMode are static members - Tested with experimental tagged GLWindow.setRunPumpMessages()/runCurrentThreadPumpMessage(), 1 thread - 4 windows, etc .. java demos.es2.RedSquare -1thread -onepump -GL2 -GL2 -GL2 -GL2 No benefit .. However .. the implementation is more correct now, due to the display/current-thread message pumping. - Fix: Window.sendMouseEvent() bounds check - Fix: MacWindow has proper nsView locking now, local to the window instance. locked in lockSurface besides general window manipulation. - Fix: JAWT utilized JAWTUtil.init() to init libraries - NativeLibLoaderBase.loadNativeWindow("awt") call was missing. (Visible on MacOSX + AWT) - Fix: GLXUtil proper locking - Fix: X11Util proper locking git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1976 232f8b59-042b-4e1e-8c03-345bb8c30851
* Copied JOGL_2_SANDBOX r1957 on to trunk; JOGL_2_SANDBOX branch is now closedKenneth Russel2009-06-151-0/+642
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@1959 232f8b59-042b-4e1e-8c03-345bb8c30851