Commit Graph

588 Commits

Author SHA1 Message Date
orcephrye
8ad2d5f949 [client] autodetect monitor refresh rate for fps limit 2019-07-10 05:04:29 +10:00
Rokas Kupstys
745ba66119 Implement option to disable minimizing window on focus loss. Default behavior is not changed - not configuring these options unfocused window is minimized.
* Added config entry win:minimizeOnFocusLoss (default true).
2019-07-09 21:57:47 +10:00
Geoffrey McRae
4cf6dec592 [all] allow disable of backtrace support during build 2019-06-19 09:13:03 +10:00
Geoffrey McRae
d7fa0aeff9 [client] fix typo in SDL_VIDEODRIVER from prior patch, whoops :) 2019-06-19 09:03:15 +10:00
Geoffrey McRae
2def6346e6 [client] don't override SDL_VIDEODRIVER if it is already set 2019-06-19 09:01:28 +10:00
Geoffrey McRae
607539a2af [client] improve streaming texture performance 2019-06-13 08:54:51 +10:00
Geoffrey McRae
2b4f8091f9 [client] README.md cosmetics 2019-05-31 16:45:55 +10:00
Geoffrey McRae
113da121e9 [client] updated documentation for new keybinds 2019-05-31 16:44:08 +10:00
Geoffrey McRae
dd7413f973 [client] added keybinds to send Ctrl+Alt+Fn
Fixes #165
2019-05-31 16:39:55 +10:00
Geoffrey McRae
97024041f3 [client] allow the screensaver to run 2019-05-30 20:54:39 +10:00
Geoffrey McRae
22238c3200 [client] fix invalid access on early termination 2019-05-30 20:24:51 +10:00
Geoffrey McRae
3d426ccef8 [all] fix missing cursor when client reconnects 2019-05-28 14:06:15 +10:00
Geoffrey McRae
b31e8e1cee [client] egl: remove accidental commit of debug code 2019-05-27 18:46:05 +10:00
Geoffrey McRae
f0923c4ed7 [client] egl: expose a few new tuneables 2019-05-27 18:42:46 +10:00
Geoffrey McRae
aabf19e63b [client] main: properly shutdown if renderer fails to init 2019-05-27 18:40:36 +10:00
Geoffrey McRae
f4fc1eb5f6 [client] typo in config help text 2019-05-27 18:40:36 +10:00
Geoffrey McRae
4cf2c7a350 [client] check for failure to map pbo memory 2019-05-27 01:39:01 +10:00
Geoffrey McRae
664d7dccdb [client] fix the binary path when debugging 2019-05-27 01:38:50 +10:00
Jonathan (JJRcop) Rubenstein
d07aa4b29e [client] Add win:maximize to maximize on startup 2019-05-26 20:47:59 +10:00
JJRcop
9f33043d17 [client] Fix typo in example of README.md 2019-05-25 10:25:57 +10:00
Geoffrey McRae
83c5df2c47 [client] main: add + sign to mouse sensitivit alerts 2019-05-24 05:35:16 +10:00
Geoffrey McRae
759b4ef811 [client] fix typo 2019-05-24 05:31:16 +10:00
Geoffrey McRae
437ebf6265 [client] main: new feature to increase/decrease mouse sensitivity 2019-05-24 05:29:38 +10:00
Geoffrey McRae
bffd02b8c7 [client] main: better UX with the escape key combinations 2019-05-23 20:31:01 +10:00
Geoffrey McRae
196b27ee9c [doc] client: document defaults instead of my preconfigured values 2019-05-23 20:26:37 +10:00
Geoffrey McRae
ff08540fd3 [doc] fixed another formatting snafu 2019-05-23 20:20:18 +10:00
Geoffrey McRae
07be380f34 [doc] fix formatting a bit 2019-05-23 20:19:37 +10:00
Geoffrey McRae
76d58deefa [doc] Updated project documentation in leu of Beta 1 release 2019-05-23 20:13:41 +10:00
Geoffrey McRae
dba9764c5e [egl] alert: fix fuzzy font bug and make alerts a little more plesant 2019-05-23 19:58:12 +10:00
Geoffrey McRae
1492196bbf [client] shutdown application on window close even if ignoreQuit is set
Fixes #138
2019-05-23 18:27:21 +10:00
Geoffrey McRae
d2d427b533 [client] egl: query maximum multisample support for MSAA context
Based on @rLink234's work in 4ac781b4516678b6c59d9ecf4a61df64a01ec8c1

Fixes #128
2019-05-23 16:56:50 +10:00
Geoffrey McRae
3585e02993 [client] egl: add options for maximum NV level and initial level
Adds options:

 * egl:nvGain
 * egl:nvGainMax

