{
rt_overlay_free(rc, od);
}
+
+ gtk_widget_queue_draw(GTK_WIDGET(rc->pr));
}
#else
void renderer_tiles_overlay_set(void *renderer, gint id, GdkPixbuf *pixbuf, gint x, gint y)
rt->surface = gdk_window_create_similar_surface(gtk_widget_get_window(widget), CAIRO_CONTENT_COLOR, gtk_widget_get_allocated_width(widget), gtk_widget_get_allocated_height(widget));
cr = cairo_create(rt->surface);
- cairo_set_source_rgb(cr, (gdouble)options->image.border_color.red /65535, (gdouble)options->image.border_color.green / 65535, (gdouble)options->image.border_color.blue / 65535);
+ cairo_set_source_rgb(cr, (gdouble)rt->pr->color.red / 65535, (gdouble)rt->pr->color.green / 65535, (gdouble)rt->pr->color.blue / 65535);
cairo_paint(cr);
cairo_destroy(cr);
}
GList *work;
OverlayData *od;
- cairo_set_source_surface (cr, rt->surface, 0, 0);
- cairo_paint(cr);
+ if (rt->stereo_mode & (PR_STEREO_HORIZ | PR_STEREO_VERT))
+ {
+ cairo_push_group(cr);
+ cairo_set_source_rgb(cr, (double)rt->pr->color.red / 65535, (double)rt->pr->color.green / 65535, (double)rt->pr->color.blue / 65535);
+
+ if (rt->stereo_mode & PR_STEREO_HORIZ)
+ {
+ cairo_rectangle(cr, rt->stereo_off_x, 0, rt->pr->viewport_width, rt->pr->viewport_height);
+ }
+ else
+ {
+ cairo_rectangle(cr, 0, rt->stereo_off_y, rt->pr->viewport_width, rt->pr->viewport_height);
+ }
+ cairo_clip(cr);
+ cairo_paint(cr);
+
+ cairo_rectangle(cr, rt->pr->x_offset + rt->stereo_off_x, rt->pr->y_offset + rt->stereo_off_y, rt->pr->vis_width, rt->pr->vis_height);
+ cairo_clip(cr);
+ cairo_set_source_surface(cr, rt->surface, 0, 0);
+ cairo_paint(cr);
+
+ cairo_pop_group_to_source(cr);
+ cairo_paint(cr);
+ }
+ else
+ {
+ cairo_set_source_surface(cr, rt->surface, 0, 0);
+ cairo_paint(cr);
+ }
work = rt->overlay_list;
while (work)