1
0
Fork 0
Commit graph

224 commits

Author SHA1 Message Date
f5d80aa46f Platform/Unix/X11Display: Implement setIcon() 2020-12-19 18:55:12 +01:00
3d9dda64ca Platform/Unix/X11Display: Implement showCursor() 2020-12-19 18:55:12 +01:00
d73c787f40 Platform/Unix/X11SharedDisplay: pass a pointer to the display to XReleaseDisplay() just to be sure client code has a valid pointer 2020-12-19 18:55:11 +01:00
dfe29acc1e Platform/Unix/UnixMisc.cpp: implement display mode lookups using xrandr extension. 2020-12-19 18:55:11 +01:00
03186ebea0 Platform/Unix/X11EventQueue.cpp: pass ButtonPress/ButtonRelease/MotionNotify events to X11Mouse 2020-12-19 18:55:11 +01:00
816cf3a072 Platform/Unix/X11Mouse: adding a basic implementation to get things going. 2020-12-19 18:55:11 +01:00
cfe064f02c Platform/Unix/X11Keyboard: implement isKeyDown() 2020-12-19 18:55:11 +01:00
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
db695f11f6 Spectre/Game/GameTime: Store max accumulated time in a member variable and calculate it once in setTimeStep() 2020-12-18 18:27:07 +01:00
2a608805b5 Spectre/Game/GameTime: add shouldTick() 2020-12-18 18:27:07 +01:00
ed876ca64d Spectre/Game/GameTime: remove useless m_inLoop variable. 2020-12-18 18:27:07 +01:00
d49d91a294 Spectre/Game/GameTime: Use sp::Time and sp::Stopwatch 2020-12-18 18:27:07 +01:00
3855cdd541 Game/FPSCounter: Use sp::Stopwatch 2020-12-18 18:27:07 +01:00
f62373dcbc Adding Spectre/System/Stopwatch 2020-12-18 18:27:07 +01:00
919aa7740a Spectre/Game/FPSCounter: Use sp::Time 2020-12-16 16:33:32 +01:00
6de6028ba4 Adding Spectre/Math/Time 2020-12-16 16:33:32 +01:00
74a2ff028c source/Display/Display.cpp: Use the new display api that does not require recreating the display. 2020-12-09 02:46:55 +01:00
ea91d50a84 source/Graphics/OpenGL.cpp: minor fix. no need to set window decoration (default is fine) 2020-12-09 02:46:55 +01:00
304e345a79 Platform/Win32/Win32Display: Implementing true fullscreen with enterFullscreen() and exitFullscreen() 2020-12-09 02:46:55 +01:00
ca5e2a399c Platform/PlatformDisplay: adding enterFullscreen() and exitFullscreen() 2020-12-09 02:46:54 +01:00
ebe3a648c5 Platform/Win32/Win32Display: Implement setDecoration() 2020-12-09 02:46:54 +01:00
02567eb225 source/Platform/PlatformDisplay.h: Adding setDecoration() 2020-12-09 02:46:54 +01:00
b43f2fcca8 Display/DisplayMode: adding empty() 2020-12-05 18:23:16 +01:00
c2b0d73888 source/Display/DisplayMode.cpp: initialize bpp to zero. 2020-12-05 18:23:16 +01:00
3f38286049 source/Platform/Win32/Win32EventQueue.cpp: change OutputDebugString() to Log::debug() 2020-12-05 15:31:48 +01:00
fc1fc7001a Spectre/Display/Display: Adding setVisible() 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