Commit Graph

3997 Commits

Author SHA1 Message Date
tetebueno
a8545eca4b GUACAMOLE-1996: Arranging key in alphabetical order. 2024-10-24 17:35:00 -03:00
tetebueno
af3eab4baa Adding Dvorak ES keyboard layout. 2024-10-23 17:45:02 -03:00
Virtually Nick
02c4578603 Merge patch branch changes to main. 2024-10-23 13:35:52 -04:00
Virtually Nick
57eae40d18
GUACAMOLE-1517: Merge fix nested socket initialization. 2024-10-23 12:26:21 -04:00
James Muehlner
22a30da3bc GUACAMOLE-1517: Fix nested socket initialization.
(cherry picked from commit 228acef133f1118d4ec2e81029066352a04b9ddb)
2024-10-23 16:10:48 +00:00
Michael Jumper
783f4c5e34 Merge changes from patch branch back to main. 2024-10-02 00:02:49 -07:00
Michael Jumper
2432783485 Merge 1.6.0 changes back to patch. 2024-10-02 00:02:47 -07:00
Mike Jumper
be51ad165e
GUACAMOLE-377: Merge correction to handling of display redraw following terminal buffer switch. 2024-10-01 09:52:05 -07:00
corentin-soriano
ab3cda9930
GUACAMOLE-377: Fix issue where display content is not updated when switching back to normal buffer. 2024-10-01 10:58:51 +02:00
Michael Jumper
1c1bcc87c8 Merge changes from patch branch back to main. 2024-09-30 10:10:57 -07:00
Michael Jumper
e74fa53da3 Merge 1.6.0 changes back to patch. 2024-09-30 10:10:41 -07:00
Virtually Nick
c056b74094
GUACAMOLE-377: Merge add missing include for errno. 2024-09-30 09:14:54 -04:00
Virtually Nick
bdbb719259
GUACAMOLE-1256: Merge fix latency when dumping big text file. 2024-09-30 09:14:21 -04:00
corentin-soriano
a3b9458b33
GUACAMOLE-1256: Fix latency when dumping big text file. 2024-09-30 11:21:34 +02:00
Michael Jumper
e9fcf00cb7 GUACAMOLE-377: Add missing include for errno. 2024-09-30 00:56:53 -07:00
James Muehlner
844179e838 Merge patch branch changes to main. 2024-09-29 21:40:13 +00:00
James Muehlner
520d530746 Merge 1.6.0 changes back to patch. 2024-09-29 21:39:39 +00:00
James Muehlner
3b021e867c
GUACAMOLE-377: Merge terminal assertion column fix. 2024-09-29 14:38:03 -07:00
Michael Jumper
8146e171f7 GUACAMOLE-377: Correct regression in terminal assertion (too strict by one column). 2024-09-29 13:58:07 -07:00
James Muehlner
04e90157c0 Merge patch branch changes to main. 2024-09-29 19:14:13 +00:00
James Muehlner
ec38a6a6b0 Merge 1.6.0 changes back to patch. 2024-09-29 19:12:58 +00:00
James Muehlner
b754d3f0de
GUACAMOLE-377: Merge new libguac "guac_display" rendering system. 2024-09-29 12:11:17 -07:00
Michael Jumper
f5ecb6c8f9 GUACAMOLE-377: Stream/object sentinel must be assigned BEFORE returning index to pool.
Doing otherwise results in a race condition where the index of a valid
stream is changed to -1 by a different thread, breaking assertions and
causing the connection to disconnect.
2024-09-28 10:16:59 -07:00
Michael Jumper
4220670dac GUACAMOLE-377: Fix regression causing RDP connections to always reconnect after closing. 2024-09-27 23:32:38 -07:00
Michael Jumper
ed388631b5 GUACAMOLE-377: Restore original NULL returns for alloc failures of streams/objects. 2024-09-27 23:32:38 -07:00
Michael Jumper
db42844ec9 GUACAMOLE-377: Remove superfluous bounds check (now part of guac_pool). 2024-09-27 23:32:38 -07:00
Michael Jumper
5a12d96ac5 GUACAMOLE-377: Migrate VNC to default render loop. 2024-09-27 23:32:38 -07:00
Michael Jumper
98fd5e69a9 GUACAMOLE-377: Migrate RDP to default render thread. 2024-09-27 23:32:38 -07:00
Michael Jumper
0da3354e82 GUACAMOLE-377: Add convenient, default render thread implementation for guac_display. 2024-09-27 23:32:38 -07:00
Michael Jumper
f2f74c2d03 GUACAMOLE-377: Ignore alpha for rectangle operations on opaque layers. 2024-09-27 23:32:38 -07:00
Michael Jumper
8f5c3e9cc9 GUACAMOLE-377: Synchronize layer contents only if non-empty. 2024-09-27 23:32:38 -07:00
Michael Jumper
260f959b19 GUACAMOLE-377: Reduce number of worker threads to one per processor.
Testing doesn't seem to support an increase in throughput or
responsiveness from doubling up on worker threads.
2024-09-27 23:32:38 -07:00
Michael Jumper
5ec7be130c GUACAMOLE-377: Do not allow "img" instructions to break "rect" and "cfill" pairs.
Other instructions that occur between "rect" and "cfill" may disrupt the
path set by "rect", resulting in "cfill" having no effect, resulting in
graphical artifacts.