Fixes #153
2019-05-23 16:33:40 +10:00
Geoffrey McRae
86f4256b5a [client] egl: fix streaming texture re-init crash 2019-05-22 12:19:03 +10:00
Geoffrey McRae
84b2917706 [client] app: new options to reduce CPU usage
This patch increases the default cursor and frame polling interval from
1us to 1000us which for most use cases should be more then fast enough.

It also adds two new configuration options to adjust these should it be
required:

  * app:cursorPollInterval
  * app:framePollInterval
2019-05-22 12:00:06 +10:00
Geoffrey McRae
fc66a4a19c [client] egl: use persistant mapped texture buffers
While it is recommended to use memory barriers when updating a buffer
like we are, since we double buffer it is unlikely we will corrupt a
prior frame, and even if we do since it's just texture data at worst
we might see a tear.
2019-05-22 11:37:27 +10:00
Geoffrey McRae
087387087e [client] fix race condition on initial uniform access 2019-05-22 11:36:47 +10:00
Geoffrey McRae
67595d6deb [client] added missing semi-colon (not sure how that happened) 2019-05-21 15:51:45 +10:00
Geoffrey McRae
77f942711a [client] fixed typo in option description 2019-05-21 15:51:14 +10:00
Geoffrey McRae
e3c98ddc35 [client] port all configuration parsing to use the new option helper 2019-05-21 15:03:59 +10:00
Geoffrey McRae
ba50fbdc3e [client] egl: implement pixel perfect upscaling 2019-04-19 11:23:51 +10:00
Geoffrey McRae
6f77ba8aea [client] perform proper shutdown on SIGTERM 2019-04-14 09:15:03 +10:00
Geoffrey McRae
32bd6d96e3 [common] implemented crash handler for linux (including backtrace) 2019-04-11 16:41:52 +10:00
Geoffrey McRae
d8915dbfc9 [build] make "common" a static library (part 2/2) 2019-04-11 11:12:59 +10:00
Łukasz Kostka
ccd0fd8902 Add install binary target 2019-04-05 03:18:11 +11:00
Geoffrey McRae
1fbba5cf2d [client] egl: make nightvision enhance luminosity before gain 2019-03-31 00:08:52 +11:00
Geoffrey McRae
d6805cfa0f [client] main: move config free into new config_free method 2019-03-30 16:00:47 +11:00
Geoffrey McRae
4dee965fdf [client] main: move config and option parsing into a seperate unit 2019-03-30 15:52:00 +11:00
Geoffrey McRae
35094a57cb [client] more cleanup and added alerts for new events 2019-03-30 12:26:06 +11:00
Geoffrey McRae
5d254c7751 [client] main: don't ignore keybinds when spice is disabled 2019-03-29 02:33:09 +11:00
Geoffrey McRae
7fd4ba3aad [client] main: added <escape>+I for spice input enable toggle 2019-03-29 02:17:06 +11:00
Geoffrey McRae
ecfcf11c05 [client] main: fix errornous double keybind registration 2019-03-29 02:08:16 +11:00
Geoffrey McRae
30ea57c644 [client] main: add full screen toggle key bind <escape>+F
Fixes #139
2019-03-29 02:06:37 +11:00
Geoffrey McRae
c4001c727a [client] egl: added new super+N binding to increase image gain
This feture is to allow the use of the key combination <super>+N to
increase the brightness of the screen when using monitors with poor
backlighting. Can help in some games.

N = Night vision
2019-03-29 00:15:14 +11:00
Geoffrey McRae
fd4cfc2ff3 [client] main: add interface for modules to register key binds 2019-03-29 00:15:04 +11:00
Geoffrey McRae
03cb61f746 [client] main: prevent the cursor thread starting too early
fixes #136
2019-03-28 21:23:24 +11:00
Geoffrey McRae
8eed25b469 [client] cmake: list enabled features in configure output 2019-03-28 20:27:38 +11:00
Geoffrey McRae
ee09594190 [client] cmake: cosmetics 2019-03-28 20:15:13 +11:00
Geoffrey McRae
66c3c0115f [client] added options to disable/enable interfaces 2019-03-28 20:12:18 +11:00
Geoffrey McRae
3e021f3a6b [client] use cmake to generate renderers/fonts/clipboards headers/code
This is in preperation of cmake options to enable/disable various
functionallity.
2019-03-28 19:56:14 +11:00
Geoffrey McRae
b524c077a4 [client] egl: remove the rest of the shaders into seperate files 2019-03-28 15:53:15 +11:00
Geoffrey McRae
10f7efecb2 [client] cmake: fix inconsistent versioning 2019-03-28 15:03:35 +11:00
Geoffrey McRae
f09ee0bdb3 [client] egl: fix minor error in CMakeLists 2019-03-28 15:01:52 +11:00
Geoffrey McRae
d5a52241b0 [client] egl: move shaders into seperate files and build into objects 2019-03-28 14:59:54 +11:00
Geoffrey McRae
52c4e15c76 [client] project restructure part 2/2 2019-03-28 12:42:41 +11:00
Geoffrey McRae
fdba14691c [client] egl: requires gl 2019-03-28 12:31:28 +11:00
Geoffrey McRae
3d136a28a0 [all] added pre-commit script and VERSION
This script belongs in .git/hooks/ to bump the version each commit.
2019-03-28 12:24:38 +11:00
Geoffrey McRae
db398d41a0 [client] project restructure part 1/2 2019-03-28 11:02:36 +11:00
Geoffrey McRae
7cbaf8b5be [egl] don't assume SDL is compiled with Wayland support 2019-03-26 17:30:16 +11:00
NamoDev
d1c0d2b5f8 [CLIENT] cosmetic code changes 2019-03-18 08:32:38 +11:00
NamoDev
909606627f [CLIENT] Fixed invalid value initialization 2019-03-18 08:32:38 +11:00
NamoDev
80f5d3a660 [CLIENT] Added option for custom window title 2019-03-18 08:32:38 +11:00
Geoffrey McRae
a57d68acd5 [client] main: fixed help text typo 2019-02-26 03:12:57 +11:00
Geoffrey McRae
a33734e2d3 [client] main: help output cosmetics 2019-02-26 03:09:59 +11:00
Geoffrey McRae
e5921b3949 [client] main: better error text for changed spice options 2019-02-26 03:08:26 +11:00
Geoffrey McRae
5de25f2b43 [client] main: add options to control spice features 2019-02-26 03:06:53 +11:00
Geoffrey McRae
41f4166aed [client] x11: remove noise about unsupported formats 2019-02-25 05:44:31 +11:00
Geoffrey McRae
4f8fa6e7aa [client] fixes #135, double free crash 2019-02-25 05:43:18 +11:00
Geoffrey McRae
dbd09a431a Revert "[client] x11: prevent race condition causing double free"
This reverts commit 8d48dd973a.
2019-02-25 04:59:51 +11:00
Geoffrey McRae
8d48dd973a [client] x11: prevent race condition causing double free 2019-02-25 04:42:58 +11:00
Geoffrey McRae
c7666b314b [client] x11: fix bidirectional clipboard functionallity 2019-02-24 15:35:31 +11:00
Geoffrey McRae
03628505ed [client] spice: correct sending of large va agent buffers 2019-02-24 15:35:17 +11:00
Geoffrey McRae
b368873f4d [client] x11: ignore clipboard select events from ourself 2019-02-24 12:16:32 +11:00
Geoffrey McRae
dd38f3ce13 [client] x11: don't notify to clear if no property 2019-02-24 12:10:57 +11:00
Geoffrey McRae
d8b01c0257 [client] initial host to client clipboard sync working 2019-02-24 11:43:32 +11:00
Geoffrey McRae
0a2fbe1f7f [client] spice: implement full clipboard guest copy support 2019-02-23 04:24:30 +11:00
Geoffrey McRae
de0b54ae70 [client] cosmetics 2019-02-22 22:40:57 +11:00
Geoffrey McRae
54e8cce33c [client] core: added initial clipboard interface and x11 stubs 2019-02-22 22:38:52 +11:00
Geoffrey McRae
08bf01b649 [all] update copyright dates 2019-02-22 22:16:14 +11:00
Geoffrey McRae
1a66c11091 [client] spice: better align the spice api for x11 cliboard integration 2019-02-22 19:51:14 +11:00
Geoffrey McRae
689a1de69b [client] spice: added clipboard callbacks to decouple spice from SDL 2019-02-22 18:59:45 +11:00
Geoffrey McRae
0dfa7425c1 [client] spice: fixed copying large amounts of text to the clipboard 2019-02-22 12:33:55 +11:00
Geoffrey McRae
4098db039e [client] spice: fix read to allow for larger amounts of data 2019-02-22 09:15:29 +11:00
Geoffrey McRae
a7834611d1 [client] spice: fix memory leak 2019-02-22 09:08:53 +11:00
Geoffrey McRae
9dd4e4756b [client] spice: implemented guest -> client clipboard sync 2019-02-22 09:02:34 +11:00
Geoffrey McRae
108369414e [client] spice: implement channel caps and initial clipboard support 2019-02-22 07:40:43 +11:00
Geoffrey McRae
00e07c0384 [client] spice: remove extra debug output 2019-02-22 07:39:55 +11:00
Geoffrey McRae
1ebee561bc [client] spice: fix incorrect message size for agent messages 2019-02-22 07:38:05 +11:00
Geoffrey McRae
ec0db86663 [client] spice: fix unitialized value 2019-02-22 04:13:27 +11:00
Geoffrey McRae
3df4bb3a54 [client] spice: protocol updates for performance and agent support
Note: agent support is not complete at this point due to lack of documentation.
2019-02-22 03:04:06 +11:00
Geoffrey McRae
5bd748680f client: cosmetics 2019-02-22 03:04:06 +11:00
Marius Barbu
e09ff31c09 [client] update viewport size after window is created
Make sure glViewport gets called as soon as we know the window
dimensions, otherwise nothing gets rendered until KVMFR communication is
established (mostly the splash).

