mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-25 03:33:32 +00:00
qxl abi: parse QXLOpaque.
Also adapt to tyops fix (s/rop_decriptor/rop_descriptor/).
This commit is contained in:
parent
ef3e20e29f
commit
08cfd6beaf
@ -2518,7 +2518,7 @@ static void canvas_draw_opaque(SpiceCanvas *spice_canvas, SpiceRect *bbox, Spice
|
||||
canvas_mask_pixman(canvas, &dest_region, &opaque->mask,
|
||||
bbox->left, bbox->top);
|
||||
|
||||
rop = ropd_descriptor_to_rop(opaque->rop_decriptor,
|
||||
rop = ropd_descriptor_to_rop(opaque->rop_descriptor,
|
||||
ROP_INPUT_BRUSH,
|
||||
ROP_INPUT_SRC);
|
||||
|
||||
|
||||
@ -389,7 +389,7 @@ static void gl_canvas_draw_opaque(SpiceCanvas *spice_canvas, SpiceRect *bbox, Sp
|
||||
set_clip(canvas, bbox, clip);
|
||||
set_mask(canvas, &opaque->mask, bbox->left, bbox->top);
|
||||
|
||||
glc_set_op(canvas->glc, (opaque->rop_decriptor & SPICE_ROPD_INVERS_SRC) ? GLC_OP_COPY_INVERTED :
|
||||
glc_set_op(canvas->glc, (opaque->rop_descriptor & SPICE_ROPD_INVERS_SRC) ? GLC_OP_COPY_INVERTED :
|
||||
GLC_OP_COPY);
|
||||
surface = canvas_get_image(&canvas->base, opaque->src_bitmap, FALSE);
|
||||
surface_to_image(canvas, surface, &image, 0);
|
||||
@ -399,7 +399,7 @@ static void gl_canvas_draw_opaque(SpiceCanvas *spice_canvas, SpiceRect *bbox, Sp
|
||||
pixman_image_unref(surface);
|
||||
|
||||
set_brush(canvas, &opaque->brush);
|
||||
set_op(canvas, opaque->rop_decriptor & ~SPICE_ROPD_INVERS_SRC);
|
||||
set_op(canvas, opaque->rop_descriptor & ~SPICE_ROPD_INVERS_SRC);
|
||||
SET_GLC_RECT(&fill_rect, bbox);
|
||||
glc_fill_rect(canvas->glc, &fill_rect);
|
||||
|
||||
|
||||
@ -28,6 +28,17 @@ static void red_get_fill_ptr(RedMemSlotInfo *slots, int group_id,
|
||||
red->mask = qxl->mask;
|
||||
}
|
||||
|
||||
static void red_get_opaque_ptr(RedMemSlotInfo *slots, int group_id,
|
||||
SpiceOpaque *red, QXLOpaque *qxl)
|
||||
{
|
||||
red->src_bitmap = qxl->src_bitmap;
|
||||
red->src_area = qxl->src_area;
|
||||
red->brush = qxl->brush;
|
||||
red->rop_descriptor = qxl->rop_descriptor;
|
||||
red->scale_mode = qxl->scale_mode;
|
||||
red->mask = qxl->mask;
|
||||
}
|
||||
|
||||
static void red_get_alpha_blend_ptr(RedMemSlotInfo *slots, int group_id,
|
||||
SpiceAlphaBlnd *red, QXLAlphaBlnd *qxl)
|
||||
{
|
||||
@ -85,6 +96,9 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
case QXL_DRAW_FILL:
|
||||
red_get_fill_ptr(slots, group_id, &red->u.fill, &qxl->u.fill);
|
||||
break;
|
||||
case QXL_DRAW_OPAQUE:
|
||||
red_get_opaque_ptr(slots, group_id, &red->u.opaque, &qxl->u.opaque);
|
||||
break;
|
||||
case QXL_DRAW_INVERS:
|
||||
red->u.invers = qxl->u.invers;
|
||||
break;
|
||||
@ -105,6 +119,9 @@ void red_get_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
case QXL_DRAW_WHITENESS:
|
||||
red->u.whiteness = qxl->u.whiteness;
|
||||
break;
|
||||
default:
|
||||
red_error("unknown type");
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
@ -139,6 +156,9 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
case QXL_DRAW_FILL:
|
||||
red_get_fill_ptr(slots, group_id, &red->u.fill, &qxl->u.fill);
|
||||
break;
|
||||
case QXL_DRAW_OPAQUE:
|
||||
red_get_opaque_ptr(slots, group_id, &red->u.opaque, &qxl->u.opaque);
|
||||
break;
|
||||
case QXL_DRAW_INVERS:
|
||||
red->u.invers = qxl->u.invers;
|
||||
break;
|
||||
@ -159,6 +179,9 @@ void red_get_compat_drawable(RedMemSlotInfo *slots, int group_id,
|
||||
case QXL_DRAW_WHITENESS:
|
||||
red->u.whiteness = qxl->u.whiteness;
|
||||
break;
|
||||
default:
|
||||
red_error("unknown type");
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -7734,7 +7734,7 @@ static void red_lossy_send_qxl_draw_opaque(RedWorker *worker,
|
||||
BitmapData src_bitmap_data;
|
||||
BitmapData brush_bitmap_data;
|
||||
|
||||
rop = drawable->u.opaque.rop_decriptor;
|
||||
rop = drawable->u.opaque.rop_descriptor;
|
||||
src_allowed_lossy = !((rop & SPICE_ROPD_OP_OR) ||
|
||||
(rop & SPICE_ROPD_OP_AND) ||
|
||||
(rop & SPICE_ROPD_OP_XOR));
|
||||
|
||||
@ -662,7 +662,7 @@ channel DisplayChannel : BaseChannel {
|
||||
Image *src_bitmap;
|
||||
Rect src_area;
|
||||
Brush brush;
|
||||
ropd rop_decriptor;
|
||||
ropd rop_descriptor;
|
||||
image_scale_mode scale_mode;
|
||||
QMask mask @outvar(mask);
|
||||
} data;
|
||||
|
||||
@ -611,7 +611,7 @@ channel DisplayChannel : BaseChannel {
|
||||
Image *src_bitmap;
|
||||
Rect src_area;
|
||||
Brush brush;
|
||||
ropd rop_decriptor;
|
||||
ropd rop_descriptor;
|
||||
image_scale_mode scale_mode;
|
||||
QMask mask @outvar(mask);
|
||||
} data;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user