[gtk/readonly-all-the-things: 1/2] Revert "inspector: Fix node recording"
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/readonly-all-the-things: 1/2] Revert "inspector: Fix node recording"
- Date: Tue, 22 Oct 2019 05:41:40 +0000 (UTC)
commit d3431f569c15ca10ef0e32a89ed9cc22cfa351d8
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Oct 22 01:32:51 2019 -0400
Revert "inspector: Fix node recording"
This reverts commit ba7649b3889c823cdc16983c7552956bc655fa8a.
gsk/gl/gskglrenderer.c | 26 ++++++--------------------
gsk/gskrendernodeimpl.c | 18 ++----------------
gsk/gskrendernodeprivate.h | 6 ++----
3 files changed, 10 insertions(+), 40 deletions(-)
---
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index 5c6d8b3ad1..b39edcca4f 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -537,19 +537,18 @@ render_fallback_node (GskGLRenderer *self,
typedef struct {
int timestamp;
- int stored;
GskGLCachedGlyph *glyphs[];
} TextRenderData;
static inline TextRenderData *
-get_render_data (GskRenderNode *node,
- GskGLGlyphCache *cache)
+ensure_render_data (GskRenderNode *node,
+ GskGLGlyphCache *cache)
{
TextRenderData *data;
int num_glyphs;
num_glyphs = gsk_text_node_get_num_glyphs (node);
- data = gsk_text_node_get_render_data (node, cache);
+ data = gsk_text_node_get_render_data (node);
if (data)
{
if (data->timestamp < cache->atlas_timestamp)
@@ -562,24 +561,13 @@ get_render_data (GskRenderNode *node,
{
data = g_new0 (TextRenderData, sizeof (TextRenderData) + sizeof (gpointer) * num_glyphs);
data->timestamp = cache->atlas_timestamp;
+
+ gsk_text_node_set_render_data (node, data);
}
return data;
}
-static inline void
-set_render_data (GskRenderNode *node,
- GskGLGlyphCache *cache,
- TextRenderData *data)
-{
- if (!data->stored)
- {
- data->stored = 1;
- if (!gsk_text_node_set_render_data (node, cache, data))
- g_free (data);
- }
-}
-
static inline void
render_text_node (GskGLRenderer *self,
GskRenderNode *node,
@@ -610,7 +598,7 @@ render_text_node (GskGLRenderer *self,
ops_set_color (builder, color);
}
- render_data = get_render_data (node, self->glyph_cache);
+ render_data = ensure_render_data (node, self->glyph_cache);
memset (&lookup, 0, sizeof (CacheKeyData));
lookup.data.font = (PangoFont *)font;
@@ -675,8 +663,6 @@ render_text_node (GskGLRenderer *self,
next:
x_position += gi->geometry.width;
}
-
- set_render_data (node, self->glyph_cache, render_data);
}
static inline void
diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c
index 7625c68071..c362a6fa53 100644
--- a/gsk/gskrendernodeimpl.c
+++ b/gsk/gskrendernodeimpl.c
@@ -3414,9 +3414,7 @@ struct _GskTextNode
GdkRGBA color;
graphene_point_t offset;
- gpointer render_key;
gpointer render_data;
-
guint num_glyphs;
PangoGlyphInfo glyphs[];
};
@@ -3549,7 +3547,6 @@ gsk_text_node_new (PangoFont *font,
self->has_color_glyphs = font_has_color_glyphs (font);
self->color = *color;
self->offset = *offset;
- self->render_key = NULL;
self->render_data = NULL;
self->num_glyphs = glyphs->num_glyphs;
memcpy (self->glyphs, glyphs->glyphs, sizeof (PangoGlyphInfo) * glyphs->num_glyphs);
@@ -3631,31 +3628,20 @@ gsk_text_node_get_offset (GskRenderNode *node)
return &self->offset;
}
-gboolean
+void
gsk_text_node_set_render_data (GskRenderNode *node,
- gpointer key,
gpointer data)
{
GskTextNode *self = (GskTextNode *) node;
- if (self->render_key != NULL)
- return FALSE;
-
- self->render_key = key;
self->render_data = data;
-
- return TRUE;
}
gpointer
-gsk_text_node_get_render_data (GskRenderNode *node,
- gpointer key)
+gsk_text_node_get_render_data (GskRenderNode *node)
{
GskTextNode *self = (GskTextNode *) node;
- if (self->render_key != key)
- return NULL;
-
return self->render_data;
}
diff --git a/gsk/gskrendernodeprivate.h b/gsk/gskrendernodeprivate.h
index 9ab3358393..f2fe034444 100644
--- a/gsk/gskrendernodeprivate.h
+++ b/gsk/gskrendernodeprivate.h
@@ -46,11 +46,9 @@ void gsk_render_node_diff (GskRenderNode *nod
void gsk_render_node_diff_impossible (GskRenderNode *node1,
GskRenderNode *node2,
cairo_region_t *region);
-gboolean gsk_text_node_set_render_data (GskRenderNode *node,
- gpointer key,
+void gsk_text_node_set_render_data (GskRenderNode *node,
gpointer data);
-gpointer gsk_text_node_get_render_data (GskRenderNode *node,
- gpointer key);
+gpointer gsk_text_node_get_render_data (GskRenderNode *node);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]