[gtk/wip/baedert/nodeeditor: 34/42] nodeparser: Parse blur nodes
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/nodeeditor: 34/42] nodeparser: Parse blur nodes
- Date: Wed, 24 Apr 2019 11:40:00 +0000 (UTC)
commit 31590f8ede3926c86f9e77131dbfecf392d6526f
Author: Timm Bäder <mail baedert org>
Date: Wed Apr 24 10:50:05 2019 +0200
nodeparser: Parse blur nodes
gsk/gskrendernodeparser.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
---
diff --git a/gsk/gskrendernodeparser.c b/gsk/gskrendernodeparser.c
index e117086d1c..c19da9d763 100644
--- a/gsk/gskrendernodeparser.c
+++ b/gsk/gskrendernodeparser.c
@@ -889,8 +889,8 @@ static GskRenderNode *
parse_text_node (GtkCssParser *parser)
{
PangoFont *font = NULL;
- float x = 0;
- float y = 0;
+ double x = 0;
+ double y = 0;
GdkRGBA color = { 0, 0, 0, 0 };
const Declaration declarations[] = {
{ "font", parse_font, &font },
@@ -905,6 +905,26 @@ parse_text_node (GtkCssParser *parser)
return gsk_color_node_new (&color, &GRAPHENE_RECT_INIT (x, y - 10, 100, 20));
}
+static GskRenderNode *
+parse_blur_node (GtkCssParser *parser)
+{
+ GskRenderNode *child = NULL;
+ double blur_radius = 0.0;
+ const Declaration declarations[] = {
+ { "blur", parse_double, &blur_radius },
+ { "child", parse_node, &child },
+ };
+
+ parse_declarations (parser, declarations, G_N_ELEMENTS(declarations));
+ if (child == NULL)
+ {
+ gtk_css_parser_error_syntax (parser, "Missing \"child\" property definition");
+ return NULL;
+ }
+
+ return gsk_blur_node_new (child, blur_radius);
+}
+
static GskRenderNode *
parse_clip_node (GtkCssParser *parser)
{
@@ -997,9 +1017,7 @@ parse_node (GtkCssParser *parser,
#endif
{ "cross-fade", parse_cross_fade_node },
{ "text", parse_text_node },
-#if 0
{ "blur", parse_blur_node },
-#endif
{ "debug", parse_debug_node }
};
GskRenderNode **node_p = out_node;
@@ -1677,7 +1695,7 @@ render_node_print (Printer *p,
{
start_node (p, "blur");
- append_float_param (p, "radius", gsk_blur_node_get_radius (node));
+ append_float_param (p, "blur", gsk_blur_node_get_radius (node));
append_node_param (p, "child", gsk_blur_node_get_child (node));
end_node (p);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]