Geoffrey McRae
2b66fa6136
[client] warn about unreliable cursor scaling
...
This also logs the scaling information to assist with reports about
improper mouse alignment
2017-12-21 06:39:41 +11:00
Geoffrey McRae
e3a426f378
[client] update dimension information after the first frame
2017-12-21 06:38:34 +11:00
Geoffrey McRae
e5f86a824a
[client] switch back to atomic locking as the default
...
The prior patch to correct the mouse loop resolves the CPU load issue
with the atomic locking method. SDL mutexes are still available if
desired but full mutex locking is far slower then fast spinlocks
2017-12-21 02:12:19 +11:00
Geoffrey McRae
c0b2c8e655
[client] added missing wait to cursor update thread
2017-12-21 01:56:59 +11:00
Geoffrey McRae
c5cbb948e2
[client] report locking mode used for diagnostics
2017-12-21 01:35:36 +11:00
Geoffrey McRae
58ed978767
[client] opengl: switch to SDL_mutex locking
2017-12-21 01:23:25 +11:00
Geoffrey McRae
c098967293
[client] opengl: update FPS even when there is no updates
2017-12-21 01:17:45 +11:00
Geoffrey McRae
8fbacba82e
[client] make startup sleep nicer on the CPU
2017-12-21 01:15:16 +11:00
Geoffrey McRae
0753e63644
[client] fixed unlock define
2017-12-21 01:11:42 +11:00
Geoffrey McRae
5501d22a2d
[client] fixed missed usage of new locking semantics
2017-12-21 01:03:21 +11:00
Geoffrey McRae
2f6b7e08f8
[client] define locking types and semantics to allow for alt methods
2017-12-21 00:58:16 +11:00
Geoffrey McRae
695822bd6d
[client] redesign of the renderer archiceture for mt support
...
This is the first of two commits that completely turn the rendering code
on it's head. This change set decouples the guest's capture rate from
the host's render rate for both cursor and frame updates. This helps
prevent the host application from stalling when waiting for frame draws
when all it want's to do is send cursor updates.
* Breaks OpenGL-Basic for now
2017-12-20 00:53:45 +11:00
Geoffrey McRae
a70adb2568
[client] correct help text for new -o argument
2017-12-19 15:40:52 +11:00
Geoffrey McRae
21a4e15868
[client] cosmetics
2017-12-19 15:37:49 +11:00
Geoffrey McRae
8b25f8a344
[client] opengl: show actual FPS seperate from updates per second (UPS)
2017-12-19 12:17:50 +11:00
Geoffrey McRae
7d307c0a9c
[client] improved option parsing
2017-12-19 11:58:38 +11:00
Geoffrey McRae
133d8ec21f
[client] opengl: added preventBuffer option
2017-12-19 11:02:35 +11:00
Geoffrey McRae
f4b95eeda9
[client] fix option output counts and dynamic name padding
2017-12-19 10:56:23 +11:00
Geoffrey McRae
c38e38d43d
[client] opengl: add splitmouse option
...
This feature was previously hardcoded enabled, it is now optional as
some hardware pipelines stall with the excessive flushes resulting in a
jumpy cursor. Default is disabled and may be re-enabled with
`-o opengl:splitmouse=1` or `-o opengl-basic:splitmouse=1` depending on
the renderer selected.
2017-12-19 10:21:45 +11:00
Geoffrey McRae
0ac1992019
[client] add new OpenGL-Basic renderer
...
This is based on bf8da7fd7e4397fe9931e82e52753806f1eee7e0 by @kiljacken
Per issue #11 on some cards this method performs much better then the
persistant buffering used in the standard OpenGL renderer.
Closes #11
2017-12-17 23:32:08 +11:00
Geoffrey McRae
5305ec5dd1
[client] opengl: made vsync option function again
2017-12-17 23:24:58 +11:00
Geoffrey McRae
313a4122bc
[client] add -g option to force a specific renderer
2017-12-17 23:15:18 +11:00
Geoffrey McRae
065b8c1eab
[client] fix typo in help text
2017-12-17 22:45:26 +11:00
Geoffrey McRae
424dc8bb13
[client] add renderer option list
2017-12-17 22:33:02 +11:00
Geoffrey McRae
06e38d897d
[client] implemented renderer specific option API
...
Please note the vsync and mipmap options are now specific to OpenGL
To configure them use the following options:
-o opengl:mipmap=1
-o opengl:vsync=0
2017-12-17 22:21:59 +11:00
Geoffrey McRae
f3e19b743c
[client] added ability to pass options to renderers
2017-12-17 20:32:44 +11:00
Geoffrey McRae
deee61efa9
[client] cosmetics
2017-12-17 20:16:43 +11:00
Geoffrey McRae
71c7f30265
[client] added -Q feature to prevent accidental applicaiton closure
...
Closes #21
2017-12-17 20:11:52 +11:00
Geoffrey McRae
3784e9c06f
[client] added support for new header format
2017-12-17 05:21:02 +11:00
Geoffrey McRae
287b983d27
[client] opengl: fixed broken mipmap logic
...
mipmapping is turned off for images that are scaled up a it degrades the
output quality.
2017-12-16 11:25:01 +11:00
Geoffrey McRae
2bb8b0227c
[client] don't send renderer mouse events until it's configured
2017-12-15 19:14:02 +11:00
Geoffrey McRae
ae4156d041
[client] don't update mouse scaling values until started
2017-12-15 19:14:02 +11:00
Patrick Steinhardt
fe337cf510
[client] ivshmem: fix missing <sys/select.h> include
...
While the function `ivshmem_wait_irq` makes use of the select(3)
function, it does not include <sys/select.h>. This happens to work on
glibc based systems, which include thet file transitively via other
header files. But on musl libc based systems, this breaks compilation.
Directly include <sys/select.h> to fix the problem.
2017-12-15 18:25:21 +11:00
Geoffrey McRae
7bfed41523
[client] opengl: update mouse draw time when doing decoupled draws
2017-12-15 17:03:51 +11:00
Geoffrey McRae
9bb66b7bd6
[client] opengl: decouple mouse updates from vsync
2017-12-15 16:58:21 +11:00
Geoffrey McRae
f7420317f1
[client] opengl: mouse shape updates bypass the draw timeout
2017-12-15 16:53:26 +11:00
Geoffrey McRae
c1379a45d2
[client] opengl: increase maximum mouse draw frequency
2017-12-15 16:34:29 +11:00
Geoffrey McRae
9c03327701
[client] opengl: added back double buffering and vsync support
...
This adds back in double buffering and vsync support. This has been
carefully implemented so that the render function blocks until the video
card reports that it has advanced a frame, this ensures that the OpenGL
pipeline never buffers frames.
2017-12-15 16:21:38 +11:00
Geoffrey McRae
0d8b2449cf
[client] added back missing vsync disable option
2017-12-15 16:19:47 +11:00
Arti Zirk
d1bd5b3115
Do not minimize fullscreen window on focus loss
2017-12-15 15:59:28 +11:00
Jack Karamanian
e03621a622
[client] Add borderless fullscreen usage
2017-12-15 15:59:09 +11:00
Jack Karamanian
606da0ae47
Add borderless fullscreen option
2017-12-15 12:59:34 +11:00
Geoffrey McRae
b6c8136565
[client] initialize the local header copy for proper startup
2017-12-15 12:02:37 +11:00
Geoffrey McRae
8ae9f8464b
[client] updated client to support new KVMFR cursor dataPos field
2017-12-15 10:51:40 +11:00
Geoffrey McRae
3c61814c56
[client] windows cursors are in BGRA format
2017-12-15 10:20:20 +11:00
Geoffrey McRae
cd54cb179b
[client] make gcc happy about the ignored read result
...
Fixes #5
2017-12-15 00:57:49 +11:00
Geoffrey McRae
67bdf2ba97
[client] fix SDL_ttf.h include path.
2017-12-14 22:05:32 +11:00
Geoffrey McRae
ead48195db
[client] opengl: use the stride rather then rect width for padded widths
2017-12-14 20:35:36 +11:00
Geoffrey McRae
2ae9b479f6
[client] update window dimensions when the spice client is disabled
2017-12-14 20:09:48 +11:00
Geoffrey McRae
3fa9f371b4
[client] added license to opengl.c
2017-12-14 20:06:48 +11:00