summaryrefslogtreecommitdiffstats
path: root/server/red_parse_qxl.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-06-23 15:34:28 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-06-29 12:30:20 +0200
commitc26b574b40e01789471c080af7b1c6c1c976dfc6 (patch)
tree8802fa266546a64bb73ac40ae9d78cfa799fdcab /server/red_parse_qxl.c
parentdffb0401e79b8e9f85975330abb74134278aff86 (diff)
downloadspice-c26b574b40e01789471c080af7b1c6c1c976dfc6.tar.gz
spice-c26b574b40e01789471c080af7b1c6c1c976dfc6.tar.xz
spice-c26b574b40e01789471c080af7b1c6c1c976dfc6.zip
qxl abi: parse QXLRop3.
Diffstat (limited to 'server/red_parse_qxl.c')
-rw-r--r--server/red_parse_qxl.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index f53a9baf..cfb20260 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -85,6 +85,17 @@ static void red_get_alpha_blend_ptr_compat(RedMemSlotInfo *slots, int group_id,
red->src_area = qxl->src_area;
}
+static void red_get_rop3_ptr(RedMemSlotInfo *slots, int group_id,
+ SpiceRop3 *red, QXLRop3 *qxl)
+{
+ red->src_bitmap = qxl->src_bitmap;
+ red->src_area = qxl->src_area;
+ red->brush = qxl->brush;
+ red->rop3 = qxl->rop3;
+ red->scale_mode = qxl->scale_mode;
+ red->mask = qxl->mask;
+}
+
void red_get_drawable(RedMemSlotInfo *slots, int group_id,
RedDrawable *red, SPICE_ADDRESS addr)
{
@@ -137,7 +148,7 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
case QXL_DRAW_NOP:
break;
case QXL_DRAW_ROP3:
- red->u.rop3 = qxl->u.rop3;
+ red_get_rop3_ptr(slots, group_id, &red->u.rop3, &qxl->u.rop3);
break;
case QXL_DRAW_STROKE:
red->u.stroke = qxl->u.stroke;
@@ -201,7 +212,7 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
case QXL_DRAW_NOP:
break;
case QXL_DRAW_ROP3:
- red->u.rop3 = qxl->u.rop3;
+ red_get_rop3_ptr(slots, group_id, &red->u.rop3, &qxl->u.rop3);
break;
case QXL_DRAW_STROKE:
red->u.stroke = qxl->u.stroke;