summaryrefslogtreecommitdiffstats
path: root/server/red_worker.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/red_worker.c')
-rw-r--r--server/red_worker.c95
1 files changed, 3 insertions, 92 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 0d04cc46..ec1edb14 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -646,14 +646,6 @@ QXLInstance* red_worker_get_qxl(RedWorker *worker)
return worker->qxl;
}
-static inline int is_primary_surface(DisplayChannel *display, uint32_t surface_id)
-{
- if (surface_id == 0) {
- return TRUE;
- }
- return FALSE;
-}
-
static int validate_drawable_bbox(RedWorker *worker, RedDrawable *drawable)
{
DrawContext *context;
@@ -1494,87 +1486,6 @@ static inline void __current_add_drawable(RedWorker *worker, Drawable *drawable,
drawable->refs++;
}
-static int is_equal_path(RedWorker *worker, SpicePath *path1, SpicePath *path2)
-{
- SpicePathSeg *seg1, *seg2;
- int i, j;
-
- if (path1->num_segments != path2->num_segments)
- return FALSE;
-
- for (i = 0; i < path1->num_segments; i++) {
- seg1 = path1->segments[i];
- seg2 = path2->segments[i];
-
- if (seg1->flags != seg2->flags ||
- seg1->count != seg2->count) {
- return FALSE;
- }
- for (j = 0; j < seg1->count; j++) {
- if (seg1->points[j].x != seg2->points[j].x ||
- seg1->points[j].y != seg2->points[j].y) {
- return FALSE;
- }
- }
- }
-
- return TRUE;
-}
-
-// partial imp
-static int is_equal_brush(SpiceBrush *b1, SpiceBrush *b2)
-{
- return b1->type == b2->type &&
- b1->type == SPICE_BRUSH_TYPE_SOLID &&
- b1->u.color == b2->u.color;
-}
-
-// partial imp
-static int is_equal_line_attr(SpiceLineAttr *a1, SpiceLineAttr *a2)
-{
- return a1->flags == a2->flags &&
- a1->style_nseg == a2->style_nseg &&
- a1->style_nseg == 0;
-}
-
-// partial imp
-static int is_same_geometry(RedWorker *worker, Drawable *d1, Drawable *d2)
-{
- if (d1->red_drawable->type != d2->red_drawable->type) {
- return FALSE;
- }
-
- switch (d1->red_drawable->type) {
- case QXL_DRAW_STROKE:
- return is_equal_line_attr(&d1->red_drawable->u.stroke.attr,
- &d2->red_drawable->u.stroke.attr) &&
- is_equal_path(worker, d1->red_drawable->u.stroke.path,
- d2->red_drawable->u.stroke.path);
- case QXL_DRAW_FILL:
- return rect_is_equal(&d1->red_drawable->bbox, &d2->red_drawable->bbox);
- default:
- return FALSE;
- }
-}
-
-static int is_same_drawable(RedWorker *worker, Drawable *d1, Drawable *d2)
-{
- if (!is_same_geometry(worker, d1, d2)) {
- return FALSE;
- }
-
- switch (d1->red_drawable->type) {
- case QXL_DRAW_STROKE:
- return is_equal_brush(&d1->red_drawable->u.stroke.brush,
- &d2->red_drawable->u.stroke.brush);
- case QXL_DRAW_FILL:
- return is_equal_brush(&d1->red_drawable->u.fill.brush,
- &d2->red_drawable->u.fill.brush);
- default:
- return FALSE;
- }
-}
-
static void detach_stream(DisplayChannel *display, Stream *stream,
int detach_sized)
{
@@ -2359,7 +2270,7 @@ static inline int red_current_add_equal(RedWorker *worker, DrawItem *item, TreeI
switch (item->effect) {
case QXL_EFFECT_REVERT_ON_DUP:
- if (is_same_drawable(worker, drawable, other_drawable)) {
+ if (is_same_drawable(drawable, other_drawable)) {
DisplayChannelClient *dcc;
DrawablePipeItem *dpi;
@@ -2401,7 +2312,7 @@ static inline int red_current_add_equal(RedWorker *worker, DrawItem *item, TreeI
}
break;
case QXL_EFFECT_OPAQUE_BRUSH:
- if (is_same_geometry(worker, drawable, other_drawable)) {
+ if (is_same_geometry(drawable, other_drawable)) {
__current_add_drawable(worker, drawable, &other->siblings_link);
remove_drawable(worker, other_drawable);
red_pipes_add_drawable(worker, drawable);
@@ -2409,7 +2320,7 @@ static inline int red_current_add_equal(RedWorker *worker, DrawItem *item, TreeI
}
break;
case QXL_EFFECT_NOP_ON_DUP:
- if (is_same_drawable(worker, drawable, other_drawable)) {
+ if (is_same_drawable(drawable, other_drawable)) {
return TRUE;
}
break;