This is an automated email from the ASF dual-hosted git repository.
jmuehlner pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/guacamole-server.git
from bdb2aec4 Merge patch branch changes to main.
add 104006c6 GUACAMOLE-377: Establish public guac_display API for
efficient rendering via Guacamole protocol.
add 028fb58d GUACAMOLE-377: Tighten dirty rects down to the individual
pixel, rather than whole 64-pixel lines.
add 58140721 GUACAMOLE-377: Update layer list head upon layer removal only
if non-empty.
add b965c4dd GUACAMOLE-377: Do NOT acquire the ops lock before any frame
lock.
add 619eb2e5 GUACAMOLE-377: Correct logic and lock order around deferred
frame flushing (caused deadlock).
add f898ead9 GUACAMOLE-377: Clarify logic around opaque layers.
add 442b33ed GUACAMOLE-377: Ensure regions outside last frame bounds are
considered dirty.
add e396ed57 GUACAMOLE-377: Migrate guac_mem_*() assertions to
GUAC_ASSERT().
add 8afbeaec GUACAMOLE-377: Do not render frames while users are joining.
add 692400c0 GUACAMOLE-377: Flush an automatic frame for mouse changes
only if there are no other graphical changes pending.
add 335d5e24 GUACAMOLE-377: Updates to cursor must occur within the
boundary of their relevant frame (before "sync").
add 15e400e0 GUACAMOLE-377: Ensure all layers supporting transparency are
properly cleared before receiving data that also supports transparency
(including WebP).
add 4f3fccd7 GUACAMOLE-377: Add ability to "hint" that a drawing operation
copied data from another layer.
add c994b2e9 GUACAMOLE-377: Use 2 worker threads per available processor.
add 63ecfd81 GUACAMOLE-377: Do not use threaded WebP encoder given that
guac_display will already make use of a worker thread pool.
add d6447224 GUACAMOLE-377: Migrate VNC support to guac_display API.
add b030ced3 GUACAMOLE-377: Group all guac_display documentation together
under a shared Doxygen topic.
add 3f88d3eb GUACAMOLE-377: Migrate RDP to guac_display.
add d99c5c0b GUACAMOLE-377: Replace RDP settings string (rather than reuse
storage of unknown size).
add 28687cb8 GUACAMOLE-377: Use FreeRDP's built-in GDI handling of bitmap
cache.
add 1f0a3651 GUACAMOLE-377: Migrate terminal emulator to guac_display.
add 3b6173f7 GUACAMOLE-377: Work around libssh2 usage of strlen() on key
data (otherwise encumbering testing of terminal emulator refactor).
add 40eef95f GUACAMOLE-377: Increase maximum number of streams.
add dc133eae GUACAMOLE-377: Ignore directories and files used by Clang
compilation database.
add ba5511cc GUACAMOLE-377: Correct return value confusion in handling of
timeout vs. general failure of WaitForMultipleObjects().
add c48409c3 GUACAMOLE-377: Prefer GUAC_COMP_OVER to GUAC_COMP_SRC for
performance-critical operations (~3x faster).
add de30928a GUACAMOLE-377: Remove all old surface, display, cursor, and
rect code from src/common/.
add 8003836e GUACAMOLE-377: Ensure frame boundaries are sent even for
frames containing no graphics.
add 3aae6035 GUACAMOLE-377: Migrate from timer to thread for pending users.
add 7e593c00 GUACAMOLE-377: Restore heuristic detection of RDP frame
boundaries.
add dc833c74 GUACAMOLE-377: Restore heuristic detection of VNC frame
boundaries.
add cbfeae6c GUACAMOLE-377: Allow the pending frame buffer for a
guac_display_layer to be external.
add fa37f006 GUACAMOLE-377: Allow external guac_display buffers to be
replaced with NULL if necessary for external cleanup tasks.
add d31a96c6 GUACAMOLE-377: Migrate RDP to direct access of FreeRDP's GDI
buffer.
add b667f697 GUACAMOLE-377: Migrate VNC to direct access of RFB
framebuffer.
add 6a7eb6db GUACAMOLE-377: Wrap all VNC message handling within drawing
context.
add 8c341bcf GUACAMOLE-377: Remove unnecessary locking of last frame
during resize.
add ae52278b GUACAMOLE-377: Restore good ol' guac_common_surface and
guac_common_cursor for use by terminal.
add 4145f587 GUACAMOLE-377: Revert migration of terminal emulator to
guac_display.
add c6833a46 GUACAMOLE-377: Make vertical combination more likely by
limiting combinations to aligned boundaries.
add 540d2047 GUACAMOLE-377: Read lock should NOT be acquired at same time
as write lock.
add f3485066 GUACAMOLE-377: Do NOT combine display operations vertically
unless edges match exactly.
add 5ec7be13 GUACAMOLE-377: Do not allow "img" instructions to break
"rect" and "cfill" pairs.
add 260f959b GUACAMOLE-377: Reduce number of worker threads to one per
processor.
add 8f5c3e9c GUACAMOLE-377: Synchronize layer contents only if non-empty.
add f2f74c2d GUACAMOLE-377: Ignore alpha for rectangle operations on
opaque layers.
add 0da3354e GUACAMOLE-377: Add convenient, default render thread
implementation for guac_display.
add 98fd5e69 GUACAMOLE-377: Migrate RDP to default render thread.
add 5a12d96a GUACAMOLE-377: Migrate VNC to default render loop.
add db42844e GUACAMOLE-377: Remove superfluous bounds check (now part of
guac_pool).
add ed388631 GUACAMOLE-377: Restore original NULL returns for alloc
failures of streams/objects.
add 4220670d GUACAMOLE-377: Fix regression causing RDP connections to
always reconnect after closing.
add f5ecb6c8 GUACAMOLE-377: Stream/object sentinel must be assigned BEFORE
returning index to pool.
add b754d3f0 GUACAMOLE-377: Merge new libguac "guac_display" rendering
system.
add ec38a6a6 Merge 1.6.0 changes back to patch.
add 04e90157 Merge patch branch changes to main.
No new revisions were added by this update.
Summary of changes:
.gitignore | 4 +
configure.ac | 5 +
src/common-ssh/key.c | 13 +-
src/common/Makefile.am | 2 -
src/common/common/display.h | 293 --------
src/common/display.c | 422 -----------
src/libguac/Makefile.am | 109 ++-
src/libguac/client.c | 180 ++---
src/libguac/display-builtin-cursors.c | 149 ++++
src/libguac/display-builtin-cursors.h | 93 +++
src/libguac/display-cursor.c | 104 +++
src/libguac/display-flush.c | 391 ++++++++++
src/libguac/display-layer-list.c | 396 ++++++++++
src/libguac/display-layer.c | 324 ++++++++
src/libguac/display-plan-combine.c | 334 +++++++++
src/libguac/display-plan-rect.c | 240 ++++++
src/libguac/display-plan-search.c | 436 +++++++++++
src/libguac/display-plan.c | 441 +++++++++++
src/libguac/display-plan.h | 399 ++++++++++
src/libguac/display-priv.h | 813 +++++++++++++++++++++
src/libguac/display-render-thread.c | 173 +++++
src/libguac/display-worker.c | 522 +++++++++++++
src/libguac/display.c | 351 +++++++++
src/libguac/encode-webp.c | 2 +-
src/libguac/fifo.c | 210 ++++++
src/libguac/flag.c | 167 +++++
src/libguac/guacamole/assert.h | 47 ++
src/libguac/guacamole/client-constants.h | 2 +-
src/libguac/guacamole/client.h | 17 +-
.../{parser-constants.h => display-constants.h} | 33 +-
src/libguac/guacamole/display-types.h | 106 +++
src/libguac/guacamole/display.h | 780 ++++++++++++++++++++
.../{socket-constants.h => fifo-constants.h} | 33 +-
.../guacamole/fifo-types.h} | 47 +-
src/libguac/guacamole/fifo.h | 314 ++++++++
.../guacamole/{audio-types.h => flag-types.h} | 26 +-
src/libguac/guacamole/flag.h | 244 +++++++
src/libguac/guacamole/pool.h | 59 +-
.../png.h => libguac/guacamole/rect-types.h} | 15 +-
src/libguac/guacamole/rect.h | 271 +++++++
src/libguac/guacamole/user-constants.h | 2 +-
src/libguac/mem.c | 13 +-
src/libguac/pool.c | 112 ++-
src/libguac/rect.c | 178 +++++
src/libguac/tests/Makefile.am | 7 +
src/libguac/tests/fifo/fifo.c | 298 ++++++++
src/libguac/tests/flag/flag.c | 168 +++++
src/libguac/tests/rect/align.c | 70 ++
src/{common => libguac}/tests/rect/constrain.c | 25 +-
src/{common => libguac}/tests/rect/extend.c | 25 +-
src/{common => libguac}/tests/rect/init.c | 17 +-
src/libguac/tests/rect/intersects.c | 85 +++
src/libguac/user.c | 30 +-
src/protocols/kubernetes/user.c | 1 -
src/protocols/rdp/Makefile.am | 4 -
src/protocols/rdp/bitmap.c | 168 -----
src/protocols/rdp/bitmap.h | 133 ----
src/protocols/rdp/channels/disp.c | 26 +-
src/protocols/rdp/channels/disp.h | 16 +
src/protocols/rdp/channels/rdpei.c | 4 +-
src/protocols/rdp/client.c | 2 +-
src/protocols/rdp/client.h | 25 +-
src/protocols/rdp/fs.c | 2 +-
src/protocols/rdp/gdi.c | 453 ++----------
src/protocols/rdp/gdi.h | 135 +---
src/protocols/rdp/glyph.c | 170 -----
src/protocols/rdp/glyph.h | 224 ------
src/protocols/rdp/input.c | 6 +-
src/protocols/rdp/pointer.c | 106 ++-
src/protocols/rdp/pointer.h | 5 +-
src/protocols/rdp/rdp.c | 167 ++---
src/protocols/rdp/rdp.h | 27 +-
src/protocols/rdp/settings.c | 7 +-
src/protocols/rdp/user.c | 5 +-
src/protocols/ssh/input.c | 2 -
src/protocols/ssh/user.c | 1 -
src/protocols/vnc/client.c | 5 +-
src/protocols/vnc/client.h | 25 +-
src/protocols/vnc/cursor.c | 96 ++-
src/protocols/vnc/cursor.h | 4 +-
src/protocols/vnc/display.c | 182 +++--
src/protocols/vnc/display.h | 7 +-
src/protocols/vnc/input.c | 7 +-
src/protocols/vnc/log.c | 1 -
src/protocols/vnc/log.h | 1 -
src/protocols/vnc/user.c | 10 +-
src/protocols/vnc/vnc.c | 145 ++--
src/protocols/vnc/vnc.h | 23 +-
src/terminal/buffer.c | 460 ++++++++++--
src/terminal/common.c | 7 +
src/terminal/display.c | 120 +--
src/terminal/select.c | 100 +--
src/terminal/terminal-handlers.c | 196 ++++-
src/terminal/terminal.c | 420 +++--------
src/terminal/terminal/buffer.h | 193 +++--
src/terminal/terminal/terminal-priv.h | 96 +--
src/terminal/terminal/types.h | 16 +-
97 files changed, 9984 insertions(+), 3416 deletions(-)
delete mode 100644 src/common/common/display.h
delete mode 100644 src/common/display.c
create mode 100644 src/libguac/display-builtin-cursors.c
create mode 100644 src/libguac/display-builtin-cursors.h
create mode 100644 src/libguac/display-cursor.c
create mode 100644 src/libguac/display-flush.c
create mode 100644 src/libguac/display-layer-list.c
create mode 100644 src/libguac/display-layer.c
create mode 100644 src/libguac/display-plan-combine.c
create mode 100644 src/libguac/display-plan-rect.c
create mode 100644 src/libguac/display-plan-search.c
create mode 100644 src/libguac/display-plan.c
create mode 100644 src/libguac/display-plan.h
create mode 100644 src/libguac/display-priv.h
create mode 100644 src/libguac/display-render-thread.c
create mode 100644 src/libguac/display-worker.c
create mode 100644 src/libguac/display.c
create mode 100644 src/libguac/fifo.c
create mode 100644 src/libguac/flag.c
create mode 100644 src/libguac/guacamole/assert.h
copy src/libguac/guacamole/{parser-constants.h => display-constants.h} (58%)
create mode 100644 src/libguac/guacamole/display-types.h
create mode 100644 src/libguac/guacamole/display.h
copy src/libguac/guacamole/{socket-constants.h => fifo-constants.h} (55%)
copy src/{common/common/dot_cursor.h => libguac/guacamole/fifo-types.h} (50%)
create mode 100644 src/libguac/guacamole/fifo.h
copy src/libguac/guacamole/{audio-types.h => flag-types.h} (60%)
create mode 100644 src/libguac/guacamole/flag.h
copy src/{guacenc/png.h => libguac/guacamole/rect-types.h} (67%)
create mode 100644 src/libguac/guacamole/rect.h
create mode 100644 src/libguac/rect.c
create mode 100644 src/libguac/tests/fifo/fifo.c
create mode 100644 src/libguac/tests/flag/flag.c
create mode 100644 src/libguac/tests/rect/align.c
copy src/{common => libguac}/tests/rect/constrain.c (64%)
copy src/{common => libguac}/tests/rect/extend.c (63%)
copy src/{common => libguac}/tests/rect/init.c (73%)
create mode 100644 src/libguac/tests/rect/intersects.c
delete mode 100644 src/protocols/rdp/bitmap.c
delete mode 100644 src/protocols/rdp/bitmap.h
delete mode 100644 src/protocols/rdp/glyph.c
delete mode 100644 src/protocols/rdp/glyph.h