summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-06-23 16:24:01 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-06-29 12:30:20 +0200
commitb39b130a84601fec0f0c8d771ac636c7a2b8099a (patch)
tree814c4a79b83de9fe91a6d64448016adb08601d8f
parentc26b574b40e01789471c080af7b1c6c1c976dfc6 (diff)
qxl abi: parse QXLStroke.
-rw-r--r--server/red_parse_qxl.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index cfb2026..b82a6e8 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -96,6 +96,16 @@ static void red_get_rop3_ptr(RedMemSlotInfo *slots, int group_id,
red->mask = qxl->mask;
}
+static void red_get_stroke_ptr(RedMemSlotInfo *slots, int group_id,
+ SpiceStroke *red, QXLStroke *qxl)
+{
+ red->path = qxl->path;
+ red->attr = qxl->attr;
+ red->brush = qxl->brush;
+ red->fore_mode = qxl->fore_mode;
+ red->back_mode = qxl->back_mode;
+}
+
void red_get_drawable(RedMemSlotInfo *slots, int group_id,
RedDrawable *red, SPICE_ADDRESS addr)
{
@@ -151,7 +161,7 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
red_get_rop3_ptr(slots, group_id, &red->u.rop3, &qxl->u.rop3);
break;
case QXL_DRAW_STROKE:
- red->u.stroke = qxl->u.stroke;
+ red_get_stroke_ptr(slots, group_id, &red->u.stroke, &qxl->u.stroke);
break;
case QXL_DRAW_TEXT:
red->u.text = qxl->u.text;
@@ -215,7 +225,7 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
red_get_rop3_ptr(slots, group_id, &red->u.rop3, &qxl->u.rop3);
break;
case QXL_DRAW_STROKE:
- red->u.stroke = qxl->u.stroke;
+ red_get_stroke_ptr(slots, group_id, &red->u.stroke, &qxl->u.stroke);
break;
case QXL_DRAW_TEXT:
red->u.text = qxl->u.text;