spice-protocol off screens supports

Signed-off-by: Izik Eidus <ieidus@redhat.com>
This commit is contained in:
Izik Eidus 2010-04-03 05:41:20 +03:00
parent 14db228e81
commit 98fd8921a9
2 changed files with 42 additions and 0 deletions

View File

@ -155,6 +155,7 @@ enum {
SPICE_IMAGE_TYPE_LZ_RGB,
SPICE_IMAGE_TYPE_GLZ_RGB,
SPICE_IMAGE_TYPE_FROM_CACHE,
SPICE_IMAGE_TYPE_SURFACE,
};
enum {
@ -203,6 +204,15 @@ typedef struct SPICE_ATTR_PACKED SpiceBitmapImage {
SpiceBitmap bitmap;
} SpiceBitmapImage;
typedef struct SPICE_ATTR_PACKED SpiceSurface {
uint32_t surface_id;
} SpiceSurface;
typedef struct SPICE_ATTR_PACKED SpiceSurfaceImage {
SpiceImageDescriptor descriptor; //?
SpiceSurface surface;
} SpiceSurfaceImage;
typedef struct SPICE_ATTR_PACKED SpiceQUICData {
uint32_t data_size;
uint8_t data[0];

View File

@ -70,6 +70,7 @@ enum {
QXL_IO_CREATE_PRIMARY,
QXL_IO_DESTROY_PRIMARY,
QXL_IO_DESTROY_SURFACE_WAIT,
QXL_IO_DESTROY_ALL_SURFACES,
QXL_IO_RANGE_SIZE
};
@ -91,6 +92,7 @@ typedef struct SPICE_ATTR_PACKED QXLRom {
uint8_t slot_gen_bits;
uint8_t slot_id_bits;
uint8_t slot_generation;
uint32_t n_surfaces;
} QXLRom;
typedef struct SPICE_ATTR_PACKED QXLMode {
@ -118,6 +120,7 @@ enum QXLCmdType {
QXL_CMD_UPDATE,
QXL_CMD_CURSOR,
QXL_CMD_MESSAGE,
QXL_CMD_SURFACE,
};
typedef struct SPICE_ATTR_PACKED QXLCommand {
@ -169,6 +172,7 @@ typedef struct SPICE_ATTR_PACKED QXLRam {
QXLCursorRing cursor_ring;
QXLReleaseRing release_ring;
SpiceRect update_area;
uint32_t update_surface;
QXLMemSlot mem_slot;
QXLSurfaceCreate create_surface;
uint64_t flags;
@ -200,6 +204,7 @@ typedef struct SPICE_ATTR_PACKED QXLUpdateCmd {
QXLReleaseInfo release_info;
SpiceRect area;
uint32_t update_id;
uint32_t surface_id;
} QXLUpdateCmd;
typedef struct SPICE_ATTR_PACKED QXLCursor {
@ -274,6 +279,7 @@ typedef struct SPICE_ATTR_PACKED QXLCopyBits {
typedef struct SPICE_ATTR_PACKED QXLDrawable {
QXLReleaseInfo release_info;
uint32_t surface_id;
uint8_t effect;
uint8_t type;
uint8_t self_bitmap;
@ -281,6 +287,8 @@ typedef struct SPICE_ATTR_PACKED QXLDrawable {
SpiceRect bbox;
SpiceClip clip;
uint32_t mm_time;
int32_t surfaces_dest[3];
SpiceRect surfaces_rects[3];
union {
SpiceFill fill;
SpiceOpaque opaque;
@ -298,6 +306,29 @@ typedef struct SPICE_ATTR_PACKED QXLDrawable {
} u;
} QXLDrawable;
enum QXLSurfaceCmdType {
QXL_SURFACE_CMD_CREATE,
QXL_SURFACE_CMD_DESTROY,
};
typedef struct SPICE_ATTR_PACKED QXLSurface {
uint8_t depth;
uint32_t width;
uint32_t height;
int32_t stride;
QXLPHYSICAL data;
} QXLSurface;
typedef struct SPICE_ATTR_PACKED QXLSurfaceCmd {
QXLReleaseInfo release_info;
uint32_t surface_id;
uint8_t type;
uint32_t flags;
union {
QXLSurface surface_create;
} u;
} QXLSurfaceCmd;
typedef struct SPICE_ATTR_PACKED QXLClipRects {
uint32_t num_rects;
QXLDataChunk chunk;
@ -349,6 +380,7 @@ typedef struct SPICE_ATTR_PACKED QXLImage {
union { // variable length
SpiceBitmap bitmap;
SpiceQUICData quic;
SpiceSurface surface_image;
};
} QXLImage;