#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 *
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 */
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
};
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
};
DefaultVisual (x->display, x->screen),
DefaultColormap (x->display, x->screen));
- if (opt_bg_set)
- {
- /* XftDrawRect only fills solid.
- * Flatten with white.
- */
- color.color.red = ((opt_bg_color.red * opt_bg_alpha) >> 16) + (65535 - opt_bg_alpha);
- color.color.green = ((opt_bg_color.green * opt_bg_alpha) >> 16) + (65535 - opt_bg_alpha);
- color.color.blue = ((opt_bg_color.blue * opt_bg_alpha) >> 16) + (65535 - opt_bg_alpha);
- color.color.alpha = 65535;
-
- XftDrawRect (draw, &color, 0, 0, *width, *height);
- }
+ /* XftDrawRect only fills solid.
+ * Flatten with white.
+ */
+ color.color.red = ((opt_bg_color.red * opt_bg_alpha) >> 16) + (65535 - opt_bg_alpha);
+ color.color.green = ((opt_bg_color.green * opt_bg_alpha) >> 16) + (65535 - opt_bg_alpha);
+ color.color.blue = ((opt_bg_color.blue * opt_bg_alpha) >> 16) + (65535 - opt_bg_alpha);
+ color.color.alpha = 65535;
+
+ XftDrawRect (draw, &color, 0, 0, *width, *height);
color.color.red = opt_fg_color.red;
color.color.blue = opt_fg_color.green;
{
XViewer *x = (XViewer *) instance;
Pixmap pixmap;
- GC gc;
pixmap = XCreatePixmap (x->display, DefaultRootWindow (x->display), width, height,
DefaultDepth (x->display, x->screen));
- gc = XCreateGC (x->display, pixmap, 0, NULL);
-
- XSetForeground (x->display, gc, WhitePixel (x->display, x->screen));
- XFillRectangle (x->display, pixmap, gc, 0, 0, width, height);
-
- XFreeGC (x->display, gc);
-
return (gpointer) pixmap;
}