====== Bake A Custom SDF Font! ====== So, you want to make a custom font atlas for the Vulkan renderer! Here's my artisanal recipe, passed down through generations. ===== Ingredients ===== * The [[https://github.com/Chlumsky/msdf-atlas-gen|msdf-atlas-gen]] source code\\ You'll need to clone this recursively, so you get the submodules: git clone --recurse-submodules https://github.com/Chlumsky/msdf-atlas-gen.git * A font file in ''ttf''/''otf'' OpenType formats * A C++ compiler * Cmake * tinyxml2 (install using your package manager, it's ''tinyxml2'' on in Homebrew (''%%brew%%'')) ===== Recipe ===== - Build ''msdf-atlas-gen'' # In the msdf-atlas-gen folder # On macOS/unix-like systems: mkdir build && cd build # create the build folder cmake -DMSDF_ATLAS_USE_VCPKG=OFF -DMSDF_ATLAS_USE_SKIA=OFF .. # generate makefile using cmake make & cd bin # build and go to the output folder - Generate font files! # the magic command ./msdf-atlas-gen -type mtsdf -format png -csv FONTNAME.csv -imageout FONTNAME.png -font PATH_TO_FONT_FILE - Copy the generated ''FONTNAME.csv'' and ''FONTNAME.png'' to the ''vendor/fonts'' folder in folk - Edit line the lines that look like this line in ''display.folk'' to set it as a default # replace the "PTSans-Regular" with FONTNAME [...] {font "PTSans-Regular"} [...] - To use it in programs, do so: # using a wish Wish $this is labelled "Text" with font "FONTNAME" # using display Display::text $x $y $scale $text $radians FONTNAME