-
Notifications
You must be signed in to change notification settings - Fork 644
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GUACAMOLE-377: Add libguac "guac_display" API for easy and efficient rendering. #525
Commits on Sep 28, 2024
-
GUACAMOLE-377: Establish public guac_display API for efficient render…
…ing via Guacamole protocol.
Configuration menu - View commit details
-
Copy full SHA for 104006c - Browse repository at this point
Copy the full SHA 104006cView commit details -
GUACAMOLE-377: Tighten dirty rects down to the individual pixel, rath…
…er than whole 64-pixel lines.
Configuration menu - View commit details
-
Copy full SHA for 028fb58 - Browse repository at this point
Copy the full SHA 028fb58View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5814072 - Browse repository at this point
Copy the full SHA 5814072View commit details -
Configuration menu - View commit details
-
Copy full SHA for b965c4d - Browse repository at this point
Copy the full SHA b965c4dView commit details -
GUACAMOLE-377: Correct logic and lock order around deferred frame flu…
…shing (caused deadlock).
Configuration menu - View commit details
-
Copy full SHA for 619eb2e - Browse repository at this point
Copy the full SHA 619eb2eView commit details -
Configuration menu - View commit details
-
Copy full SHA for f898ead - Browse repository at this point
Copy the full SHA f898eadView commit details -
Configuration menu - View commit details
-
Copy full SHA for 442b33e - Browse repository at this point
Copy the full SHA 442b33eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e396ed5 - Browse repository at this point
Copy the full SHA e396ed5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8afbeae - Browse repository at this point
Copy the full SHA 8afbeaeView commit details -
GUACAMOLE-377: Flush an automatic frame for mouse changes only if the…
…re are no other graphical changes pending.
Configuration menu - View commit details
-
Copy full SHA for 692400c - Browse repository at this point
Copy the full SHA 692400cView commit details -
GUACAMOLE-377: Updates to cursor must occur within the boundary of th…
…eir relevant frame (before "sync").
Configuration menu - View commit details
-
Copy full SHA for 335d5e2 - Browse repository at this point
Copy the full SHA 335d5e2View commit details -
GUACAMOLE-377: Ensure all layers supporting transparency are properly…
… cleared before receiving data that also supports transparency (including WebP).
Configuration menu - View commit details
-
Copy full SHA for 15e400e - Browse repository at this point
Copy the full SHA 15e400eView commit details -
GUACAMOLE-377: Add ability to "hint" that a drawing operation copied …
…data from another layer.
Configuration menu - View commit details
-
Copy full SHA for 4f3fccd - Browse repository at this point
Copy the full SHA 4f3fccdView commit details -
Configuration menu - View commit details
-
Copy full SHA for c994b2e - Browse repository at this point
Copy the full SHA c994b2eView commit details -
GUACAMOLE-377: Do not use threaded WebP encoder given that guac_displ…
…ay will already make use of a worker thread pool.
Configuration menu - View commit details
-
Copy full SHA for 63ecfd8 - Browse repository at this point
Copy the full SHA 63ecfd8View commit details -
Configuration menu - View commit details
-
Copy full SHA for d644722 - Browse repository at this point
Copy the full SHA d644722View commit details -
GUACAMOLE-377: Group all guac_display documentation together under a …
…shared Doxygen topic.
Configuration menu - View commit details
-
Copy full SHA for b030ced - Browse repository at this point
Copy the full SHA b030cedView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f88d3e - Browse repository at this point
Copy the full SHA 3f88d3eView commit details -
GUACAMOLE-377: Replace RDP settings string (rather than reuse storage…
… of unknown size).
Configuration menu - View commit details
-
Copy full SHA for d99c5c0 - Browse repository at this point
Copy the full SHA d99c5c0View commit details -
GUACAMOLE-377: Use FreeRDP's built-in GDI handling of bitmap cache.
With FreeRDP's GDI being used for ther other aspects of RDP drawing, using our own implementation of bitmap caching causes the FreeRDP's GDI to become out-of-sync with Guacamole's representation, producing graphical artifacts. We can't simply monkey-patch the GDI, as the functions used are internal and not part of the public FreeRDP API. There are likely other possible approaches, like manually updating FreeRDP's GDI surface in addition to Guacamole's surface, but this may not be worth the effort given that bitmap caching is not commonly used by modern RDP servers.
Configuration menu - View commit details
-
Copy full SHA for 28687cb - Browse repository at this point
Copy the full SHA 28687cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f0a365 - Browse repository at this point
Copy the full SHA 1f0a365View commit details -
GUACAMOLE-377: Work around libssh2 usage of strlen() on key data (oth…
…erwise encumbering testing of terminal emulator refactor).
Configuration menu - View commit details
-
Copy full SHA for 3b6173f - Browse repository at this point
Copy the full SHA 3b6173fView commit details -
GUACAMOLE-377: Increase maximum number of streams.
The new guac_display otherwise tends to run out of outbound, client-wide streams.
Configuration menu - View commit details
-
Copy full SHA for 40eef95 - Browse repository at this point
Copy the full SHA 40eef95View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc133ea - Browse repository at this point
Copy the full SHA dc133eaView commit details -
GUACAMOLE-377: Correct return value confusion in handling of timeout …
…vs. general failure of WaitForMultipleObjects(). The conversion of WAIT_FAILED to a signed int and back may cause the value of result to not actually match the value of the WAIT_FAILED macro due to the difference in size and sign extension during conversion.
Configuration menu - View commit details
-
Copy full SHA for ba5511c - Browse repository at this point
Copy the full SHA ba5511cView commit details -
GUACAMOLE-377: Prefer GUAC_COMP_OVER to GUAC_COMP_SRC for performance…
…-critical operations (~3x faster).
Configuration menu - View commit details
-
Copy full SHA for c48409c - Browse repository at this point
Copy the full SHA c48409cView commit details -
GUACAMOLE-377: Remove all old surface, display, cursor, and rect code…
… from src/common/.
Configuration menu - View commit details
-
Copy full SHA for de30928 - Browse repository at this point
Copy the full SHA de30928View commit details -
GUACAMOLE-377: Ensure frame boundaries are sent even for frames conta…
…ining no graphics.
Configuration menu - View commit details
-
Copy full SHA for 8003836 - Browse repository at this point
Copy the full SHA 8003836View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3aae603 - Browse repository at this point
Copy the full SHA 3aae603View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e593c0 - Browse repository at this point
Copy the full SHA 7e593c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc833c7 - Browse repository at this point
Copy the full SHA dc833c7View commit details -
GUACAMOLE-377: Allow the pending frame buffer for a guac_display_laye…
…r to be external.
Configuration menu - View commit details
-
Copy full SHA for cbfeae6 - Browse repository at this point
Copy the full SHA cbfeae6View commit details -
GUACAMOLE-377: Allow external guac_display buffers to be replaced wit…
…h NULL if necessary for external cleanup tasks.
Configuration menu - View commit details
-
Copy full SHA for fa37f00 - Browse repository at this point
Copy the full SHA fa37f00View commit details -
Configuration menu - View commit details
-
Copy full SHA for d31a96c - Browse repository at this point
Copy the full SHA d31a96cView commit details -
Configuration menu - View commit details
-
Copy full SHA for b667f69 - Browse repository at this point
Copy the full SHA b667f69View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 6a7eb6d - Browse repository at this point
Copy the full SHA 6a7eb6dView commit details -
GUACAMOLE-377: Remove unnecessary locking of last frame during resize.
No longer necessary now that the last and pending frame buffers are not interleaved.
Configuration menu - View commit details
-
Copy full SHA for 8c341bc - Browse repository at this point
Copy the full SHA 8c341bcView commit details -
GUACAMOLE-377: Restore good ol' guac_common_surface and guac_common_c…
…ursor for use by terminal.
Configuration menu - View commit details
-
Copy full SHA for ae52278 - Browse repository at this point
Copy the full SHA ae52278View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4145f58 - Browse repository at this point
Copy the full SHA 4145f58View commit details -
GUACAMOLE-377: Make vertical combination more likely by limiting comb…
…inations to aligned boundaries.
Configuration menu - View commit details
-
Copy full SHA for c6833a4 - Browse repository at this point
Copy the full SHA c6833a4View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 540d204 - Browse repository at this point
Copy the full SHA 540d204View commit details -
GUACAMOLE-377: Do NOT combine display operations vertically unless ed…
…ges 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.
Configuration menu - View commit details
-
Copy full SHA for f348506 - Browse repository at this point
Copy the full SHA f348506View commit details -
GUACAMOLE-377: Do not allow "img" instructions to break "rect" and "c…
…fill" 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).
Configuration menu - View commit details
-
Copy full SHA for 5ec7be1 - Browse repository at this point
Copy the full SHA 5ec7be1View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 260f959 - Browse repository at this point
Copy the full SHA 260f959View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f5c3e9 - Browse repository at this point
Copy the full SHA 8f5c3e9View commit details -
Configuration menu - View commit details
-
Copy full SHA for f2f74c2 - Browse repository at this point
Copy the full SHA f2f74c2View commit details -
GUACAMOLE-377: Add convenient, default render thread implementation f…
…or guac_display.
Configuration menu - View commit details
-
Copy full SHA for 0da3354 - Browse repository at this point
Copy the full SHA 0da3354View commit details -
Configuration menu - View commit details
-
Copy full SHA for 98fd5e6 - Browse repository at this point
Copy the full SHA 98fd5e6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a12d96 - Browse repository at this point
Copy the full SHA 5a12d96View commit details -
Configuration menu - View commit details
-
Copy full SHA for db42844 - Browse repository at this point
Copy the full SHA db42844View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed38863 - Browse repository at this point
Copy the full SHA ed38863View commit details -
GUACAMOLE-377: Fix regression causing RDP connections to always recon…
…nect after closing.
Configuration menu - View commit details
-
Copy full SHA for 4220670 - Browse repository at this point
Copy the full SHA 4220670View commit details -
GUACAMOLE-377: Stream/object sentinel must be assigned BEFORE returni…
…ng 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.
Configuration menu - View commit details
-
Copy full SHA for f5ecb6c - Browse repository at this point
Copy the full SHA f5ecb6cView commit details