summaryrefslogtreecommitdiffstats
path: root/spice.proto
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2012-05-18 17:01:29 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-08-24 13:37:51 -0400
commitc0b048ebef41b3a79d42e96c0ecaef65e1bb7599 (patch)
treeeb634cbf7d8a07379490c36a795c6522bea58095 /spice.proto
parent0c1b6de4ad1b3e9d6da50979bb259f0acdc2fd2f (diff)
downloadspice-common-c0b048ebef41b3a79d42e96c0ecaef65e1bb7599.tar.gz
spice-common-c0b048ebef41b3a79d42e96c0ecaef65e1bb7599.tar.xz
spice-common-c0b048ebef41b3a79d42e96c0ecaef65e1bb7599.zip
Add support for A8 images to the LZ routines
This format is needed to add Render support to the X driver, so we need the ability to compress and decompress it.
Diffstat (limited to 'spice.proto')
-rw-r--r--spice.proto56
1 files changed, 55 insertions, 1 deletions
diff --git a/spice.proto b/spice.proto
index 1fdead9..29d6a8b 100644
--- a/spice.proto
+++ b/spice.proto
@@ -26,6 +26,15 @@ struct Rect {
int32 right;
};
+struct Transform {
+ uint32 t00;
+ uint32 t01;
+ uint32 t02;
+ uint32 t10;
+ uint32 t11;
+ uint32 t12;
+};
+
enum32 link_err {
OK,
ERROR,
@@ -52,6 +61,28 @@ flags32 migrate_flags {
NEED_DATA_TRANSFER
} @prefix(SPICE_MIGRATE_);
+flags32 composite_flags {
+ OP0, OP1, OP2, OP3, OP4, OP5, OP6, OP7,
+ SRC_FILTER0, SRC_FILTER1, SRC_FILTER2,
+ MASK_FILTER0, MASK_FITLER1, MASK_FILTER2,
+
+ SRC_REPEAT0, SRC_REPEAT1,
+ MASK_REPEAT0, MASK_REPEAT1,
+ COMPONENT_ALPHA,
+
+ HAS_MASK,
+ HAS_SRC_TRANSFORM,
+ HAS_MASK_TRANSFORM,
+
+ /* These are used to override the formats given in the images. For
+ * example, if the mask image has format a8r8g8b8, but MASK_OPAQUE
+ * is set, the image should be treated as if it were x8r8g8b8
+ */
+ SOURCE_OPAQUE,
+ MASK_OPAQUE,
+ DEST_OPAQUE,
+} @prefix(SPICE_COMPOSITE_);
+
enum32 notify_severity {
INFO,
WARN,
@@ -321,7 +352,8 @@ enum8 bitmap_fmt {
16BIT, /* 0555 mode */
24BIT /* 3 byte, brg */,
32BIT /* 4 byte, xrgb in little endian format */,
- RGBA /* 4 byte, argb in little endian format */
+ RGBA /* 4 byte, argb in little endian format */,
+ 8BIT_A /* 1 byte, alpha */
};
flags8 bitmap_flags {
@@ -814,6 +846,28 @@ channel DisplayChannel : BaseChannel {
Head heads[count] @end;
} monitors_config;
+ message {
+ DisplayBase base;
+ struct Composite {
+ composite_flags flags;
+ Image *src_bitmap;
+ switch (flags) {
+ case HAS_MASK:
+ Image *mask_bitmap;
+ } a @anon;
+ switch (flags) {
+ case HAS_SRC_TRANSFORM:
+ Transform src_transform;
+ } b @anon;
+ switch (flags) {
+ case HAS_MASK_TRANSFORM:
+ Transform mask_transform;
+ } c @anon;
+ Point16 src_origin;
+ Point16 mask_origin;
+ } data;
+ } draw_composite;
+
client:
message {
uint8 pixmap_cache_id;