[dia/cairo-port] Remove render_pixmap



commit b383934d02d74dcb52cece454c71f39ea9b2c82b
Author: Zander Brown <zbrown gnome org>
Date:   Fri Dec 7 05:25:41 2018 +0000

    Remove render_pixmap
    
    Use cairo for arrow previews

 app/makefile.mingw    |  1 -
 lib/Makefile.am       |  2 --
 lib/diaarrowchooser.c | 36 ++++++++++---------
 lib/makefile.msc      |  1 -
 lib/render_pixmap.c   | 99 ---------------------------------------------------
 lib/render_pixmap.h   | 30 ----------------
 6 files changed, 19 insertions(+), 150 deletions(-)
---
diff --git a/app/makefile.mingw b/app/makefile.mingw
index aa24a1ce..0fb9d49f 100644
--- a/app/makefile.mingw
+++ b/app/makefile.mingw
@@ -68,7 +68,6 @@ OBJECTS = \
        properties-dialog.o \
        recent_files.o \
        render_eps.o \
-       render_pixmap.o \
        scroll_tool.o \
        select.o \
        sheets.o \
diff --git a/lib/Makefile.am b/lib/Makefile.am
index ceb526fd..c77c1b4d 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -191,8 +191,6 @@ libdia_la_SOURCES =  \
                autoroute.h \
                parent.c \
                parent.h \
-               render_pixmap.h \
-               render_pixmap.c \
                diaarrowchooser.h \
                diaarrowchooser.c \
                diaarrowselector.c \
diff --git a/lib/diaarrowchooser.c b/lib/diaarrowchooser.c
index 5185a942..9fbb7ae6 100644
--- a/lib/diaarrowchooser.c
+++ b/lib/diaarrowchooser.c
@@ -28,7 +28,7 @@
 #include "intl.h"
 #include "widgets.h"
 #include "diaarrowchooser.h"
-#include "render_pixmap.h"
+#include "renderer/diacairo.h"
 
 static const char *button_menu_key = "dia-button-menu";
 static const char *menuitem_enum_key = "dia-menuitem-value";
@@ -166,7 +166,7 @@ dia_arrow_preview_expose(GtkWidget *widget, GdkEventExpose *event)
 #endif
     Point from, to;
     Point move_arrow, move_line, arrow_head;
-    DiaRenderer *renderer;
+    DiaCairoRenderer *renderer;
     DiaArrowPreview *arrow = DIA_ARROW_PREVIEW(widget);
     Arrow arrow_type;
     GtkMisc *misc = GTK_MISC(widget);
@@ -175,6 +175,8 @@ dia_arrow_preview_expose(GtkWidget *widget, GdkEventExpose *event)
     GdkWindow *win;
     int linewidth = 2;
     DiaRendererClass *renderer_ops;
+    cairo_surface_t *surface;
+    cairo_t *ctx;
 
     width = widget->allocation.width - misc->xpad * 2;
     height = widget->allocation.height - misc->ypad * 2;
@@ -207,37 +209,37 @@ dia_arrow_preview_expose(GtkWidget *widget, GdkEventExpose *event)
     point_add(&arrow_head, &move_arrow);
     point_add(&to, &move_line);
 
-    renderer = new_pixmap_renderer(win, width, height);
+    surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
+
+    renderer = g_object_new (dia_cairo_renderer_get_type (), NULL);
+    renderer->with_alpha = TRUE;
+    renderer->surface = cairo_surface_reference (surface);
+
     renderer_ops = DIA_RENDERER_GET_CLASS (renderer);
-    renderer_pixmap_set_pixmap(renderer, win, x, y, width, height);
-    renderer_ops->begin_render(renderer, NULL);
-    renderer_ops->set_linewidth(renderer, linewidth);
+    renderer_ops->begin_render(DIA_RENDERER (renderer), NULL);
+    renderer_ops->set_linewidth(DIA_RENDERER (renderer), linewidth);
     {
       Color color_bg, color_fg;
       GtkStyle *style = gtk_widget_get_style (widget);
       /* the text colors are the best approximation to what we had */
-#if GTK_CHECK_VERSION(2,18,0)
       GdkColor bg = style->base[gtk_widget_get_state(widget)];
-#else
-      GdkColor bg = style->base[GTK_WIDGET_STATE(widget)];
-#endif
-#if GTK_CHECK_VERSION(2,18,0)
       GdkColor fg = style->text[gtk_widget_get_state(widget)];
-#else
-      GdkColor fg = style->text[GTK_WIDGET_STATE(widget)];
-#endif
 
       GDK_COLOR_TO_DIA(bg, color_bg);
       GDK_COLOR_TO_DIA(fg, color_fg);
-      renderer_ops->draw_line(renderer, &from, &to, &color_fg);
-      arrow_draw (renderer, arrow_type.type, 
+      renderer_ops->draw_line(DIA_RENDERER (renderer), &from, &to, &color_fg);
+      arrow_draw (DIA_RENDERER (renderer), arrow_type.type, 
                   &arrow_head, &from, 
                  arrow_type.length, 
                  arrow_type.width,
                   linewidth, &color_fg, &color_bg);
     }
-    renderer_ops->end_render(renderer);
+    renderer_ops->end_render(DIA_RENDERER (renderer));
     g_object_unref(renderer);
+
+    ctx = gdk_cairo_create (win);
+    cairo_set_source_surface (ctx, surface, x, y);
+    cairo_paint (ctx);
   }
 
   return TRUE;
diff --git a/lib/makefile.msc b/lib/makefile.msc
index 2c6d20c1..5ac70db4 100644
--- a/lib/makefile.msc
+++ b/lib/makefile.msc
@@ -121,7 +121,6 @@ OBJECTS = \
        propobject.obj \
        propoffsets.obj \
        propregistry.obj \
-       render_pixmap.obj \
        sheet.obj \
        standard-path.obj \
        text.obj \


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]