mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 14:31:10 +00:00
496c8f4a11
The current implementation of the glyph cache deals with atlases by padding them with 1 pixel at the beginning, at the end, and between each glyph. That's cool and all, however, there's a very subtle problem with this approach: the contents of the atlas are garbage, so this padding is filled with garbage memory! Rework the Vulkan glyph cache to draw each and every glyph in a surface that has 1 pixel border of padding around it. Ensure the surface is completely black by drawing a rectangle before handing it to Pango to draw the glyph. Update tx and ty to pick the texture position adjusted to the 1 pixel padding. The atlas now starts at position (0, 0), since each glyph individually contains its own padding. To improve legibility, add a PADDING define and use it everywhere. |
||
---|---|---|
.. | ||
broadway | ||
gl | ||
vulkan | ||
gen-gsk-gresources-xml.py | ||
gsk.h | ||
gskcairoblur.c | ||
gskcairoblurprivate.h | ||
gskcairorenderer.c | ||
gskcairorenderer.h | ||
gskdebug.c | ||
gskdebugprivate.h | ||
gskdiff.c | ||
gskdiffprivate.h | ||
gskenums.h | ||
gskenumtypes.c.template | ||
gskenumtypes.h.template | ||
gskglshader.c | ||
gskglshader.h | ||
gskglshaderprivate.h | ||
gskprivate.c | ||
gskprivate.h | ||
gskprofiler.c | ||
gskprofilerprivate.h | ||
gskrenderer.c | ||
gskrenderer.h | ||
gskrendererprivate.h | ||
gskrendernode.c | ||
gskrendernode.h | ||
gskrendernodeimpl.c | ||
gskrendernodeparser.c | ||
gskrendernodeparserprivate.h | ||
gskrendernodeprivate.h | ||
gskroundedrect.c | ||
gskroundedrect.h | ||
gskroundedrectprivate.h | ||
gsktransform.c | ||
gsktransform.h | ||
gsktransformprivate.h | ||
gsktypes.h | ||
meson.build |