From 85155b3f441e178858a592341e32a07b82d17dbe Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 22 Jun 2010 17:40:34 +0200 Subject: qxl abi: parse QXLAlphaBlnd (+Compat) --- server/red_parse_qxl.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'server') diff --git a/server/red_parse_qxl.c b/server/red_parse_qxl.c index aafd75a1..cbdbf720 100644 --- a/server/red_parse_qxl.c +++ b/server/red_parse_qxl.c @@ -20,6 +20,23 @@ #include "red_memslots.h" #include "red_parse_qxl.h" +static void red_get_alpha_blend_ptr(RedMemSlotInfo *slots, int group_id, + SpiceAlphaBlnd *red, QXLAlphaBlnd *qxl) +{ + red->alpha_flags = qxl->alpha_flags; + red->alpha = qxl->alpha; + red->src_bitmap = qxl->src_bitmap; + red->src_area = qxl->src_area; +} + +static void red_get_alpha_blend_ptr_compat(RedMemSlotInfo *slots, int group_id, + SpiceAlphaBlnd *red, QXLCompatAlphaBlnd *qxl) +{ + red->alpha = qxl->alpha; + red->src_bitmap = qxl->src_bitmap; + red->src_area = qxl->src_area; +} + void red_get_drawable(RedMemSlotInfo *slots, int group_id, RedDrawable *red, SPICE_ADDRESS addr) { @@ -45,7 +62,8 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id, red->type = qxl->type; switch (red->type) { case QXL_DRAW_ALPHA_BLEND: - red->u.alpha_blend = qxl->u.alpha_blend; + red_get_alpha_blend_ptr(slots, group_id, + &red->u.alpha_blend, &qxl->u.alpha_blend); break; case QXL_DRAW_BLACKNESS: red->u.blackness = qxl->u.blackness; @@ -98,7 +116,8 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id, red->type = qxl->type; switch (red->type) { case QXL_DRAW_ALPHA_BLEND: - red->u.alpha_blend = qxl->u.alpha_blend; + red_get_alpha_blend_ptr_compat(slots, group_id, + &red->u.alpha_blend, &qxl->u.alpha_blend); break; case QXL_DRAW_BLACKNESS: red->u.blackness = qxl->u.blackness; -- cgit