diff --git a/frontend/ui/rendertext.lua b/frontend/ui/rendertext.lua index 24b1ca688..c50f12fbc 100644 --- a/frontend/ui/rendertext.lua +++ b/frontend/ui/rendertext.lua @@ -81,7 +81,8 @@ function RenderText:getGlyph(face, charcode, bold) if face.is_real_bold then bold = false -- don't embolden glyphs already bold end - local hash = "glyph|"..face.hash.."|"..charcode.."|"..(bold and 1 or 0) + -- nil is falsy, cache it as such (i.e., we don't want to use tostring here, as that would make it tristate: true/false/nil) + local hash = "glyph|"..face.hash.."|"..charcode.."|"..(bold and "1" or "0") local glyph = GlyphCache:check(hash) if glyph then -- cache hit @@ -288,12 +289,13 @@ end -- @tparam ui.font.FontFaceObj face font face for the text -- @int glyph index -- @bool[opt=false] bold whether the glyph should be artificially boldened +-- @bool[opt=false] bolder whether the glyph should be *even more* artificially boldened (*can* stack with bold, but can also be used solo) -- @treturn glyph function RenderText:getGlyphByIndex(face, glyphindex, bold, bolder) if face.is_real_bold then bold = false -- don't embolden glyphs already bold end - local hash = "xglyph|"..face.hash.."|"..glyphindex.."|"..(bold and 1 or 0)..(bolder and "x" or "") + local hash = "xglyph|"..face.hash.."|"..glyphindex.."|"..(bold and "1" or "0")..(bolder and "x" or "") local glyph = GlyphCache:check(hash) if glyph then -- cache hit diff --git a/frontend/ui/widget/imagewidget.lua b/frontend/ui/widget/imagewidget.lua index 34cc53cb6..57a764c17 100644 --- a/frontend/ui/widget/imagewidget.lua +++ b/frontend/ui/widget/imagewidget.lua @@ -144,7 +144,7 @@ function ImageWidget:_loadfile() width = self.width height = self.height end - local hash = "image|"..self.file.."|"..(width or "").."|"..(height or "")..tostring(self.alpha) + local hash = "image|"..self.file.."|"..tostring(width).."|"..tostring(height).."|"..(self.alpha and "alpha" or "flat") -- Do the scaling for DPI here, so it can be cached and not re-done -- each time in _render() (but not if scale_factor, to avoid double scaling) local scale_for_dpi_here = false