Handle top down bitmaps dumping

The top down flag can be specified using negative heights.

According to
https://msdn.microsoft.com/en-us/library/windows/desktop/dd183376(v=vs.85).aspx:

"The height of the bitmap, in pixels. If biHeight is positive, the
bitmap is a bottom-up DIB and its origin is the lower-left corner.
If biHeight is negative, the bitmap is a top-down DIB and its origin
is the upper-left corner."

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
Frediano Ziglio 2016-10-21 04:42:26 +01:00
parent 2e34c83391
commit de27dc034d

View File

@ -269,7 +269,7 @@ void dump_bitmap(SpiceBitmap *bitmap)
put_32le(&ptr, bitmap_data_offset);
put_32le(&ptr, header_size - 14);
put_32le(&ptr, bitmap->x);
put_32le(&ptr, bitmap->y);
put_32le(&ptr, bitmap->flags & SPICE_BITMAP_FLAGS_TOP_DOWN ? -bitmap->y : bitmap->y);
put_16le(&ptr, 1); // plane
put_16le(&ptr, n_pixel_bits);