This also has the side effect of reducing thread contention by flushing
the simple operations early (it is now less likely that multiple worker
threads will be free for further tasks at nearly exactly the same time).
2024-09-27 23:32:38 -07:00
Michael Jumper
f348506656 GUACAMOLE-377: Do NOT combine display operations vertically unless edges match exactly.
Doing otherwise can result in display operations overlapping. This is
because combining two vertically adjacent operations that have different
widths causes additional cells to be included that are not covered by
either original operation. If other operations are within those
additional cells, then the operations flushed for the frame will
overlap, consuming unnecessary additional processing and bandwidth.
2024-09-27 23:32:38 -07:00
Michael Jumper
540d20474b GUACAMOLE-377: Read lock should NOT be acquired at same time as write lock.
Acquiring the read lock first and then reentrantly acquiring the write
lock may result in other existing readers getting promoted to writers.
2024-09-27 23:32:38 -07:00
Michael Jumper
c6833a460c GUACAMOLE-377: Make vertical combination more likely by limiting combinations to aligned boundaries. 2024-09-27 23:32:38 -07:00
Michael Jumper
4145f5871c GUACAMOLE-377: Revert migration of terminal emulator to guac_display. 2024-09-27 23:32:38 -07:00
Michael Jumper
ae52278b33 GUACAMOLE-377: Restore good ol' guac_common_surface and guac_common_cursor for use by terminal. 2024-09-27 23:32:38 -07:00
Michael Jumper
8c341bcf0a GUACAMOLE-377: Remove unnecessary locking of last frame during resize.
No longer necessary now that the last and pending frame buffers are not
interleaved.
2024-09-27 23:32:38 -07:00
Michael Jumper
6a7eb6db3e GUACAMOLE-377: Wrap all VNC message handling within drawing context.
It is otherwise difficult to guarantee that all operations touching the
pending frame buffer will occur while holding an open raw context,
resulting in unstable behavior.
2024-09-27 23:32:38 -07:00
Michael Jumper
b667f697e4 GUACAMOLE-377: Migrate VNC to direct access of RFB framebuffer. 2024-09-27 23:32:38 -07:00
Michael Jumper
d31a96c62b GUACAMOLE-377: Migrate RDP to direct access of FreeRDP's GDI buffer. 2024-09-27 23:32:38 -07:00
Michael Jumper
fa37f00628 GUACAMOLE-377: Allow external guac_display buffers to be replaced with NULL if necessary for external cleanup tasks. 2024-09-27 23:32:38 -07:00
Michael Jumper
cbfeae6cf5 GUACAMOLE-377: Allow the pending frame buffer for a guac_display_layer to be external. 2024-09-27 23:32:38 -07:00
Michael Jumper
dc833c74a1 GUACAMOLE-377: Restore heuristic detection of VNC frame boundaries. 2024-09-27 23:32:38 -07:00
Michael Jumper
7e593c00be GUACAMOLE-377: Restore heuristic detection of RDP frame boundaries. 2024-09-27 23:32:38 -07:00
Michael Jumper
3aae603590 GUACAMOLE-377: Migrate from timer to thread for pending users. 2024-09-27 23:32:38 -07:00
Michael Jumper
8003836e7a GUACAMOLE-377: Ensure frame boundaries are sent even for frames containing no graphics. 2024-09-27 23:32:38 -07:00
Michael Jumper
de30928a4d GUACAMOLE-377: Remove all old surface, display, cursor, and rect code from src/common/. 2024-09-27 23:32:38 -07:00
Michael Jumper
c48409c352 GUACAMOLE-377: Prefer GUAC_COMP_OVER to GUAC_COMP_SRC for performance-critical operations (~3x faster). 2024-09-27 23:32:38 -07:00