You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by jm...@apache.org on 2024/09/30 15:07:10 UTC

(guacamole-server) branch main updated (bdb2aec4 -> 04e90157)

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