# HG changeset patch # User Mike Becker # Date 1700396563 -3600 # Node ID 25013a35e07da123c5d7a99277fae70dc051d075 # Parent c5dde81b6fb285e6a56f6378156f3e54fdef232a fix text rendering for alpha==0 diff -r c5dde81b6fb2 -r 25013a35e07d src/ascension/text.h --- a/src/ascension/text.h Wed Nov 15 22:51:40 2023 +0100 +++ b/src/ascension/text.h Sun Nov 19 13:22:43 2023 +0100 @@ -36,6 +36,7 @@ asc_vec2i position; asc_vec2i dimension; unsigned tex_id; + bool hidden; } AscTextNode; diff -r c5dde81b6fb2 -r 25013a35e07d src/text.c --- a/src/text.c Wed Nov 15 22:51:40 2023 +0100 +++ b/src/text.c Sun Nov 19 13:22:43 2023 +0100 @@ -38,6 +38,12 @@ unsigned max_width, cxmutstr text) { + // short circuit - if fully transparent, just hide it + if (asc_context.ink.alpha == 0) { + node->hidden = true; + return; + } + // Generate new texture, if required if (node->tex_id == 0) { glGenTextures(1, &node->tex_id); @@ -93,6 +99,8 @@ } void asc_text_redraw(AscTextNode *node) { + if (node->hidden) return; + if (node->tex_id == 0) { asc_error("Tried to redraw text node after destruction"); return;