common/font: avoid rendering semi-transparent background twice

Fill with the background color first only if the background color is
opaque. This is necessary for subpixel rendering to work properly (it
does not work on top of transparency).

However, if the background color is not opaque, leave the buffer
unfilled (completely transparent) since the background is already
rendered by the scene element underneath. In this case we have to
disable subpixel rendering.

v2: use 0.999 alpha cutoff and fix CodeStyleCheck

Fixes: (the rest of) #1684
This commit is contained in:
John Lindgren 2024-04-07 03:26:16 -04:00
parent eb5e855b69
commit 45c60de263
2 changed files with 27 additions and 15 deletions

11
scripts/checkpatch.pl vendored
View file

@ -5655,15 +5655,8 @@ sub process {
$var !~ /^(?:Clear|Set|TestClear|TestSet|)Page[A-Z]/ &&
#labwc-custom check to ignore some pango/libxml2/etc CamelCase variants
$var !~ /^(?:PangoLayout|PangoFontDescription)/ &&
$var !~ /^(?:PangoTabArray|PangoRectangle)/ &&
$var !~ /^(?:PangoWeight|_PangoFontDescription)/ &&
$var !~ /^(?:xmlNode|xmlIsBlankNode|xmlAttr)/ &&
$var !~ /^(?:xmlGetProp|xmlChar|xmlDoc)/ &&
$var !~ /^(?:xmlReadFile|xmlDocGetRootElement)/ &&
$var !~ /^(?:xmlFreeDoc|xmlCleanupParser)/ &&
$var !~ /^(?:xmlParseMemory)/ &&
$var !~ /^(?:xmlFree)/ &&
$var !~ /^(?:_?Pango\w+)/ &&
$var !~ /^(?:xml\w+)/ &&
$var !~ /^(?:GString|GError)/ &&
$var !~ /^(?:RsvgRectangle|RsvgHandle)/ &&
$var !~ /^(?:XKB_KEY_XF86Switch_VT_1)/ &&