summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-07-15 13:16:37 -0400
committerMatthias Clasen <mclasen@redhat.com>2021-07-15 13:18:23 -0400
commitfd48afb77d27c6d0402f7938e73b4315cb8842c3 (patch)
tree94ba702877580076ea6d12f1f7a6491300481ab4
parentaaa68954c34a31fb95b717f2fed6736037e0d644 (diff)
downloadgtk+-fd48afb77d27c6d0402f7938e73b4315cb8842c3.tar.gz
ngl: Do nothing for transparent color nodes
No need to send commands to the GPU to render transparency.
-rw-r--r--gsk/ngl/gsknglrenderjob.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gsk/ngl/gsknglrenderjob.c b/gsk/ngl/gsknglrenderjob.c
index b876e6e248..8785766612 100644
--- a/gsk/ngl/gsknglrenderjob.c
+++ b/gsk/ngl/gsknglrenderjob.c
@@ -1373,11 +1373,16 @@ static inline void
gsk_ngl_render_job_visit_color_node (GskNglRenderJob *job,
const GskRenderNode *node)
{
+ const GdkRGBA *rgba;
guint16 color[4];
GskNglProgram *program;
GskNglCommandBatch *batch;
- rgba_to_half (gsk_color_node_get_color (node), color);
+ rgba = gsk_color_node_get_color (node);
+ if (gdk_rgba_is_clear (rgba))
+ return;
+
+ rgba_to_half (rgba, color);
/* Avoid switching away from the coloring program for
* rendering a solid color.