Lossy compression of RGBA images (on WAN connection)

The RGB channels are compressed using JPEG.
The alpha channel is compressed using LZ.
This commit is contained in:
Yonit Halperin 2010-06-20 17:18:56 +03:00 committed by Marc-André Lureau
parent e8ee21132b
commit 1f3c193ceb

View File

@ -294,6 +294,7 @@ enum8 image_type {
JPEG,
FROM_CACHE_LOSSLESS,
ZLIB_GLZ_RGB,
JPEG_ALPHA,
};
flags8 image_flags {
@ -321,6 +322,10 @@ flags8 bitmap_flags {
TOP_DOWN,
};
flags8 jpeg_alpha_flags {
TOP_DOWN,
};
enum8 image_scale_mode {
INTERPOLATE,
NEAREST,
@ -477,6 +482,13 @@ struct ZlibGlzRGBData {
uint8 data[data_size] @end @nomarshal;
} @ctype(SpiceZlibGlzRGBData);
struct JPEGAlphaData {
jpeg_alpha_flags flags;
uint32 jpeg_size;
uint32 data_size;
uint8 data[data_size] @end @nomarshal;
} @ctype(SpiceJPEGAlphaData);
struct Surface {
uint32 surface_id;
};
@ -500,6 +512,8 @@ struct Image {
LZPLTData lzplt_data @ctype(SpiceLZPLTData);
case ZLIB_GLZ_RGB:
ZlibGlzRGBData zlib_glz_data @ctype(SpiceZlibGlzRGBData);
case JPEG_ALPHA:
JPEGAlphaData jpeg_alpha_data @ctype(SpiceJPEGAlphaData);
case SURFACE:
Surface surface_data;
} u @end;