[gtk+] widget: Remove get_render_node() vfunc
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] widget: Remove get_render_node() vfunc
- Date: Tue, 15 Nov 2016 16:58:53 +0000 (UTC)
commit b8710d8962c06ed4d6680f1a937185155730f682
Author: Benjamin Otte <otte redhat com>
Date: Tue Nov 15 17:45:25 2016 +0100
widget: Remove get_render_node() vfunc
gtk/gtkwidget.c | 95 ++++++------------------------------------------
gtk/gtkwidget.h | 2 -
gtk/gtkwidgetprivate.h | 6 ---
3 files changed, 12 insertions(+), 91 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 0f70589..9ed013a 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -6320,7 +6320,6 @@ gtk_cairo_should_draw_window (cairo_t *cr,
typedef enum {
RENDER_SNAPSHOT,
- RENDER_GET_RENDER_NODE,
RENDER_DRAW
} RenderMode;
@@ -6335,8 +6334,6 @@ get_render_mode (GtkWidgetClass *klass)
{
if (klass->snapshot != parent_class->snapshot)
return RENDER_SNAPSHOT;
- else if (klass->get_render_node != parent_class->get_render_node)
- return RENDER_GET_RENDER_NODE;
else if (klass->draw != parent_class->draw)
return RENDER_DRAW;
@@ -6431,28 +6428,6 @@ gtk_widget_draw_internal (GtkWidget *widget,
g_object_unref (fallback);
}
- else if (mode == RENDER_GET_RENDER_NODE)
- {
- GskRenderer *renderer = gtk_widget_get_renderer (widget);
- GskRenderer *fallback;
- graphene_rect_t viewport;
- GskRenderNode *node;
-
- graphene_rect_init (&viewport,
- widget->priv->clip.x,
- widget->priv->clip.y,
- widget->priv->clip.width,
- widget->priv->clip.height);
- fallback = gsk_renderer_create_fallback (renderer, &viewport, cr);
- node = gtk_widget_get_render_node (widget, fallback);
- if (node != NULL)
- {
- gsk_renderer_render (fallback, node, NULL);
- gsk_render_node_unref (node);
- }
-
- g_object_unref (fallback);
- }
else
{
if (g_signal_has_handler_pending (widget, widget_signals[DRAW], 0, FALSE))
@@ -15659,44 +15634,6 @@ gtk_widget_reset_controllers (GtkWidget *widget)
}
}
-GskRenderNode *
-gtk_widget_create_render_node (GtkWidget *widget,
- GskRenderer *renderer,
- const char *name)
-{
- GskRenderNode *res = gsk_renderer_create_render_node (renderer);
- GtkAllocation clip, allocation;
- graphene_rect_t bounds;
-
- gtk_widget_get_clip (widget, &clip);
- gtk_widget_get_allocation (widget, &allocation);
-
- graphene_rect_init (&bounds,
- allocation.x - clip.x, allocation.y - clip.y,
- clip.width, clip.height);
-
- gsk_render_node_set_name (res, name);
- gsk_render_node_set_bounds (res, &bounds);
-
- return res;
-}
-
-GskRenderNode *
-gtk_widget_get_render_node (GtkWidget *widget,
- GskRenderer *renderer)
-{
- GtkSnapshot snapshot;
- GskRenderNode *node;
-
- gtk_snapshot_init (&snapshot, renderer);
-
- gtk_widget_snapshot (widget, &snapshot);
-
- node = gtk_snapshot_finish (&snapshot);
-
- return node;
-}
-
void
gtk_widget_snapshot (GtkWidget *widget,
GtkSnapshot *snapshot)
@@ -15732,37 +15669,29 @@ gtk_widget_snapshot (GtkWidget *widget,
else
{
if (g_signal_has_handler_pending (widget, widget_signals[DRAW], 0, FALSE))
- gtk_snapshot_push (snapshot, &bounds, "DrawSignal<%s>", G_OBJECT_TYPE_NAME (widget));
-
- if (mode == RENDER_SNAPSHOT)
- klass->snapshot (widget, snapshot);
- else
- {
- GskRenderNode *node;
-
- node = klass->get_render_node (widget, gtk_snapshot_get_renderer (snapshot));
- if (node)
- {
- gtk_snapshot_append_node (snapshot, node);
- gsk_render_node_unref (node);
- }
- }
-
- /* Compatibility mode: if there's a ::draw signal handler, we add a
- * child node with the contents of the handler
- */
- if (g_signal_has_handler_pending (widget, widget_signals[DRAW], 0, FALSE))
{
+ /* Compatibility mode: if there's a ::draw signal handler, we add a
+ * child node with the contents of the handler
+ */
gboolean result;
cairo_t *cr;
+ gtk_snapshot_push (snapshot, &bounds, "DrawSignal<%s>", G_OBJECT_TYPE_NAME (widget));
+
+ klass->snapshot (widget, snapshot);
+
cr = gtk_snapshot_append_cairo_node (snapshot,
&bounds,
"DrawSignalContents<%s>", G_OBJECT_TYPE_NAME (widget));
g_signal_emit (widget, widget_signals[DRAW], 0, cr, &result);
cairo_destroy (cr);
+
gtk_snapshot_pop (snapshot);
}
+ else
+ {
+ klass->snapshot (widget, snapshot);
+ }
}
}
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index 23da4e8..7a3f061 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -527,8 +527,6 @@ struct _GtkWidgetClass
GtkWidget *child,
const cairo_region_t *region);
- GskRenderNode *(* get_render_node) (GtkWidget *widget,
- GskRenderer *renderer);
void (* snapshot) (GtkWidget *widget,
GtkSnapshot *snapshot);
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index b54617d..971dc1f 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -284,15 +284,9 @@ void gtk_widget_render (GtkWidget
const cairo_region_t *region);
-GskRenderNode * gtk_widget_get_render_node (GtkWidget *widget,
- GskRenderer *renderer);
void gtk_widget_snapshot (GtkWidget *widget,
GtkSnapshot *snapshot);
-GskRenderNode * gtk_widget_create_render_node (GtkWidget *widget,
- GskRenderer *renderer,
- const char *name);
-
/* inline getters */
static inline gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]