Geoffrey McRae
5d5b7b3d3c
[client] spice: just minor refactoring and commenting of code
2021-01-04 15:40:02 +11:00
Geoffrey McRae
3016f0c53e
[client] fix invalid method names
2021-01-04 14:44:33 +11:00
Tudor Brindus
4bceaf5505
[client] fix hang in eglSwapBuffers when exiting while not visible
...
eglSwapBuffers is allowed to block when called with a nonzero interval
parameter. On Wayland, Mesa will block until a frame callback arrives.
If an application is not visible, a compositor is free to not schedule
frame callbacks (in order to save CPU time rendering something that is
entirely invisible).
Currently, starting Looking Glass from a terminal, hiding it
entirely, and sending ^C will cause Looking Glass to hang joining the
render thread until the window is made visible again.
Calling eglDestroySurface is insufficient to unblock eglSwapBuffers, as
it attempts to grab the same underlying mutex.
Instead, this commit makes it so that we pass a 0 interval to
eglSwapBuffers when running on Wayland, such that we don't block waiting
for a frame callback. This is not entirely ideal as it *does* mean
Looking Glass submits buffers while hidden, but it seems better than
hanging on exit.
It also forces opengl:vsync and egl:vsync flags to off when running on
Wayland, as they are meaningless there.
2021-01-04 14:43:21 +11:00
Tudor Brindus
bc2f26b86d
[client] set default opengl:vsync=off
...
This makes it consistent with the EGL renderer.
2021-01-04 14:43:21 +11:00
Tudor Brindus
012ac950ac
[client] fix Wayland detection logic
...
$XDG_SESSION_TYPE is not guaranteed to be "wayland" when running on a
Wayland compositor. However, $WAYLAND_DISPLAY must always exist.
2021-01-04 14:43:21 +11:00
Geoffrey McRae
f7d4efe1c1
[client] spice: don't ignore all enter window events
2021-01-04 14:27:30 +11:00
Geoffrey McRae
1195a76368
[client] video: ensure that the renderer is always updated on resize
2021-01-04 13:40:03 +11:00
Geoffrey McRae
43e3999a95
[client] spice: also grab keyboard when in capture mode
2021-01-04 13:22:54 +11:00
Geoffrey McRae
bfc492421c
[client] spice: use XGrabPointer when in grab mode
...
People using high DPI mice and mouse accleration require this otherwise
the mouse can escape the window before we can warp it back.
2021-01-04 13:18:02 +11:00
Geoffrey McRae
2bc767430c
[client] spice: be more aggressive with window warp for high DPI mice
2021-01-04 12:59:14 +11:00
Geoffrey McRae
183d06f90c
[client] spice: fix borderless due to another SDL bug
...
SDL2 reports the window position as 0x0 when in borderless mode until
the window is moved or resized.
2021-01-04 12:28:35 +11:00
Geoffrey McRae
f7d7fbdb73
[client] rename state
to g_state
2021-01-04 12:06:54 +11:00
Geoffrey McRae
6878eee40a
[client] refactor cursor variables into their own global struct
2021-01-04 12:04:43 +11:00
Geoffrey McRae
c08aa8ece7
[client] spice: correct enter/leave event handling
2021-01-03 23:05:35 +11:00
Geoffrey McRae
5323d9833a
[client] spice: fix mouse warp on window focus
2021-01-03 22:59:23 +11:00
Geoffrey McRae
3b580af194
[client] spice: correct oob hotspot
2021-01-03 22:28:06 +11:00
Geoffrey McRae
29a6365107
[client] spice: correct rounding errors when reaching edges
2021-01-03 22:27:48 +11:00
Geoffrey McRae
9f495863cd
[client] spice: take into account the render rect for the new x/y pos
2021-01-03 17:42:58 +11:00
Geoffrey McRae
cd06fc251f
[client] spice: don't process cursor input when the local cursor is oob
2021-01-03 17:21:04 +11:00
Geoffrey McRae
029640f1b3
[client] spice: don't use SDLs capture mode under X11, we have our own
2021-01-03 16:31:10 +11:00
Geoffrey McRae
5064a4ecdd
[client] spice: take the cursor hotspot into account
2021-01-03 15:53:20 +11:00
Geoffrey McRae
bf1eba15d1
[client] egl: actually do front buffer rendering
2020-12-31 15:31:24 +11:00
Geoffrey McRae
1e4e582f67
[client] egl: only use a single texture but multiple PBOs
2020-12-31 14:18:38 +11:00
Geoffrey McRae
678ba0f484
[client] egl: check for EGLImage creation failure
2020-12-31 12:58:40 +11:00
Geoffrey McRae
2c2008c981
[client] egl: improve DMA logic
2020-12-31 12:58:22 +11:00
Geoffrey McRae
5802bfb5eb
[client] spice: calculate the entry point delta correctly
2020-12-06 11:07:05 +11:00
Geoffrey McRae
d61d7699e5
[client] spice: stop the cursor skipping the letterboxing
2020-12-06 09:58:50 +11:00
Geoffrey McRae
80d911f040
[client] spice: fix mouse exiting when the window is letterboxed/padded
2020-12-04 20:04:06 +11:00
Geoffrey McRae
1a8dfe1cc0
[client] spice: only check for a valid position if needed
2020-12-04 17:36:08 +11:00
Geoffrey McRae
c0a3b85580
[client] spice: don't disable warp when the future cursor pos is invalid
2020-12-04 17:32:28 +11:00
Geoffrey McRae
265b4544ef
[client] spice: adjust ordering to avoid dropping mouse input events
2020-12-04 01:40:29 +11:00
Geoffrey McRae
c5befbba0e
[client] spice: don't scale mouse if it's 1:1
2020-12-04 00:50:27 +11:00
Geoffrey McRae
3df23d6b73
[client] reworked the mouse tracking logic
2020-12-04 00:32:28 +11:00
Geoffrey McRae
e57f084c93
[client] added streaming clipboard support for large transfers
2020-12-03 12:01:51 +11:00
Geoffrey McRae
d700e19a32
[client] clipboard: correctly alert for large buffers
2020-12-03 02:35:40 +11:00
Geoffrey McRae
018dae691a
[client] remove left behind debug output
2020-12-03 02:03:47 +11:00
Geoffrey McRae
aaf449442a
[client] clipboard: refactor for readabillity
2020-12-03 01:58:05 +11:00
Geoffrey McRae
301ba45f0f
[client] don't grab keyboard if spice input is disabled
2020-12-01 10:03:20 +11:00
Geoffrey McRae
806ff934b2
[client] egl: detect if egl is even available
2020-11-29 21:43:28 +11:00
Geoffrey McRae
bbcaaccdcc
[client] added new option input:grabKeyboardOnFocus
2020-11-29 07:12:19 +11:00
Geoffrey McRae
dea7177d29
[client] added support for spice side/extra buttons
...
Note, QEMU must have support for these new buttons for this to have any
effect.
2020-11-28 14:59:21 +11:00
Geoffrey McRae
58dd352def
[client] set fullscreen after window creation to keep window dimensions
2020-11-28 10:19:17 +11:00
Geoffrey McRae
f36c674791
[client] always set the minimize on focus loss hint
2020-11-28 10:16:11 +11:00
Geoffrey McRae
4a823d0e4f
[client] grab the keyboard when the window has focus
2020-11-28 10:06:06 +11:00
jonpas
db51acdd8a
[client] add option to always show cursor
2020-11-16 06:48:57 +11:00
Geoffrey McRae
cd4dfd7252
[client] egl: cleanup/refactor of cursor texture code
2020-11-10 20:42:14 +11:00
Geoffrey McRae
12da2fc0b7
[client] fixed incorrect warpState
...
Credit to @Adam in Discord VFIO #looking-glass
2020-11-09 22:24:40 +11:00
Geoffrey McRae
36726bb349
[client] egl: fixed typo
2020-11-09 07:42:59 +11:00
Geoffrey McRae
dd7e0ea8c6
[client] egl: added colorblind support (egl:cbMode=0/1/2/3)
...
Based on http://www.daltonize.org/search/label/Daltonize
0 = Off
1 = Protanope
2 = Deuteranope
3 = Tritanope
2020-11-09 07:08:15 +11:00
Geoffrey McRae
ed95f8863d
[client] fix divide by zero fault with fpsMin disabled (set to 0)
2020-11-08 10:58:18 +11:00