* VNC-132 Fix image rendering logic to decrease memory usage
* Updating the recalculate primary display container size logic to ensure an even resolution is set
* VNC-132 Free memory after rendering bitmap image
* VNC-132 Update screen channel logic
* Updating recalculate primary display container size to ensure it is an even resolution
* updaing to get parent node size including subpixel value
* updating comment for clarity
KASM-7072 Added threaded decoding of rects. Update replay test to work with threaded decoding. Update stats tracker to track dropped fps.
---------
Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: Ryan Kuba <ryankuba@gmail.com>
Co-authored-by: Matt McClaskey <matt@kasmweb.com>
* KASM-5598 modify click logic to tell other windows they can receive a click event
* KASM-5598 dont run the rest of the switch on click focus set
* KASM-5598 forgot to false
* fix detection of changes of x and y of secondary screens
* always apply resize after recieving display reregister
---------
Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* KASM-5523 change resize settings if admin prohibited on server
* Fix local scaling aspect ratio
* fix exception on reconnect
* Always recalculate resolution on setting changes
---------
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* KASM-5417 fix bug watermrk multi-display
* Force the zlib expected size to an int, it was unexpectedly float
* KASM-5427 transparent rects not drawn on primary display
* add double buffer when transparent rects are used
* refactor of transparent rects
* Use a more descriptive zlib error
* account for dropped transparent rects
* fix bug with multi-monitor with overlay
* implement new transparent rect encoding
* implement a max frame hold time
---------
Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* Handle the frame id in udp packets
* refactor udp message buffer, add frame_id and rect cnt
* refactor udp to work with new display.js
* additional debug metrics, clear frame buffer on transitions tcp/udp
* fix udp with display refactor, KASM-3541 cancelAnimationFrame
Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* Major refactor of display.js queue to assume async rect processing in order to accommodate threaded decode or udp
* QOI lossless decoder on worker threads using WASM
* rfb.js class to provide frame_id and rect counts per frame
Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: matt <matt@kasmweb.com>
* KASM-2090 work around for incomplete webp images when there are lots of concurrent users on a single session. Unknown root cause, work around will in most cases keep the connection alive.
* KASM-2041 auto scale high res mobile - Browsers typically set a scale ratio for high resolution screens, so everything isn't tiny. This mostly works well, but results in a super low resolution for the remote display. This feature detects low resolutions where the browser is doing scaling and adjusts the scale backwards to reach a more reasonable resolution. This typically only happens on modern phones.