summaryrefslogtreecommitdiff
path: root/pango-view/viewer-cairo.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2009-03-16 16:32:02 -0400
committerBehdad Esfahbod <behdad@behdad.org>2009-03-16 16:32:02 -0400
commitc4f9a30634779bc985a470df2bc9f7e4fa0e6ad0 (patch)
tree344109f3cf5591ba3afb0a137a18abd3f9250082 /pango-view/viewer-cairo.c
parenta6af36b9c06b81ab8095afff85f68f37c27a4b3b (diff)
downloadpango-c4f9a30634779bc985a470df2bc9f7e4fa0e6ad0.tar.gz
[pango-view] Clear background in _render
Diffstat (limited to 'pango-view/viewer-cairo.c')
-rw-r--r--pango-view/viewer-cairo.c90
1 files changed, 56 insertions, 34 deletions
diff --git a/pango-view/viewer-cairo.c b/pango-view/viewer-cairo.c
index 579076e1..1da05b8a 100644
--- a/pango-view/viewer-cairo.c
+++ b/pango-view/viewer-cairo.c
@@ -33,37 +33,6 @@
#include "viewer-x.h"
#include <cairo-xlib.h>
-static void
-cairo_view_iface_paint_background_over (gpointer instance G_GNUC_UNUSED,
- cairo_t *cr)
-{
- if (opt_bg_set)
- {
- cairo_set_source_rgba (cr,
- opt_bg_color.red / 65535.,
- opt_bg_color.green / 65535.,
- opt_bg_color.blue / 65535.,
- opt_bg_alpha / 65535.);
- cairo_paint (cr);
- }
-}
-
-static void
-cairo_view_iface_paint_background_source (gpointer instance G_GNUC_UNUSED,
- cairo_t *cr)
-{
- if (opt_bg_set)
- {
- cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
- cairo_set_source_rgba (cr,
- opt_bg_color.red / 65535.,
- opt_bg_color.green / 65535.,
- opt_bg_color.blue / 65535.,
- opt_bg_alpha / 65535.);
- cairo_paint (cr);
- }
-}
-
static cairo_surface_t *
@@ -80,10 +49,28 @@ cairo_x_view_iface_create_surface (gpointer instance,
width, height);
}
+static void
+cairo_x_view_iface_paint_background (gpointer instance G_GNUC_UNUSED,
+ cairo_t *cr)
+{
+ cairo_set_source_rgb (cr, 1, 1, 1);
+ cairo_paint (cr);
+
+ if (opt_bg_set)
+ {
+ cairo_set_source_rgba (cr,
+ opt_bg_color.red / 65535.,
+ opt_bg_color.green / 65535.,
+ opt_bg_color.blue / 65535.,
+ opt_bg_alpha / 65535.);
+ cairo_paint (cr);
+ }
+}
+
static CairoViewerIface cairo_x_viewer_iface = {
&x_viewer,
cairo_x_view_iface_create_surface,
- cairo_view_iface_paint_background_over
+ cairo_x_view_iface_paint_background
};
#endif /* HAVE_CAIRO_XLIB */
@@ -154,10 +141,29 @@ const PangoViewer cairo_image_viewer = {
NULL
};
+static void
+cairo_image_view_iface_paint_background (gpointer instance G_GNUC_UNUSED,
+ cairo_t *cr)
+{
+ cairo_set_source_rgb (cr, 1, 1, 1);
+ cairo_paint (cr);
+
+ if (opt_bg_set)
+ {
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+ cairo_set_source_rgba (cr,
+ opt_bg_color.red / 65535.,
+ opt_bg_color.green / 65535.,
+ opt_bg_color.blue / 65535.,
+ opt_bg_alpha / 65535.);
+ cairo_paint (cr);
+ }
+}
+
static CairoViewerIface cairo_image_viewer_iface = {
&cairo_image_viewer,
cairo_view_iface_create_surface,
- cairo_view_iface_paint_background_source
+ cairo_image_view_iface_paint_background
};
@@ -307,10 +313,26 @@ const PangoViewer cairo_vector_viewer = {
NULL
};
+static void
+cairo_vector_view_iface_paint_background (gpointer instance G_GNUC_UNUSED,
+ cairo_t *cr)
+{
+ if (opt_bg_set)
+ {
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+ cairo_set_source_rgba (cr,
+ opt_bg_color.red / 65535.,
+ opt_bg_color.green / 65535.,
+ opt_bg_color.blue / 65535.,
+ opt_bg_alpha / 65535.);
+ cairo_paint (cr);
+ }
+}
+
static CairoViewerIface cairo_vector_viewer_iface = {
&cairo_vector_viewer,
cairo_view_iface_create_surface,
- cairo_view_iface_paint_background_over
+ cairo_vector_view_iface_paint_background
};