From fff78b60e9805f6703e14e88d4eafc714c09f04d Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 11 Jul 2024 12:03:57 +0200 Subject: [PATCH] gpu: All nodes are implemented Unimplemented nodes are a failure now. We make this a soft failure with a g_warning() so that during development when adding new nodes, the renderer doesn't instantly crash, but instead prnts a warning. But we do consider unimplemented nodes a bug now. Because of that, add_fallback_node() is now renamed to add_cairo_node(). --- gsk/gpu/gskgpunodeprocessor.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gsk/gpu/gskgpunodeprocessor.c b/gsk/gpu/gskgpunodeprocessor.c index d7bc6e031b..f20296b476 100644 --- a/gsk/gpu/gskgpunodeprocessor.c +++ b/gsk/gpu/gskgpunodeprocessor.c @@ -843,8 +843,8 @@ gsk_gpu_node_processor_blur_op (GskGpuNodeProcessor *self, } static void -gsk_gpu_node_processor_add_fallback_node (GskGpuNodeProcessor *self, - GskRenderNode *node) +gsk_gpu_node_processor_add_cairo_node (GskGpuNodeProcessor *self, + GskRenderNode *node) { GskGpuImage *image; graphene_rect_t clipped_bounds; @@ -1681,7 +1681,7 @@ gsk_gpu_node_processor_add_texture_node (GskGpuNodeProcessor *self, gdk_texture_get_format (texture), gdk_texture_get_width (texture), gdk_texture_get_height (texture)); - gsk_gpu_node_processor_add_fallback_node (self, node); + gsk_gpu_node_processor_add_cairo_node (self, node); return; } } @@ -1833,7 +1833,7 @@ gsk_gpu_node_processor_add_texture_scale_node (GskGpuNodeProcessor *self, gdk_texture_get_format (texture), gdk_texture_get_width (texture), gdk_texture_get_height (texture)); - gsk_gpu_node_processor_add_fallback_node (self, node); + gsk_gpu_node_processor_add_cairo_node (self, node); return; } } @@ -3250,7 +3250,7 @@ static const struct [GSK_CAIRO_NODE] = { 0, GSK_GPU_HANDLE_OPACITY, - NULL, + gsk_gpu_node_processor_add_cairo_node, NULL, gsk_gpu_get_cairo_node_as_image, }, @@ -3489,9 +3489,10 @@ gsk_gpu_node_processor_add_node (GskGpuNodeProcessor *self, } else { - GSK_DEBUG (FALLBACK, "Unsupported node '%s'", - g_type_name_from_instance ((GTypeInstance *) node)); - gsk_gpu_node_processor_add_fallback_node (self, node); + g_warning_once ("Unimplemented node '%s'", + g_type_name_from_instance ((GTypeInstance *) node)); + /* Maybe it's implemented in the Cairo renderer? */ + gsk_gpu_node_processor_add_cairo_node (self, node); } }