Skip to content

Complete pixel format support for bitmap updates#1134

Open
Greg Lamberson (glamberson) wants to merge 1 commit intoDevolutions:masterfrom
glamberson:pixel-format-support
Open

Complete pixel format support for bitmap updates#1134
Greg Lamberson (glamberson) wants to merge 1 commit intoDevolutions:masterfrom
glamberson:pixel-format-support

Conversation

@glamberson
Copy link
Contributor

Wires 8/15/24/32bpp bitmap rendering in the session layer. Previously only 16bpp and 32bpp RDP6-compressed bitmaps were rendered; all other depths were silently dropped with warn!(). The RLE decompressor already handles all four formats correctly, the gap was entirely in dispatch and image application.

  • rdp_15bit_to_rgb (RGB555) conversion alongside existing rdp_16bit_to_rgb
  • apply_rgb15_bitmap, apply_bgr24_bitmap, apply_rgb8_with_palette on DecodedImage
  • All pixel formats wired in fast-path compressed, uncompressed, and surface CODEC_ID_NONE paths
  • FastPathUpdate::Palette variant parses TS_UPDATE_PALETTE_DATA (was hitting catch-all error)
  • Default Windows system palette for 8bpp sessions without explicit palette update
  • Unit tests for 15-bit and 16-bit color conversion

Partial fix for #314.

Wire 8/15/24/32bpp bitmap rendering in the session layer. Previously
only 16bpp (compressed and uncompressed) and 32bpp RDP6-compressed
bitmaps were handled; all other depths were silently dropped.

Changes:
- Add rdp_15bit_to_rgb (RGB555) conversion in ironrdp-graphics
- Add apply_rgb15_bitmap, apply_bgr24_bitmap, apply_rgb8_with_palette
  in DecodedImage
- Wire all pixel formats in fast-path compressed, uncompressed, and
  surface CODEC_ID_NONE paths
- Add FastPathUpdate::Palette variant, parse TS_UPDATE_PALETTE_DATA
- Include default Windows system palette (VGA 20-color) for 8bpp
  sessions that start without an explicit palette update
- Add unit tests for 15-bit and 16-bit color conversion

Partial fix for Devolutions#314.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant