1
0
Fork 0
Commit graph

74 commits

Author SHA1 Message Date
7356bdebdd Platform/Unix/X11EventQueue: Fix bug where messeges where not flushed to the event queue.
XEventsQueued(disp, QueuedAlready) only returns the number of events currently in the queue and
does not flush new events. So this must happen elsewhere and if it does not we
will never see any events. i noticed this bug when removing the call to glXSwapBuffers().

Fix this by using XPending() instead as this flushes new events
if the queue is empty before returning the length.

see https://tronche.com/gui/x/xlib/event-handling/XEventsQueued.html
and https://tronche.com/gui/x/xlib/event-handling/XPending.html
2020-12-19 18:55:11 +01:00
4193b3b719 Platform/Unix/X11EventQueue: send KeyPress and KeyRelease events to X11Keyboard::handleMessage() 2020-12-19 18:55:11 +01:00
9954c45fe9 Platform/Unix/X11Keyboard: Implement handleMessage() 2020-12-19 18:55:11 +01:00
30dc11f0d5 Platform/Unix/X11Display.h: Some documentation. 2020-12-19 18:55:11 +01:00
23cf17f9af Platform/Unix/X11EventQueue.cpp: Only process one event per call to poll(). Confirming to Platform API. 2020-12-19 18:55:11 +01:00
7648c23e43 Platform/Unix/X11EventQueue: get and release display handle in constructor/destructor instead of every call to poll()
Should be fine as the display should never change during runtime.
2020-12-19 18:55:11 +01:00
c5648a5105 Platform/Unix/X11EventQueue: redirect unkown events to X11WindowEventHandler. 2020-12-19 18:55:11 +01:00
2b14977eed source/Platform/Unix/X11Display.cpp: register with X11WindowEventHandler 2020-12-19 18:55:11 +01:00
7402896ce6 Adding Platform/Unix/X11WindowEventHandler 2020-12-19 18:55:11 +01:00
7a694e8fd0 Platform/Unix/X11Display: Adding processEvent() to handle resize. 2020-12-19 18:55:11 +01:00
f07be50bd3 source/Platform/Unix/X11Display.cpp: Replace ResizeRedirectMask with StructureNotifyMask
ResizeRedirectMask is broken (will not update the window size). We use StrucutreNotifyMask instead and capture the window size from CaptureNotify event instead.
2020-12-19 18:55:10 +01:00
96b61f0ee3 source/Platform/Unix/X11Display.cpp: in create() call setSize() 2020-12-19 18:55:10 +01:00
9b5bd9dcd0 source/Platform/Unix/X11EventQueue.cpp: post quit event on "WM_DELETE_WINDOW". 2020-12-19 18:55:10 +01:00
035dd333da source/Platform/Unix/X11EventQueue.cpp: log "WM_DESTROY_WINDOW" message. 2020-12-19 18:55:10 +01:00
46bf27f4a4 source/Platform/Unix/X11Display.cpp: call XSetWMProtocols with "WM_DELETE_WINDOW" flag. 2020-12-19 18:55:10 +01:00
d94c7fcf9a Platform/Unix/X11SharedDisplay: adding getAtom() 2020-12-19 18:55:10 +01:00
f8188c4358 source/Platform/Unix/UnixEventQueue.cpp: implement a poll method (only log events for now) 2020-12-19 18:55:10 +01:00
5e27f820de source/Platform/Unix/X11Display.cpp: in create() set the attr.event_mask to include some interesting events. 2020-12-19 18:55:10 +01:00
7dedabba57 source/Platform/Unix/GLXContext: Initial implementation 2020-12-19 18:55:10 +01:00
b65cb9c2d2 source/Platform/Unix/X11Display.cpp: Initial implementation 2020-12-19 18:55:10 +01:00
bd38e9e98f Adding source/Platform/Unix/X11SharedDisplay.cpp 2020-12-19 18:55:10 +01:00
c41fb6c013 Adding glad GLX 2020-12-19 18:55:10 +01:00
6464838159 source/Platform/Unix: stub implementation 2020-12-19 18:55:10 +01:00
3f38286049 source/Platform/Win32/Win32EventQueue.cpp: change OutputDebugString() to Log::debug() 2020-12-05 15:31:48 +01:00
5d433a7b80 source/Platform/Win32/Win32Display.cpp: don't call destroy() on WM_DESTROY as the window is already destroyed if we get this event. 2020-12-05 15:31:48 +01:00
2da0f7e712 Platform/Win32/Win32Display.cpp: change OutputDebugString() to Log::debug() 2020-12-05 15:31:47 +01:00
f0d769c923 Platform/Win32/Win32Display: minor fix. 2020-12-05 15:31:47 +01:00
04db63aa49 Platform/Win32/Win32Display: implement setVisible() 2020-12-05 15:31:47 +01:00
48b501e355 source/Platform/PlatformDisplay.h: add setVisible() to the interface 2020-12-05 15:31:47 +01:00
17759992c8 Platform/Win32/Win32Display: implement maximize() and minimize() 2020-12-05 15:31:47 +01:00
d7d8a23dc2 Platform/Win32/Win32Display: implement getPosition() 2020-12-05 15:31:47 +01:00
70f73c1d52 source/Platform/PlatformDisplay.h: add getPosition() to the intreface 2020-12-05 15:31:47 +01:00
33270d9f7b source/Platform/PlatformDisplay.h: add minimize() and maximize() to the interface 2020-12-05 15:31:47 +01:00
e64d9cdce0 Platform/Win32/Win32Display: implement grabCursor() 2020-12-05 15:31:47 +01:00
0a1c18548d source/Platform/PlatformDisplay.h: add grabCursor() to the interface. 2020-12-05 15:31:47 +01:00
363afe111b source/Platform/Win32/Win32EventQueue.cpp: should not return status from DispatchMessage()
this can falsely signal that we have translated a win32 event to engine event when in fact we have not.
2020-12-05 15:30:45 +01:00
2be3c66a2d Platform/Win32/Win32Display: implement the new setIcon() with pixel array. 2020-11-03 11:29:14 +01:00
60653509fa source/Platform/PlatformDisplay.h: change setIcon() parameters to take a pixel array instead of filename 2020-11-03 11:29:14 +01:00
2c76d3bc87 source/Platform/Win32/Win32GLContext.cpp: no need to have our own wgl extension loader (fixed in latest glad2) 2020-09-21 18:00:08 +02:00
d8af100691 GLAD WGL: Update to new version. 2020-09-21 17:59:14 +02:00
a96e78bca5 source/Platform/Win32/Win32GLContext.cpp: in createGLContext() check return value from ensureExtensionsLoaded() 2020-09-20 16:46:51 +02:00
e3c01d4897 source/Platform/Win32/Win32GLContext.cpp: make ensureExtensionsLoaded() return bool. 2020-09-20 16:45:58 +02:00
6805e392a7 source/Platform/Win32/Win32GLContext.cpp: in createGLContext() delete temporary context as the last step. 2020-09-20 16:42:44 +02:00
92a561648e
Platform/Win32/Win32Input.cpp: remove Win32InputMsgBuffer 2020-02-15 15:41:53 +01:00
eef2690ada
source/Platform/Win32/Win32Mouse.cpp: in isButtonDown() use SM_SWAPBUTTON to determine if buttons are swapped or not. 2020-02-02 18:58:06 +01:00
24fa1e140e
source/Platform/Win32/Win32Keyboard.cpp: define LAlt and RAlt keys. 2020-02-02 00:42:00 +01:00
3364b921de
include/Spectre/Input/Keyboard.h: remove NumpadEnter (this is usually the same as regular enter). 2020-02-02 00:38:38 +01:00
7c6cf45d3c
include/Spectre/Input/Keyboard.h: Fix CamelCase for some enum values. 2020-02-02 00:34:13 +01:00
fa0fc72eb0
Platform/Win32/Win32Mouse: add getAbsPosition() and update the position variables in update() 2020-02-01 22:31:44 +01:00
290c6643f5
Platform/Win32/Win32Mouse: implement isButtonDown() using GetAsyncKeyState() and remove m_state and m_tracked. 2020-02-01 22:28:37 +01:00