aboutsummaryrefslogtreecommitdiffstats
path: root/make/stub_includes
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2009-10-10 04:24:26 -0700
committerSven Gothel <[email protected]>2009-10-10 04:24:26 -0700
commit2268a6ce8a900ae7aa9f20d5f595f811185574a9 (patch)
treeb4426ed20e1957bd5cba095d5a036df2bbc1736a /make/stub_includes
parent20c6d89bfc4f72144b8bcc48839da7ef9bc40681 (diff)
NEWT: Add EventDispatchThread (EDT) pattern.
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.
Diffstat (limited to 'make/stub_includes')
-rw-r--r--make/stub_includes/x11/window-lib.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/make/stub_includes/x11/window-lib.c b/make/stub_includes/x11/window-lib.c
index bd03bdcbb..3096cde4c 100644
--- a/make/stub_includes/x11/window-lib.c
+++ b/make/stub_includes/x11/window-lib.c
@@ -13,6 +13,10 @@ extern Display *XOpenDisplay(
extern int XCloseDisplay(Display *display);
+extern void XLockDisplay(Display *display);
+
+extern void XUnlockDisplay(Display *display);
+
extern XVisualInfo *XGetVisualInfo(
Display* /* display */,
long /* vinfo_mask */,