Without the fix, './looking-glass-client -s' behaves differently than
'./looking-glass-client -s -F' in that the latter triggers a
SDL_WINDOWEVENT_SIZE_CHANGED and updates the viewport immediately after
window creation while the former doesn't and all rendering is delayed
until the frameThread successfully decodes the first frame.

As all the possible ways of updating the viewport (window creation,
window size change, frame size change) are covered with
updatePositionInfo(), the 'started' state becomes redundant and is
removed.

Note: this might be the wrong way to fix it (possible driver bug?),
glViewport's specification mentions that the default viewport size
matches the window size when the GL context is first attached.

Tested on:

Debian Buster with GNOME 3.30.2 on X.Org 1.20.3
Looking Glass (a12-21-g07e4c1c20f)
Locking Method: Atomic
Using: EGL
Vendor  : Intel Open Source Technology Center
Renderer: Mesa DRI Intel(R) Haswell Desktop
Version : OpenGL ES 3.1 Mesa 18.3.2

Signed-off-by: Marius Barbu <msb@avengis.com>
2019-02-21 07:56:25 +11:00
Geoffrey McRae
07e4c1c20f [client] spice: correct issue with new channel list support 2019-02-21 05:31:51 +11:00
Geoffrey McRae
daf854c692 [client] spice: initial agent support 2019-02-21 05:06:13 +11:00
Geoffrey McRae
65c1e0391c [client] spice: minor fixes, don't assume inputs channel exists 2019-02-21 03:43:11 +11:00
Geoffrey McRae
769edba1a5 [client] spice: remove useless mouse queue, this is not needed
When this was first developed the official spice client was used as an example refrence, however upon inspecting the source of spice-server it has been determined that there is no server side queueing going on, and acks are simply sent after every 4 to reduce bandwidth.
2019-02-19 14:50:30 +11:00
Frediano Ziglio
2567447b24 [client] spice: use correct enumeration for SpiceLinkReply
SPICEC_ERROR_CODE_xxx constants are supposed to be used by old
client (obsoleted years ago).
SpiceLinkReply error field uses SPICE_LINK_ERR_xxx enumeration
constants.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
2019-02-10 09:06:07 +11:00
Geoffrey McRae
473e4716fc [client] spice: debug print unsigned int re #127 2019-01-25 14:17:06 +11:00
Dominik Csapak
59cac9c0cc change spice port type to unsigned short
so that ports >32767 get displayed correctly,
also signed overflow is undefined behaviour

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2019-01-25 14:15:22 +11:00
Geoffrey McRae
92d87d983b [client] spice: fix incorrect cursor button state being sent 2019-01-17 02:45:46 +11:00
Geoffrey McRae
bfc4a1bc16 [client] update client to handle new cursor move code 2019-01-12 00:00:21 +11:00
Geoffrey McRae
e4ae9134ae [client] egl: fix graphical glitch with splash 2019-01-02 10:36:17 +11:00
Geoffrey McRae
640bc03c6b [client] [Patch 2/2] fixes #106 2019-01-02 10:30:55 +11:00
Geoffrey McRae
667aed635d [client] egl: added untested support for wayland 2019-01-02 00:04:40 +11:00
Alexander Olofsson
1d3a23e051 Store the initial window size in the state
Fixes #107
2018-12-17 16:07:21 +11:00
Geoffrey McRae
507732587e [client] egl: fixed uninitialized variable bug 2018-12-16 12:17:12 +11:00
Geoffrey McRae
d1e3508d55 [client] fix early render issue 2018-12-16 11:02:51 +11:00
Geoffrey McRae
3a8998f1f9 [client] make EGL the default renderer 2018-12-16 11:02:40 +11:00
Geoffrey McRae
de5795e368 [client] egl: implemented alerts and some minor fixes to fps 2018-12-16 10:57:01 +11:00
Geoffrey McRae
fca71e2b95 [client] egl: slight correction to splash 2018-12-16 00:56:35 +11:00
Geoffrey McRae
0e2b371e59 [client] egl: added splash screen rendering 2018-12-16 00:54:37 +11:00
Geoffrey McRae
e1fa6b4057 [client] egl: fix cursor regression 2018-12-13 02:11:37 +11:00
Geoffrey McRae
b6c8d3fae5 [client] egl: fix mono cursor double height regression 2018-12-13 01:39:52 +11:00
Geoffrey McRae
eb1c61f335 [client] warn about poor FPS display performance 2018-12-13 01:34:23 +11:00
Geoffrey McRae
5842ce23a3 [client] pre-calculate the frame time 2018-12-13 01:34:14 +11:00
Geoffrey McRae
692d48df87 [client] don't calculate FPS if we are not showing it 2018-12-13 01:28:00 +11:00
Geoffrey McRae
49bd091359 [client] use clock_nanosleep for more accurate frame timing 2018-12-13 01:22:57 +11:00
Geoffrey McRae
5fe2db7e56 [client] rename fps variables to be more correct 2018-12-12 23:59:22 +11:00
Geoffrey McRae
b927f991d6 Revert "[client] improve fps target accuracy"
This reverts commit 4d7e1054bd.
This causes FPS runaway after a time
2018-12-12 23:40:29 +11:00
Geoffrey McRae
4d7e1054bd [client] improve fps target accuracy 2018-12-12 23:33:35 +11:00
Geoffrey McRae
42fa0e1d1f [client] egl: corrected fps alpha blending 2018-12-12 22:38:08 +11:00
Geoffrey McRae
abfe3a9b4d [client] egl: moved desktop rendering into seperate unit 2018-12-12 21:41:51 +11:00
Geoffrey McRae
b9f8f1a0ad [client] egl: add and use default quad helper for models 2018-12-12 20:08:52 +11:00
Geoffrey McRae
608b67af77 [client] egl: moved fps code into seperate unit 2018-12-12 20:04:43 +11:00
Geoffrey McRae
2a65e39848 [client] egl: added missing files from last commit 2018-12-12 18:57:31 +11:00
Geoffrey McRae
c23bf6a0c4 [client] egl: migrate cursor code into seperate unit 2018-12-12 18:53:55 +11:00
Geoffrey McRae
50c460df5a [client] define GL_GLEXT_PROTOTYPES globally 2018-12-12 16:53:30 +11:00
Geoffrey McRae
61f0577ab2 [client] egl: costmetics 2018-12-12 16:41:29 +11:00
Geoffrey McRae
a9aab3c1ee [client] egl: moved egl sources into subdirectory 2018-12-12 16:39:04 +11:00
Geoffrey McRae
73da86ac0e [client] egl: add checking to egl_shader_get_uniform_location 2018-12-12 16:32:16 +11:00
Geoffrey McRae
43d08df6b3 [client] egl: rename "shader" to "this" for consistancy 2018-12-12 16:31:25 +11:00
Geoffrey McRae
4654f317ca [client] opengl: fixed incorrect colors and added 10-bit RGBA support 2018-12-12 10:55:18 +11:00
Geoffrey McRae
d2b83027b4 [client] egl: removed accidental commit of test code 2018-12-11 16:35:53 +11:00
Geoffrey McRae
7be930a69c [client] removed use of now removed frame type, fixed #105 2018-12-11 16:34:41 +11:00
Geoffrey McRae
75ffcacfe4 [client] added support for RGBA, BGRA and 10-bit RGBA 2018-12-04 21:24:01 +11:00
Geoffrey McRae
1beeac545d [client] added missing lg-fonts.c to the repo 2018-11-20 22:34:01 +11:00
Geoffrey McRae
ab98c87e7c [client] egl: added FPS rendering 2018-11-20 09:50:09 +11:00
Geoffrey McRae
5b453d604e [client] remove other render modes from font ABI 2018-11-20 05:50:22 +11:00
Geoffrey McRae
90fc2a8164 [client] move FPS calculations out of renderers 2018-11-20 05:26:51 +11:00
Geoffrey McRae
0ed9301ed9 [client] font: implemented font ABI and updated OpenGL to use it 2018-11-20 04:38:53 +11:00
Geoffrey McRae
2692ccc7b3 [client] use mouse visibility info properly 2018-10-09 18:33:18 +11:00