summaryrefslogtreecommitdiffstats
path: root/server/red_parse_qxl.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/red_parse_qxl.c')
-rw-r--r--server/red_parse_qxl.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c
index c1c6e661..dfdd41d4 100644
--- a/server/red_parse_qxl.c
+++ b/server/red_parse_qxl.c
@@ -117,6 +117,24 @@ static void red_get_text_ptr(RedMemSlotInfo *slots, int group_id,
red->back_mode = qxl->back_mode;
}
+static void red_get_whiteness_ptr(RedMemSlotInfo *slots, int group_id,
+ SpiceWhiteness *red, QXLWhiteness *qxl)
+{
+ red->mask = qxl->mask;
+}
+
+static void red_get_blackness_ptr(RedMemSlotInfo *slots, int group_id,
+ SpiceBlackness *red, QXLBlackness *qxl)
+{
+ red->mask = qxl->mask;
+}
+
+static void red_get_invers_ptr(RedMemSlotInfo *slots, int group_id,
+ SpiceInvers *red, QXLInvers *qxl)
+{
+ red->mask = qxl->mask;
+}
+
void red_get_drawable(RedMemSlotInfo *slots, int group_id,
RedDrawable *red, SPICE_ADDRESS addr)
{
@@ -146,7 +164,7 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
&red->u.alpha_blend, &qxl->u.alpha_blend);
break;
case QXL_DRAW_BLACKNESS:
- red->u.blackness = qxl->u.blackness;
+ red_get_blackness_ptr(slots, group_id, &red->u.blackness, &qxl->u.blackness);
break;
case QXL_DRAW_BLEND:
red_get_blend_ptr(slots, group_id, &red->u.blend, &qxl->u.blend);
@@ -164,7 +182,7 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
red_get_opaque_ptr(slots, group_id, &red->u.opaque, &qxl->u.opaque);
break;
case QXL_DRAW_INVERS:
- red->u.invers = qxl->u.invers;
+ red_get_invers_ptr(slots, group_id, &red->u.invers, &qxl->u.invers);
break;
case QXL_DRAW_NOP:
break;
@@ -182,7 +200,7 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
&red->u.transparent, &qxl->u.transparent);
break;
case QXL_DRAW_WHITENESS:
- red->u.whiteness = qxl->u.whiteness;
+ red_get_whiteness_ptr(slots, group_id, &red->u.whiteness, &qxl->u.whiteness);
break;
default:
red_error("unknown type");
@@ -210,7 +228,7 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
&red->u.alpha_blend, &qxl->u.alpha_blend);
break;
case QXL_DRAW_BLACKNESS:
- red->u.blackness = qxl->u.blackness;
+ red_get_blackness_ptr(slots, group_id, &red->u.blackness, &qxl->u.blackness);
break;
case QXL_DRAW_BLEND:
red_get_blend_ptr(slots, group_id, &red->u.blend, &qxl->u.blend);
@@ -228,7 +246,7 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
red_get_opaque_ptr(slots, group_id, &red->u.opaque, &qxl->u.opaque);
break;
case QXL_DRAW_INVERS:
- red->u.invers = qxl->u.invers;
+ red_get_invers_ptr(slots, group_id, &red->u.invers, &qxl->u.invers);
break;
case QXL_DRAW_NOP:
break;
@@ -246,7 +264,7 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
&red->u.transparent, &qxl->u.transparent);
break;
case QXL_DRAW_WHITENESS:
- red->u.whiteness = qxl->u.whiteness;
+ red_get_whiteness_ptr(slots, group_id, &red->u.whiteness, &qxl->u.whiteness);
break;
default:
red_error("unknown type");