mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-protocol
synced 2025-12-31 11:05:16 +00:00
spice-protocol off screens supports
Signed-off-by: Izik Eidus <ieidus@redhat.com>
This commit is contained in:
parent
14db228e81
commit
98fd8921a9
10
spice/draw.h
10
spice/draw.h
@ -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];
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user