Class KnownFonts

java.lang.Object
com.github.tommyettinger.textra.KnownFonts
All Implemented Interfaces:
com.badlogic.gdx.LifecycleListener

public final class KnownFonts extends Object implements com.badlogic.gdx.LifecycleListener
Preconfigured static Font instances, with any important metric adjustments already applied. This uses a singleton to ensure each font exists at most once, and implements LifecycleListener to ensure that when the disposal stage of the lifecycle is called, then all Font instances here will be disposed and assigned null. This may do more regarding its LifecycleListener code in the future, if Android turns out to need more work.
Typical usage involves calling one of the static methods like getCozette() or getGentiumSDF() to get a particular Font. This knows a fair amount of fonts, but it doesn't require the image assets for all of those to be present in a game -- only the files mentioned in the documentation for a method are needed, and only if you call that method. It's likely that many games would only use one Font, and so would generally only need a .fnt file, a .png file, and some kind of license file. They could ignore all other assets required by other fonts. The files this class needs are looked for in the assets root folder by default, but you can change the names or locations of asset files with setAssetPrefix(String).
There's some documentation for every known Font, including a link to a preview image and a listing of all required files to use a Font. The required files include any license you need to abide by; this doesn't necessarily belong in the assets folder like the rest of the files! Most of these fonts are either licensed under the OFL or some Creative Commons license; the CC ones typically require attribution, but none of the fonts restrict usage to noncommercial projects, and all are free as in beer as well. Please take care to attribute the authors of fonts you use! Good fonts are not easy to make.
There are some special features in Font that are easier to use with parts of this class. getStandardFamily() pre-populates a FontFamily so you can switch between different fonts with the [@Sans] syntax. addEmoji(Font) adds all of Twitter's emoji from the Twemoji project to a given font, which lets you enter emoji with the [+man scientist, dark skin tone] syntax or the generally-easier [+👨🏿‍🔬] syntax. If you want to use names for emoji, you may want to consult "Twemoji.atlas" for the exact names used; some names changed from the standard because of technical restrictions. You can also add the icons from game-icons.net using addGameIcons(Font). There is a preview site for Twemoji, with names, another preview site for OpenMoji, with names, and another preview site for the game icons.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Base name for a fixed-width octagonal font.
    static final String
    Base name for a variable-width serif font.
    static final String
    Base name for a variable-width sans font.
    static final String
    Base name for a fixed-width programming font.
    static final String
    Base name for a variable-width handwriting font.
    static final String
    Base name for a fixed-width pixel font.
    static final String
    Base name for a variable-width sans font.
    static final String
    Base name for a variable-width narrow sans font.
    static final String
    Base name for a fixed-width programming font.
    static final String
    Base name for a variable-width serif font.
    static final String
    Base name for a variable-width narrow serif font.
    static final com.badlogic.gdx.utils.OrderedSet<String>
     
    static final String
    Base name for a variable-width Unicode-heavy serif font.
    static final String
    Base name for a variable-width Unicode-heavy "swashbuckling" serif font.
    static final String
    Base name for a variable-width geometric font.
    static final String
    Base name for a variable-width Unicode-heavy sans font.
    static final String
    Base name for a variable-width heavy-weight serif font.
    static final String
    Base name for a fixed-width CJK-heavy serif font.
    static final String
    Base name for a fixed-width "traditional" pixel font.
    static final String
    Base name for a fixed-width geometric/programming font.
    static final String
    Base name for a fixed-width Unicode-heavy sans font.
    static final String
    Base name for a fixed-width Unicode-heavy slab-serif font.
    static final com.badlogic.gdx.utils.OrderedSet<String>
     
    static final String
    Base name for a variable-width ornate medieval font.
    static final String
    Base name for a variable-width legible medieval font.
    static final String
    Base name for a variable-width Unicode-heavy pixel font.
    static final String
    Base name for a variable-width medium-weight serif font.
    static final String
    Base name for a variable-width heavy-weight serif font.
    static final com.badlogic.gdx.utils.OrderedSet<String>
     
    static final String
    Base name for a variable-width geometric font.
    static final String
    Base name for a variable-width sans font.
    static final String
    Base name for a variable-width geometric sans font.
    static final String
    Base name for a variable-width sci-fi font.
    static final String
    Base name for a tiny variable-width Unicode-heavy pixel font.
    static final String
    Base name for a variable-width narrow sans font.
    static final com.badlogic.gdx.utils.OrderedSet<String>
     
    static final com.badlogic.gdx.utils.OrderedSet<String>
     
    static final com.badlogic.gdx.utils.OrderedSet<String>
     
    static final String
    Base name for a variable-width script font.
    static final String
    Base name for a variable-width humanist sans font.
    static final String
    Base name for a variable-width "dark fantasy" font.
  • Method Summary

    Modifier and Type
    Method
    Description
    static Font
    addEmoji(Font changing)
    Takes a Font and adds the Twemoji icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addEmoji(Font changing, float offsetXChange, float offsetYChange, float xAdvanceChange)
    Takes a Font and adds the Twemoji icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addEmoji(Font changing, String prepend, String append, float offsetXChange, float offsetYChange, float xAdvanceChange)
    Takes a Font and adds the Twemoji icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addGameIcons(Font changing)
    Takes a Font and adds the Game-Icons.net icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addGameIcons(Font changing, float offsetXChange, float offsetYChange, float xAdvanceChange)
    Takes a Font and adds the Game-Icons.net icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addGameIcons(Font changing, String prepend, String append, float offsetXChange, float offsetYChange, float xAdvanceChange)
    Takes a Font and adds the Game-Icons.net icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addOpenMoji(Font changing, boolean color)
    Takes a Font and adds the OpenMoji icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addOpenMoji(Font changing, boolean color, float offsetXChange, float offsetYChange, float xAdvanceChange)
    Takes a Font and adds the OpenMoji icon set to it, making the glyphs available using [+name] syntax.
    static Font
    addOpenMoji(Font changing, boolean color, String prepend, String append, float offsetXChange, float offsetYChange, float xAdvanceChange)
    Takes a Font and adds the OpenMoji icon set to it, making the glyphs available using [+name] syntax.
    void
     
    static Font[]
    Returns a new array of Font instances, calling each getXyz() method in this class that returns any Font.
    static Font[]
    Returns a new array of Font instances, calling getFont(String, DistanceFieldType) on every font name in STANDARD_NAMES with Font.DistanceFieldType.MSDF as the distance field type.
    static Font[]
    Returns a new array of Font instances, calling getFont(String, DistanceFieldType) on every font name in STANDARD_NAMES with Font.DistanceFieldType.SDF as the distance field type.
    static Font[]
    Returns a new array of Font instances, calling getFont(String, DistanceFieldType) on every font name in STANDARD_NAMES with Font.DistanceFieldType.STANDARD as the distance field type (meaning no distance field effect will be used).
    static Font
    Returns a very large fixed-width Font already configured to use a square font with 45-degree angled sections, based on the typeface used on the Atari ST console.
    static Font
    Returns a very large fixed-width Font already configured to use a square font with 45-degree angled sections, based on the typeface used on the Atari ST console.
    static Font
    Returns a very large fixed-width Font already configured to use a square font with 45-degree angled sections, based on the typeface used on the Atari ST console.
    static Font
    Returns a very large fixed-width Font already configured to use a tall font with angled sections, based on the typeface used on the Atari ST console.
    static Font
    Returns a very large fixed-width Font already configured to use a tall font with angled sections, based on the typeface used on the Atari ST console.
    static Font
    Returns a Font already configured to use a light-weight variable-width slab serif font with good Latin and Cyrillic script support, that should scale pretty well from a height of about 160 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a light-weight variable-width slab serif font with good Latin and Cyrillic script support, that should scale pretty well from a height of about 160 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a very-legible variable-width font with strong support for Canadian Aboriginal Syllabic, that should scale pretty well from a height of about 86 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a very-legible variable-width font with strong support for Canadian Aboriginal Syllabic, that should scale pretty well from a height of about 86 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a quirky fixed-width font with good Unicode support and a humanist style, that should scale well from a height of about 60 pixels to about 15 pixels.
    static Font
    Returns a Font already configured to use a quirky fixed-width font with good Unicode support and a humanist style, that should scale well from a height of about 60 pixels to about 15 pixels.
    static Font
    Returns a Font already configured to use a quirky fixed-width font with good Unicode support and a humanist style.
    static Font
    Returns a Font already configured to use a variable-width handwriting font with support for extended Latin and Cyrillic, that should scale pretty well from a height of about 160 down to a height of maybe 20.
    static Font
    Returns a Font already configured to use a variable-width handwriting font with support for extended Latin and Cyrillic, that should scale pretty well from a height of about 160 down to a height of maybe 20.
    static Font
    Returns a Font configured to use a cozy fixed-width bitmap font, Cozette by slavfox.
    static Font
    Returns a Font already configured to use a variable-width sans-serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width sans-serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width narrow sans-serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width narrow sans-serif font with excellent Unicode support.
    static Font
    A nice old standby font with very broad language support, DejaVu Sans Mono is fixed-width and can be clearly readable but doesn't do anything unusual stylistically.
    static Font
    A nice old standby font with very broad language support, DejaVu Sans Mono is fixed-width and can be clearly readable but doesn't do anything unusual stylistically.
    static Font
    Returns a Font already configured to use a variable-width serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width narrow serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width narrow serif font with excellent Unicode support.
    static Font
    Returns a Font (getGentium()) with a FontFamily configured so that 15 Fonts with the given Font.DistanceFieldType can be used with syntax like [@Sans].
    static Font
    getFont(String baseName)
    A general way to get a copied Font from the known set of fonts, this takes a String name (which can be from JSON_NAMES, FNT_NAMES, or SAD_NAMES, or more likely from a constant such as OPEN_SANS) and treats it as using no distance field effect (Font.DistanceFieldType.STANDARD).
    static Font
    getFont(String baseName, Font.DistanceFieldType distanceField)
    A general way to get a copied Font from the known set of fonts, this takes a String name (which can be from JSON_NAMES, FNT_NAMES, or SAD_NAMES, or more likely from a constant such as OPEN_SANS) and a DistanceFieldType (which is usually Font.DistanceFieldType.STANDARD, but could also be Font.DistanceFieldType.SDF, Font.DistanceFieldType.MSDF, or even Font.DistanceFieldType.SDF_OUTLINE).
    static Font
    getGameIconsFont(float width, float height)
    Gets a typically-square Font that is meant to be used in a FontFamily, allowing switching to a Font with the many game-icons.net icons.
    static Font
    Returns a Font already configured to use a variable-width serif font with excellent Unicode support, that should scale well from a height of about 132 down to a height of 24.
    static Font
    Returns a Font already configured to use a variable-width serif font with excellent Unicode support.
    static Font
    Returns a Font already configured to use a variable-width serif font with excellent Unicode support, that should scale cleanly to even very large sizes (using an MSDF technique).
    static Font
    Returns a Font already configured to use a variable-width serif font with excellent Unicode support, that should scale cleanly to even very large sizes (using an SDF technique).
    static Font
    Returns a Font already configured to use a variable-width "italic-like" serif font with excellent Unicode support, that should scale well from a height of about 97 down to a height of 30.
    static Font
    Returns a Font already configured to use a variable-width "italic-like" serif font with excellent Unicode support, that should scale well from a height of about 97 down to a height of 30.
    static Font
    Returns a Font already configured to use a variable-width geometric sans-serif font.
    static Font
    Returns a Font already configured to use a variable-width geometric sans-serif font.
    static Font
    Returns a Font already configured to use a variable-width sans-serif font with extreme pan-Unicode support, that should scale cleanly to medium-small sizes (but not large sizes).
    static Font
    Returns a Font already configured to use a variable-width sans-serif font with extreme pan-Unicode support.
    static Font
    Returns a Font already configured to use a variable-width sans-serif font with extreme pan-Unicode support, that should scale cleanly to even very large sizes (using an SDF technique).
    static Font
    Returns a Font already configured to use a variable-width, heavy-weight, legible gothic font.
    static Font
    Returns a Font already configured to use a variable-width, heavy-weight, legible gothic font.
    static Font
    Returns a Font already configured to use a variable-width, narrow font with nearly-complete CJK character coverage, plus Latin, Greek, and Cyrillic, that should scale pretty well down, but not up.
    static Font
    Returns a Font configured to use a classic, nostalgic fixed-width bitmap font, IBM 8x16 from the early, oft-beloved computer line.
    static Font
    A customized version of Inconsolata LGC, a fixed-width geometric font that supports a large range of Latin, Greek, and Cyrillic glyphs, plus box drawing and some dingbat characters (like zodiac signs).
    static Font
    A customized version of Inconsolata LGC, a fixed-width geometric font that supports a large range of Latin, Greek, and Cyrillic glyphs, plus box drawing and some dingbat characters (like zodiac signs).
    static Font
    A customized version of Inconsolata LGC, a fixed-width geometric font that supports a large range of Latin, Greek, and Cyrillic glyphs, plus box drawing and some dingbat characters (like zodiac signs).
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style.
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style.
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style, that should scale cleanly to even very large sizes (using an MSDF technique).
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style, that should scale cleanly to fairly large sizes (using an SDF technique).
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a slab-serif geometric style.
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style.
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a slab-serif geometric style, that should scale cleanly to even very large sizes (using an MSDF technique).
    static Font
    Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a slab-serif geometric style, that should scale cleanly to fairly large sizes (using an SDF technique).
    static Font
    Returns a Font already configured to use a fairly-legible variable-width ornamental/medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a fairly-legible variable-width ornamental/medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a clearly-legible variable-width medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a clearly-legible variable-width medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30.
    static Font
    Returns a Font already configured to use a variable-width pixel font with excellent Unicode support, that probably should only be used at integer multiples of its normal size.
    static Font
    Returns a Font already configured to use a variable-width serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels.
    static Font
    Returns a Font already configured to use a variable-width serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels.
    static Font
    Returns a Font already configured to use a variable-width heavy-weight serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels.
    static Font
    Returns a Font already configured to use a variable-width heavy-weight serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels.
    static Font
    Returns a Font already configured to use a variable-width geometric sans-serif font, that should scale cleanly to fairly large sizes or down to about 20 pixels.
    static Font
    Returns a Font already configured to use a variable-width geometric sans-serif font, that should scale cleanly to fairly large sizes or down to about 20 pixels.
    static Font
    Returns a Font configured to use a clean variable-width font, Open Sans.
    static Font
    Returns a Font configured to use a clean variable-width font, Open Sans.
    static Font
    Returns a Font configured to use an ALL-CAPS, variable-width, tall, very-heavy-weight sans-serif font, Ostrich Black.
    static Font
    Returns a Font configured to use an ALL-CAPS, variable-width, tall, very-heavy-weight sans-serif font, Ostrich Black.
    static Font
    Returns a Font already configured to use a variable-width "science-fiction/high-tech" font, that should scale pretty well down, but not up.
    static Font
    Returns a Font already configured to use a variable-width "science-fiction/high-tech" font, that should scale pretty well down, but not up.
    static Font
    Returns a Font configured to use a small variable-width bitmap font with extensive coverage of Asian scripts, QuanPixel.
    static Font
    Returns a Font already configured to use a very-legible condensed variable-width font with excellent Unicode support, that should scale pretty well from a height of about 62 down to a height of maybe 20.
    static Font
    Returns a Font already configured to use a very-legible condensed variable-width font with excellent Unicode support.
    static Font
    Returns a Font (getGentium()) with a FontFamily configured so that 15 non-distance-field Fonts can be used with syntax like [@Sans].
    static Font
    Returns a Font already configured to use a variable-width script font, that should scale pretty well down, but not up.
    static Font
    Returns a Font already configured to use a variable-width script font.
    static Font
    Returns a Font already configured to use a variable-width script font, that should scale pretty well down, but not up.
    static Font
    Returns a Font already configured to use a variable-width, narrow, humanist font, that should scale pretty well down, but not up.
    static Font
    Returns a Font already configured to use a variable-width, narrow, humanist font.
    static Font
    Returns a Font already configured to use a variable-width, narrow, humanist font.
    static Font
    Returns a Font already configured to use a variable-width, narrow, "dark fantasy" font.
    static Font
    Returns a Font already configured to use a variable-width, narrow, "dark fantasy" font.
    static Font
    Returns a Font already configured to use a variable-width, narrow, "dark fantasy" font.
    static com.badlogic.gdx.graphics.g2d.TextureAtlas
    loadUnicodeAtlas(com.badlogic.gdx.files.FileHandle packFile, com.badlogic.gdx.files.FileHandle imagesDir, boolean flip)
    This is exactly like TextureAtlas(FileHandle, FileHandle, boolean), except it jumps through some hoops to ensure the atlas is loaded with UTF-8 encoding.
    void
     
    void
     
    static void
    Changes the String prepended to each filename this looks up.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • A_STARRY

      public static final String A_STARRY
      Base name for a fixed-width octagonal font.
      See Also:
    • BITTER

      public static final String BITTER
      Base name for a variable-width serif font.
      See Also:
    • CANADA1500

      public static final String CANADA1500
      Base name for a variable-width sans font.
      See Also:
    • CASCADIA_MONO

      public static final String CASCADIA_MONO
      Base name for a fixed-width programming font.
      See Also:
    • CAVEAT

      public static final String CAVEAT
      Base name for a variable-width handwriting font.
      See Also:
    • DEJAVU_SANS_CONDENSED

      public static final String DEJAVU_SANS_CONDENSED
      Base name for a variable-width narrow sans font.
      See Also:
    • DEJAVU_SANS_MONO

      public static final String DEJAVU_SANS_MONO
      Base name for a fixed-width programming font.
      See Also:
    • DEJAVU_SANS

      public static final String DEJAVU_SANS
      Base name for a variable-width sans font.
      See Also:
    • DEJAVU_SERIF_CONDENSED

      public static final String DEJAVU_SERIF_CONDENSED
      Base name for a variable-width narrow serif font.
      See Also:
    • DEJAVU_SERIF

      public static final String DEJAVU_SERIF
      Base name for a variable-width serif font.
      See Also:
    • GENTIUM

      public static final String GENTIUM
      Base name for a variable-width Unicode-heavy serif font.
      See Also:
    • GENTIUM_UN_ITALIC

      public static final String GENTIUM_UN_ITALIC
      Base name for a variable-width Unicode-heavy "swashbuckling" serif font.
      See Also:
    • GLACIAL_INDIFFERENCE

      public static final String GLACIAL_INDIFFERENCE
      Base name for a variable-width geometric font.
      See Also:
    • GO_NOTO_UNIVERSAL

      public static final String GO_NOTO_UNIVERSAL
      Base name for a variable-width Unicode-heavy sans font.
      See Also:
    • GRENZE

      public static final String GRENZE
      Base name for a variable-width heavy-weight serif font.
      See Also:
    • INCONSOLATA_LGC

      public static final String INCONSOLATA_LGC
      Base name for a fixed-width geometric/programming font.
      See Also:
    • IOSEVKA

      public static final String IOSEVKA
      Base name for a fixed-width Unicode-heavy sans font.
      See Also:
    • IOSEVKA_SLAB

      public static final String IOSEVKA_SLAB
      Base name for a fixed-width Unicode-heavy slab-serif font.
      See Also:
    • KINGTHINGS_FOUNDATION

      public static final String KINGTHINGS_FOUNDATION
      Base name for a variable-width ornate medieval font.
      See Also:
    • KINGTHINGS_PETROCK

      public static final String KINGTHINGS_PETROCK
      Base name for a variable-width legible medieval font.
      See Also:
    • LIBERTINUS_SERIF

      public static final String LIBERTINUS_SERIF
      Base name for a variable-width medium-weight serif font.
      See Also:
    • LIBERTINUS_SERIF_SEMIBOLD

      public static final String LIBERTINUS_SERIF_SEMIBOLD
      Base name for a variable-width heavy-weight serif font.
      See Also:
    • NOW_ALT

      public static final String NOW_ALT
      Base name for a variable-width geometric font.
      See Also:
    • OPEN_SANS

      public static final String OPEN_SANS
      Base name for a variable-width sans font.
      See Also:
    • OSTRICH_BLACK

      public static final String OSTRICH_BLACK
      Base name for a variable-width geometric sans font.
      See Also:
    • OXANIUM

      public static final String OXANIUM
      Base name for a variable-width sci-fi font.
      See Also:
    • ROBOTO_CONDENSED

      public static final String ROBOTO_CONDENSED
      Base name for a variable-width narrow sans font.
      See Also:
    • TANGERINE

      public static final String TANGERINE
      Base name for a variable-width script font.
      See Also:
    • YANONE_KAFFEESATZ

      public static final String YANONE_KAFFEESATZ
      Base name for a variable-width humanist sans font.
      See Also:
    • YATAGHAN

      public static final String YATAGHAN
      Base name for a variable-width "dark fantasy" font.
      See Also:
    • COZETTE

      public static final String COZETTE
      Base name for a fixed-width pixel font.
      See Also:
    • HANAZONO

      public static final String HANAZONO
      Base name for a fixed-width CJK-heavy serif font.
      See Also:
    • LANAPIXEL

      public static final String LANAPIXEL
      Base name for a variable-width Unicode-heavy pixel font.
      See Also:
    • QUANPIXEL

      public static final String QUANPIXEL
      Base name for a tiny variable-width Unicode-heavy pixel font.
      See Also:
    • IBM_8X16

      public static final String IBM_8X16
      Base name for a fixed-width "traditional" pixel font.
      See Also:
    • JSON_NAMES

      public static final com.badlogic.gdx.utils.OrderedSet<String> JSON_NAMES
    • FNT_NAMES

      public static final com.badlogic.gdx.utils.OrderedSet<String> FNT_NAMES
    • SAD_NAMES

      public static final com.badlogic.gdx.utils.OrderedSet<String> SAD_NAMES
    • STANDARD_NAMES

      public static final com.badlogic.gdx.utils.OrderedSet<String> STANDARD_NAMES
    • SDF_NAMES

      public static final com.badlogic.gdx.utils.OrderedSet<String> SDF_NAMES
    • MSDF_NAMES

      public static final com.badlogic.gdx.utils.OrderedSet<String> MSDF_NAMES
  • Method Details

    • setAssetPrefix

      public static void setAssetPrefix(String prefix)
      Changes the String prepended to each filename this looks up. This should end in "/" if the files have the same name but are in a subdirectory (don't use backslashes for paths; they aren't cross-platform compatible). It can end without a "/" to prepend a String to the name of each file this looks up. The default prefix is "".
      Parameters:
      prefix - the new prefix to use before each filename, such as a subdirectory ending in "/"
    • getFont

      public static Font getFont(String baseName)
      A general way to get a copied Font from the known set of fonts, this takes a String name (which can be from JSON_NAMES, FNT_NAMES, or SAD_NAMES, or more likely from a constant such as OPEN_SANS) and treats it as using no distance field effect (Font.DistanceFieldType.STANDARD). It looks up the appropriate file name, respecting asset prefix (see setAssetPrefix(String)), creates the Font if necessary, then returns a copy of it.
      If a more specialized method modifies a Font in the loaded cache when it runs, its effects will not necessarily be shown here.
      Parameters:
      baseName - typically a constant such as OPEN_SANS or LIBERTINUS_SERIF
      Returns:
      a copy of the Font with the given name
    • getFont

      public static Font getFont(String baseName, Font.DistanceFieldType distanceField)
      A general way to get a copied Font from the known set of fonts, this takes a String name (which can be from JSON_NAMES, FNT_NAMES, or SAD_NAMES, or more likely from a constant such as OPEN_SANS) and a DistanceFieldType (which is usually Font.DistanceFieldType.STANDARD, but could also be Font.DistanceFieldType.SDF, Font.DistanceFieldType.MSDF, or even Font.DistanceFieldType.SDF_OUTLINE). It looks up the appropriate file name, respecting asset prefix (see setAssetPrefix(String)), creates the Font if necessary, then returns a copy of it.
      If a more specialized method modifies a Font in the loaded cache when it runs, its effects will not necessarily be shown here.
      Parameters:
      baseName - typically a constant such as OPEN_SANS or LIBERTINUS_SERIF
      distanceField - a DistanceFieldType, usually Font.DistanceFieldType.STANDARD
      Returns:
      a copy of the Font with the given name
    • getAStarry

      public static Font getAStarry()
      Returns a very large fixed-width Font already configured to use a square font with 45-degree angled sections, based on the typeface used on the Atari ST console. This font only supports ASCII, but it supports all of it. Caches the result for later calls. The font is "a-starry", based on "Atari ST (low-res)" by Damien Guard; it is available under a CC-BY-SA-3.0 license, which requires attribution to Damien Guard (and technically Tommy Ettinger, because he made changes in a-starry) if you use it.
      This returns the same thing as KnownFonts.getFont(KnownFonts.A_STARRY, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font A Starry
    • getAStarry

      public static Font getAStarry(Font.DistanceFieldType dft)
      Returns a very large fixed-width Font already configured to use a square font with 45-degree angled sections, based on the typeface used on the Atari ST console. This font only supports ASCII, but it supports all of it. Caches the result for later calls. The font is "a-starry", based on "Atari ST (low-res)" by Damien Guard; it is available under a CC-BY-SA-3.0 license, which requires attribution to Damien Guard (and technically Tommy Ettinger, because he made changes in a-starry) if you use it.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font A Starry
    • getAStarryMSDF

      public static Font getAStarryMSDF()
      Returns a very large fixed-width Font already configured to use a square font with 45-degree angled sections, based on the typeface used on the Atari ST console. This uses the MSDF distance field effect. This font only supports ASCII, but it supports all of it. Caches the result for later calls. The font is "a-starry", based on "Atari ST (low-res)" by Damien Guard; it is available under a CC-BY-SA-3.0 license, which requires attribution to Damien Guard (and technically Tommy Ettinger, because he made changes in a-starry) if you use it.
      This returns the same thing as KnownFonts.getFont(KnownFonts.A_STARRY, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font A Starry
    • getAStarryTall

      public static Font getAStarryTall()
      Returns a very large fixed-width Font already configured to use a tall font with angled sections, based on the typeface used on the Atari ST console. This font only supports ASCII, but it supports all of it. Caches the result for later calls. The font is "a-starry", based on "Atari ST (low-res)" by Damien Guard; it is available under a CC-BY-SA-3.0 license, which requires attribution to Damien Guard (and technically Tommy Ettinger, because he made changes in a-starry) if you use it. This is an extended-height version of a-starry, making it half the width relative to its height, instead of having equal width and height.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font A Starry, with half width
    • getAStarryTall

      public static Font getAStarryTall(Font.DistanceFieldType dft)
      Returns a very large fixed-width Font already configured to use a tall font with angled sections, based on the typeface used on the Atari ST console. This font only supports ASCII, but it supports all of it. Caches the result for later calls. The font is "a-starry", based on "Atari ST (low-res)" by Damien Guard; it is available under a CC-BY-SA-3.0 license, which requires attribution to Damien Guard (and technically Tommy Ettinger, because he made changes in a-starry) if you use it. This is an extended-height version of a-starry, making it half the width relative to its height, instead of having equal width and height.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font A Starry, with half width
    • getBitter

      public static Font getBitter()
      Returns a Font already configured to use a light-weight variable-width slab serif font with good Latin and Cyrillic script support, that should scale pretty well from a height of about 160 down to a height of maybe 30. Caches the result for later calls. The font used is Bitter, a free (OFL) typeface by The Bitter Project. It supports quite a lot of Latin-based scripts and Cyrillic, but does not really cover Greek or any other scripts. This font can look good at its natural size, which uses width roughly equal to height, or squashed so height is slightly smaller. Bitter looks very similar to getGentium(), except that Bitter is quite a bit lighter, with thinner strokes and stylistic flourishes on some glyphs. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.BITTER, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Bitter-Light.ttf
    • getBitter

      public static Font getBitter(Font.DistanceFieldType dft)
      Returns a Font already configured to use a light-weight variable-width slab serif font with good Latin and Cyrillic script support, that should scale pretty well from a height of about 160 down to a height of maybe 30. Caches the result for later calls. The font used is Bitter, a free (OFL) typeface by The Bitter Project. It supports quite a lot of Latin-based scripts and Cyrillic, but does not really cover Greek or any other scripts. This font can look good at its natural size, which uses width roughly equal to height, or squashed so height is slightly smaller. Bitter looks very similar to getGentium(), except that Bitter is quite a bit lighter, with thinner strokes and stylistic flourishes on some glyphs.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Bitter
    • getCanada

      public static Font getCanada()
      Returns a Font already configured to use a very-legible variable-width font with strong support for Canadian Aboriginal Syllabic, that should scale pretty well from a height of about 86 down to a height of maybe 30. Caches the result for later calls. The font used is Canada1500, a free (public domain, via CC0) typeface by Ray Larabie. It supports quite a lot of Latin-based scripts, Greek, Cyrillic, Canadian Aboriginal Syllabic, arrows, many dingbats, and more. This font can look good at its natural size, which uses width roughly equal to height, or narrowed down so width is smaller. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.CANADA1500, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Canada1500
    • getCanada

      public static Font getCanada(Font.DistanceFieldType dft)
      Returns a Font already configured to use a very-legible variable-width font with strong support for Canadian Aboriginal Syllabic, that should scale pretty well from a height of about 86 down to a height of maybe 30. Caches the result for later calls. The font used is Canada1500, a free (public domain, via CC0) typeface by Ray Larabie. It supports quite a lot of Latin-based scripts, Greek, Cyrillic, Canadian Aboriginal Syllabic, arrows, many dingbats, and more. This font can look good at its natural size, which uses width roughly equal to height, or narrowed down so width is smaller.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Canada1500
    • getCascadiaMono

      public static Font getCascadiaMono()
      Returns a Font already configured to use a quirky fixed-width font with good Unicode support and a humanist style, that should scale well from a height of about 60 pixels to about 15 pixels. Caches the result for later calls. The font used is Cascadia Code Mono, an open-source (SIL Open Font License) typeface by Microsoft (see Microsoft's page). It supports a lot of glyphs, including most extended Latin, Greek, Braille, and Cyrillic. This uses a fairly-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.CASCADIA_MONO, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Cascadia Code Mono
    • getCascadiaMono

      public static Font getCascadiaMono(Font.DistanceFieldType dft)
      Returns a Font already configured to use a quirky fixed-width font with good Unicode support and a humanist style, that should scale well from a height of about 60 pixels to about 15 pixels. Caches the result for later calls. The font used is Cascadia Code Mono, an open-source (SIL Open Font License) typeface by Microsoft (see Microsoft's page). It supports a lot of glyphs, including most extended Latin, Greek, Braille, and Cyrillic. This uses a fairly-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Cascadia Code Mono
    • getCascadiaMonoMSDF

      public static Font getCascadiaMonoMSDF()
      Returns a Font already configured to use a quirky fixed-width font with good Unicode support and a humanist style. This uses the MSDF distance field effect. Caches the result for later calls. The font used is Cascadia Code Mono, an open-source (SIL Open Font License) typeface by Microsoft (see Microsoft's page). It supports a lot of glyphs, including most extended Latin, Greek, Braille, and Cyrillic.
      This returns the same thing as KnownFonts.getFont(KnownFonts.CASCADIA_MONO, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Cascadia Code Mono
    • getCaveat

      public static Font getCaveat()
      Returns a Font already configured to use a variable-width handwriting font with support for extended Latin and Cyrillic, that should scale pretty well from a height of about 160 down to a height of maybe 20. It will look sharper and more aliased at smaller sizes, but should be relatively smooth at a height of 32 or so. This is a sort of natural handwriting, as opposed to the formal script in getTangerine(). Caches the result for later calls. The font used is Caveat, a free (OFL) typeface designed by Pablo Impallari. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.CAVEAT, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Caveat
    • getCaveat

      public static Font getCaveat(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width handwriting font with support for extended Latin and Cyrillic, that should scale pretty well from a height of about 160 down to a height of maybe 20. It will look sharper and more aliased at smaller sizes, but should be relatively smooth at a height of 32 or so. This is a sort of natural handwriting, as opposed to the formal script in getTangerine(). Caches the result for later calls. The font used is Caveat, a free (OFL) typeface designed by Pablo Impallari. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Caveat
    • getCozette

      public static Font getCozette()
      Returns a Font configured to use a cozy fixed-width bitmap font, Cozette by slavfox. Cozette has broad coverage of Unicode, including Greek, Cyrillic, Braille, and tech-related icons. This does not scale well except to integer multiples, but it should look very crisp at its default size of 6x17 pixels. This defaults to having Font.integerPosition set to true, which currently does nothing (the code that enforces integer positions seems to ruin the appearance of any font that uses it, so that code isn't ever used now). This may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image link (uses width=6, height=17; this size is small enough to make the scaled text unreadable in some places)
      Needs files:
      Returns:
      the Font object that represents the 6x17px font Cozette
    • getDejaVuSans

      public static Font getDejaVuSans()
      Returns a Font already configured to use a variable-width sans-serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Sans, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This does not use a distance field effect, as opposed to getDejaVuSansMono(). You may want to stick using just fonts that avoid distance fields if you have a family of fonts.
      This returns the same thing as KnownFonts.getFont(KnownFonts.DEJAVU_SANS, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font DejaVuSans.ttf
    • getDejaVuSans

      public static Font getDejaVuSans(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width sans-serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Sans, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font DejaVuSans.ttf
    • getDejaVuSansCondensed

      public static Font getDejaVuSansCondensed()
      Returns a Font already configured to use a variable-width narrow sans-serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Sans Condensed, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This does not use a distance field effect, as opposed to getDejaVuSansMono(). You may want to stick using just fonts that avoid distance fields if you have a family of fonts.
      This returns the same thing as KnownFonts.getFont(KnownFonts.DEJAVU_SANS_CONDENSED, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font DejaVuSansCondensed.ttf
    • getDejaVuSansCondensed

      public static Font getDejaVuSansCondensed(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width narrow sans-serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Sans Condensed, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font DejaVuSansCondensed.ttf
    • getDejaVuSansMono

      public static Font getDejaVuSansMono()
      A nice old standby font with very broad language support, DejaVu Sans Mono is fixed-width and can be clearly readable but doesn't do anything unusual stylistically. It really does handle a lot of glyphs; not only does this have practically all Latin glyphs in Unicode (enough to support everything from Icelandic to Vietnamese), it has Greek (including Extended), Cyrillic (including some optional glyphs), IPA, Armenian (maybe the only font here to do so), Georgian (which won't be treated correctly by some case-insensitive code, so it should only be used if case doesn't matter), and Lao. It has full box drawing and Braille support, handles a wide variety of math symbols, technical marks, and dingbats, etc. This is an open-source typeface included in many Linux distros. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      Note that the name here doesn't include "MSDF" for historical reasons. This omission is part of why using getFont(String, DistanceFieldType) is preferred.
      The crispness is likely too high in this version. You can call KnownFonts.getDejaVuSansMono().setCrispness(0.5f) if you want significantly smoother edges.
      This returns the same thing as KnownFonts.getFont(KnownFonts.DEJAVU_SANS_MONO, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font DejaVu Sans Mono using MSDF
    • getDejaVuSansMono

      public static Font getDejaVuSansMono(Font.DistanceFieldType dft)
      A nice old standby font with very broad language support, DejaVu Sans Mono is fixed-width and can be clearly readable but doesn't do anything unusual stylistically. It really does handle a lot of glyphs; not only does this have practically all Latin glyphs in Unicode (enough to support everything from Icelandic to Vietnamese), it has Greek (including Extended), Cyrillic (including some optional glyphs), IPA, Armenian (maybe the only font here to do so), Georgian (which won't be treated correctly by some case-insensitive code, so it should only be used if case doesn't matter), and Lao. It has full box drawing and Braille support, handles a wide variety of math symbols, technical marks, and dingbats, etc. This is an open-source typeface included in many Linux distros.
      The crispness for the MSDF version is likely too high in this version. You can call KnownFonts.getDejaVuSansMono(Font.DistanceFieldType.MSDF).setCrispness(0.5f) if you want significantly smoother edges.
      Preview: Image preview
      Needs files: or, or
      Returns:
      the Font object that can represent many sizes of the font DejaVu Sans Mono
    • getDejaVuSerif

      public static Font getDejaVuSerif()
      Returns a Font already configured to use a variable-width serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Serif, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This does not use a distance field effect, as opposed to getDejaVuSansMono(). You may want to stick using just fonts that avoid distance fields if you have a family of fonts.
      This returns the same thing as KnownFonts.getFont(KnownFonts.DEJAVU_SERIF, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font DejaVuSerif.ttf
    • getDejaVuSerif

      public static Font getDejaVuSerif(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Serif, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font DejaVuSerif.ttf
    • getDejaVuSerifCondensed

      public static Font getDejaVuSerifCondensed()
      Returns a Font already configured to use a variable-width narrow serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Serif Condensed, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This does not use a distance field effect, as opposed to getDejaVuSansMono(). You may want to stick using just fonts that avoid distance fields if you have a family of fonts.
      This returns the same thing as KnownFonts.getFont(KnownFonts.DEJAVU_SERIF_CONDENSED, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font DejaVuSerifCondensed.ttf
    • getDejaVuSerifCondensed

      public static Font getDejaVuSerifCondensed(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width narrow serif font with excellent Unicode support. Caches the result for later calls. The font used is DejaVu Serif Condensed, an open-source typeface included in many Linux distros. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font DejaVuSerifCondensed.ttf
    • getGentium

      public static Font getGentium()
      Returns a Font already configured to use a variable-width serif font with excellent Unicode support, that should scale well from a height of about 132 down to a height of 24. Caches the result for later calls. The font used is Gentium, an open-source (SIL Open Font License) typeface by SIL (see SIL's page on Gentium here). It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This does not use a distance field effect, as opposed to getGentiumSDF() or getGentiumMSDF(). You may want to stick using just fonts that avoid distance fields if you have a family of fonts. You can also use getStandardFamily() to obtain a variant on this Font that has a FontFamily already.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GENTIUM, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Gentium.ttf
    • getGentiumMSDF

      public static Font getGentiumMSDF()
      Returns a Font already configured to use a variable-width serif font with excellent Unicode support, that should scale cleanly to even very large sizes (using an MSDF technique). Caches the result for later calls. The font used is Gentium, an open-source (SIL Open Font License) typeface by SIL (see SIL's page on Gentium here). It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GENTIUM, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Gentium.ttf using MSDF
    • getGentiumSDF

      public static Font getGentiumSDF()
      Returns a Font already configured to use a variable-width serif font with excellent Unicode support, that should scale cleanly to even very large sizes (using an SDF technique). Caches the result for later calls. The font used is Gentium, an open-source (SIL Open Font License) typeface by SIL (see SIL's page on Gentium here). It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. This uses the Signed Distance Field (SDF) technique, which may be slightly fuzzy when zoomed in heavily, but should be crisp enough when zoomed out.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GENTIUM, Font.DistanceFieldType.SDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Gentium.ttf using SDF
    • getGentium

      public static Font getGentium(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width serif font with excellent Unicode support. Caches the result for later calls. The font used is Gentium, an open-source (SIL Open Font License) typeface by SIL (see SIL's page on Gentium here). It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages.
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Gentium.ttf
    • getGentiumUnItalic

      public static Font getGentiumUnItalic()
      Returns a Font already configured to use a variable-width "italic-like" serif font with excellent Unicode support, that should scale well from a height of about 97 down to a height of 30. Caches the result for later calls. The font used is Gentium, an open-source (SIL Open Font License) typeface by SIL (see SIL's page on Gentium here), but this took Gentium Italic and removed the 8-degree slant it had, so it looks like a regular face but with the different serif style and the "flow" of an italic font. This helps it look closer to carefully-hand-written text mixed with a serif typeface, and may fit well as a main-text font for medieval or Renaissance-period games while something like getKingthingsFoundation() is used for titles or headers. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. Even though glyphs are not especially wide here, this Font does need to be configured with a much larger width than height to be readable. This does not use a distance field effect. You may want to stick using just fonts that avoid distance fields if you have a family of fonts.
      Thanks to Siavash Ranbar, who came up with the idea to take an italic version of a serif font and remove its slant, keeping the different flow from a simple oblique font.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GENTIUM_UN_ITALIC, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Gentium-Un-Italic.ttf
    • getGentiumUnItalic

      public static Font getGentiumUnItalic(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width "italic-like" serif font with excellent Unicode support, that should scale well from a height of about 97 down to a height of 30. Caches the result for later calls. The font used is Gentium, an open-source (SIL Open Font License) typeface by SIL (see SIL's page on Gentium here), but this took Gentium Italic and removed the 8-degree slant it had, so it looks like a regular face but with the different serif style and the "flow" of an italic font. This helps it look closer to carefully-hand-written text mixed with a serif typeface, and may fit well as a main-text font for medieval or Renaissance-period games while something like getKingthingsFoundation() is used for titles or headers. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic, as well as some less-common glyphs from various real languages. Even though glyphs are not especially wide here, this Font does need to be configured with a much larger width than height to be readable. This does not use a distance field effect. You may want to stick using just fonts that avoid distance fields if you have a family of fonts.
      Thanks to Siavash Ranbar, who came up with the idea to take an italic version of a serif font and remove its slant, keeping the different flow from a simple oblique font.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Gentium-Un-Italic.ttf
    • getGlacialIndifference

      public static Font getGlacialIndifference()
      Returns a Font already configured to use a variable-width geometric sans-serif font. This looks similar, but not identical, to getNowAlt(). In particular, this font has a much lighter weight. Caches the result for later calls. The font used is Glacial Indifference, an open-source (SIL Open Font License) typeface. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GLACIAL_INDIFFERENCE, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Glacial Indifference
    • getGlacialIndifference

      public static Font getGlacialIndifference(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width geometric sans-serif font. This looks similar, but not identical, to getNowAlt(). In particular, this font has a much lighter weight. Caches the result for later calls. The font used is Glacial Indifference, an open-source (SIL Open Font License) typeface.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Glacial Indifference
    • getGoNotoUniversal

      public static Font getGoNotoUniversal()
      Returns a Font already configured to use a variable-width sans-serif font with extreme pan-Unicode support, that should scale cleanly to medium-small sizes (but not large sizes). Caches the result for later calls. The font used is Go Noto Universal, an open-source (SIL Open Font License) typeface that modifies Noto Sans by Google (see Go Noto Universal's page is here, and Noto Fonts have a page here). It supports... most glyphs, from many languages, including essentially all extended Latin, Greek, Cyrillic, Chinese, Japanese, Armenian, Ethiopic, Cherokee, Javanese... Most scripts are here, though not Hangul (used for Korean). This also has symbols for math, music, and other usage. The texture this uses is larger than many of the others here, at 4096x4096 pixels, but the file isn't too large; in fact, the 2048x2048 textures Gentium-msdf.png and Twemoji.png are each larger than Go-Noto-Universal-standard.png . The .dat has 21274 glyphs plus extensive kerning info, though, so it is large.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GO_NOTO_UNIVERSAL, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font GoNotoCurrent.ttf
    • getGoNotoUniversalSDF

      public static Font getGoNotoUniversalSDF()
      Returns a Font already configured to use a variable-width sans-serif font with extreme pan-Unicode support, that should scale cleanly to even very large sizes (using an SDF technique). Caches the result for later calls. The font used is Go Noto Universal, an open-source (SIL Open Font License) typeface that modifies Noto Sans by Google (see Go Noto Universal's page is here, and Noto Fonts have a page here). It supports... most glyphs, from many languages, including essentially all extended Latin, Greek, Cyrillic, Chinese, Japanese, Armenian, Ethiopic, Cherokee, Javanese... Most scripts are here, though not Hangul (used for Korean). This also has symbols for math, music, and other usage. The baseline may be slightly uneven at larger sizes, but should even out when height is less than 40 or so. This uses the Signed Distance Field (SDF) technique, which may be slightly fuzzy when zoomed in heavily, but should be crisp enough when zoomed out. The texture this uses is larger than many of the others here, at 4096x4096 pixels, but the file isn't too large; in fact, the 2048x2048 textures Gentium-msdf.png and Twemoji.png are each larger than GoNotoUniversal-sdf.png . The .fnt has 24350 glyphs plus extensive kerning info, though, so it is quite large.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GO_NOTO_UNIVERSAL, Font.DistanceFieldType.SDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font GoNotoCurrent.ttf
    • getGoNotoUniversal

      public static Font getGoNotoUniversal(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width sans-serif font with extreme pan-Unicode support. The font used is Go Noto Universal, an open-source (SIL Open Font License) typeface that modifies Noto Sans by Google (see Go Noto Universal's page is here, and Noto Fonts have a page here). It supports... most glyphs, from many languages, including essentially all extended Latin, Greek, Cyrillic, Chinese, Japanese, Armenian, Ethiopic, Cherokee, Javanese... Most scripts are here, though not Hangul (used for Korean). This also has symbols for math, music, and other usage. The texture this uses is larger than many of the others here, at 4096x4096 pixels, but the file isn't too large; in fact, the 2048x2048 textures Gentium-msdf.png and Twemoji.png are each larger than Go-Noto-Universal-standard.png . The .dat has 21274 glyphs plus extensive kerning info, though, so it is large.
      Preview: Image preview
      Needs files: or, or,
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font GoNotoCurrent.ttf
    • getGrenze

      public static Font getGrenze()
      Returns a Font already configured to use a variable-width, heavy-weight, legible gothic font. Caches the result for later calls. The font used is Grenze, a free (OFL) typeface designed by the Manuale Project. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.GRENZE, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Grenze
    • getGrenze

      public static Font getGrenze(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width, heavy-weight, legible gothic font. Caches the result for later calls. The font used is Grenze, a free (OFL) typeface designed by the Manuale Project.
      Preview: Image preview
      Needs files:
      or,
      or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Grenze
    • getHanazono

      public static Font getHanazono()
      Returns a Font already configured to use a variable-width, narrow font with nearly-complete CJK character coverage, plus Latin, Greek, and Cyrillic, that should scale pretty well down, but not up. Caches the result for later calls. The font used is Hanazono (HanMinA, specifically), a free (OFL) typeface. This uses a somewhat-small standard bitmap font because of how many glyphs are present (over 34000); it might not scale as well as other standard bitmap fonts here. You may want to consider getGoNotoUniversalSDF() if you can use an SDF font, since it scales up with higher quality. Otherwise, this may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image link (uses width=16, height=20)
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font HanMinA.ttf
    • getIBM8x16

      public static Font getIBM8x16()
      Returns a Font configured to use a classic, nostalgic fixed-width bitmap font, IBM 8x16 from the early, oft-beloved computer line. This font is notably loaded from a SadConsole format file, which shouldn't affect how it looks (but in reality, it might). This does not scale except to integer multiples, but it should look very crisp at its default size of 8x16 pixels. This supports some extra characters, but not at the typical Unicode codepoints. This defaults to having Font.integerPosition set to true, which currently does nothing (the code that enforces integer positions seems to ruin the appearance of any font that uses it, so that code isn't ever used now). This may work well in a font family with other fonts that do not use a distance field effect.
      This does not include a license because the source, SadConsole's fonts, did not include one. It is doubtful that IBM would have any issues with respectful use of their signature font throughout the 1980s, but if the legality is concerning, you can use getCozette() or getQuanPixel() for a different bitmap font. There is also getAStarry() for a non-pixel font styled after a font from the same era.
      Preview: Image link (uses width=8, height=16, done with fitCell(8, 16, false))
      Needs files:
      Returns:
      the Font object that represents an 8x16 font included with early IBM computers
    • getInconsolata

      public static Font getInconsolata()
      A customized version of Inconsolata LGC, a fixed-width geometric font that supports a large range of Latin, Greek, and Cyrillic glyphs, plus box drawing and some dingbat characters (like zodiac signs). The original font Inconsolata is by Raph Levien, and various other contributors added support for other languages. This does not use a distance field effect, as opposed to getInconsolataMSDF(). This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.INCONSOLATA_LGC, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Inconsolata LGC Custom
    • getInconsolataMSDF

      public static Font getInconsolataMSDF()
      A customized version of Inconsolata LGC, a fixed-width geometric font that supports a large range of Latin, Greek, and Cyrillic glyphs, plus box drawing and some dingbat characters (like zodiac signs). The original font Inconsolata is by Raph Levien, and various other contributors added support for other languages. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.INCONSOLATA_LGC, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Inconsolata LGC Custom
    • getInconsolata

      public static Font getInconsolata(Font.DistanceFieldType dft)
      A customized version of Inconsolata LGC, a fixed-width geometric font that supports a large range of Latin, Greek, and Cyrillic glyphs, plus box drawing and some dingbat characters (like zodiac signs). The original font Inconsolata is by Raph Levien, and various other contributors added support for other languages. This does not use a distance field effect, as opposed to getInconsolataMSDF(). This may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Inconsolata LGC Custom
    • getIosevka

      public static Font getIosevka()
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style. Does not use a distance field effect. Caches the result for later calls. The font used is Iosevka, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.IOSEVKA, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Iosevka.ttf
    • getIosevkaMSDF

      public static Font getIosevkaMSDF()
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style, that should scale cleanly to even very large sizes (using an MSDF technique). Caches the result for later calls. The font used is Iosevka, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.IOSEVKA, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Iosevka.ttf using MSDF
    • getIosevkaSDF

      public static Font getIosevkaSDF()
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style, that should scale cleanly to fairly large sizes (using an SDF technique). Caches the result for later calls. The font used is Iosevka, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This uses the Signed Distance Field (SDF) technique as opposed to the Multi-channel Signed Distance Field technique that getIosevkaMSDF() uses, which isn't as sharp at large sizes but can look a little better at small sizes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.IOSEVKA, Font.DistanceFieldType.SDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Iosevka.ttf using SDF
    • getIosevka

      public static Font getIosevka(Font.DistanceFieldType dft)
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style. Caches the result for later calls. The font used is Iosevka, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Iosevka.ttf
    • getIosevkaSlab

      public static Font getIosevkaSlab()
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a slab-serif geometric style. Does not use a distance field effect. Caches the result for later calls. The font used is Iosevka with Slab style, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.IOSEVKA_SLAB, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Iosevka-Slab.ttf
    • getIosevkaSlabMSDF

      public static Font getIosevkaSlabMSDF()
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a slab-serif geometric style, that should scale cleanly to even very large sizes (using an MSDF technique). Caches the result for later calls. The font used is Iosevka with Slab style, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.IOSEVKA_SLAB, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Iosevka-Slab.ttf using MSDF
    • getIosevkaSlabSDF

      public static Font getIosevkaSlabSDF()
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a slab-serif geometric style, that should scale cleanly to fairly large sizes (using an SDF technique). Caches the result for later calls. The font used is Iosevka with Slab style, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This Font is already configured with Font.fitCell(float, float, boolean), and repeated calls to fitCell() have an unknown effect; you may want to stick to scaling this and not re-fitting if you encounter issues. This uses the Signed Distance Field (SDF) technique as opposed to the Multi-channel Signed Distance Field technique that getIosevkaSlabMSDF() uses, which isn't as sharp at large sizes but can look a little better at small sizes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.IOSEVKA_SLAB, Font.DistanceFieldType.SDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Iosevka-Slab.ttf using SDF
    • getIosevkaSlab

      public static Font getIosevkaSlab(Font.DistanceFieldType dft)
      Returns a Font already configured to use a highly-legible fixed-width font with good Unicode support and a sans-serif geometric style. Caches the result for later calls. The font used is Iosevka, an open-source (SIL Open Font License) typeface by Belleve Invis, and it uses several customizations thanks to Iosevka's special build process. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Iosevka-Slab.ttf
    • getKingthingsFoundation

      public static Font getKingthingsFoundation()
      Returns a Font already configured to use a fairly-legible variable-width ornamental/medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30. Caches the result for later calls. The font used is Kingthings Foundation, a free (custom permissive license) typeface; this has faux-bold applied already in order to make some ornamental curls visible at more sizes. You can still apply bold again using markup. It supports only ASCII. You may want to also look at Kingthings Petrock; where Petrock is less-ornamented, Foundation is heavily ornamented, and Foundation may make sense for text associated with writers of high social status. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.KINGTHINGS_FOUNDATION, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font KingthingsFoundation.ttf
    • getKingthingsFoundation

      public static Font getKingthingsFoundation(Font.DistanceFieldType dft)
      Returns a Font already configured to use a fairly-legible variable-width ornamental/medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30. Caches the result for later calls. The font used is Kingthings Foundation, a free (custom permissive license) typeface; this has faux-bold applied already in order to make some ornamental curls visible at more sizes. You can still apply bold again using markup. It supports only ASCII. You may want to also look at Kingthings Petrock; where Petrock is less-ornamented, Foundation is heavily ornamented, and Foundation may make sense for text associated with writers of high social status.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font KingthingsFoundation.ttf
    • getKingthingsPetrock

      public static Font getKingthingsPetrock()
      Returns a Font already configured to use a clearly-legible variable-width medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30. Caches the result for later calls. The font used is Kingthings Petrock, a free (custom permissive license) typeface; it has a visual style similar to one used by some popular classic rock bands. It supports only ASCII and a small amount of extended Latin. Kingthings Petrock is similar to Kingthings Foundation, but Petrock isn't as heavily-ornamented, and looks more like "every-day usable" medieval or maybe Renaissance text. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.KINGTHINGS_PETROCK, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font KingthingsPetrock.ttf
    • getKingthingsPetrock

      public static Font getKingthingsPetrock(Font.DistanceFieldType dft)
      Returns a Font already configured to use a clearly-legible variable-width medieval font, that should scale pretty well from a height of about 90 down to a height of maybe 30. Caches the result for later calls. The font used is Kingthings Petrock, a free (custom permissive license) typeface; it has a visual style similar to one used by some popular classic rock bands. It supports only ASCII and a small amount of extended Latin. Kingthings Petrock is similar to Kingthings Foundation, but Petrock isn't as heavily-ornamented, and looks more like "every-day usable" medieval or maybe Renaissance text.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font KingthingsPetrock.ttf
    • getLanaPixel

      public static Font getLanaPixel()
      Returns a Font already configured to use a variable-width pixel font with excellent Unicode support, that probably should only be used at integer multiples of its normal size. Caches the result for later calls. The font used is LanaPixel, an open-source (dual-licensed under the SIL Open Font License and Creative Commons Attribution License) typeface. It supports an incredible amount of glyphs, and is meant to allow localizing to just about any widely-used language. This uses a tiny standard bitmap font, and it can only be used as-is or scaled up by integer multiples. This defaults to having Font.integerPosition set to true, which currently does nothing (the code that enforces integer positions seems to ruin the appearance of any font that uses it, so that code isn't ever used now). This may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image link (uses width=20, height=15)
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font LanaPixel.ttf
    • getLibertinusSerif

      public static Font getLibertinusSerif()
      Returns a Font already configured to use a variable-width serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels. Caches the result for later calls. The font used is Libertinus Serif, an open-source (SIL Open Font License) typeface. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.LIBERTINUS_SERIF, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font LibertinusSerif.ttf
    • getLibertinusSerif

      public static Font getLibertinusSerif(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels. Caches the result for later calls. The font used is Libertinus Serif, an open-source (SIL Open Font License) typeface. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font LibertinusSerif.ttf
    • getLibertinusSerifSemibold

      public static Font getLibertinusSerifSemibold()
      Returns a Font already configured to use a variable-width heavy-weight serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels. Caches the result for later calls. The font used is Libertinus Serif Semibold, an open-source (SIL Open Font License) typeface. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.LIBERTINUS_SERIF_SEMIBOLD, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font LibertinusSerifSemibold.ttf
    • getLibertinusSerifSemibold

      public static Font getLibertinusSerifSemibold(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width heavy-weight serif font with good Unicode support, that should scale cleanly to fairly large sizes or down to about 20 pixels. Caches the result for later calls. The font used is Libertinus Serif Semibold, an open-source (SIL Open Font License) typeface. It supports a lot of glyphs, including quite a bit of extended Latin, Greek, and Cyrillic.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font LibertinusSerifSemibold.ttf
    • getNowAlt

      public static Font getNowAlt()
      Returns a Font already configured to use a variable-width geometric sans-serif font, that should scale cleanly to fairly large sizes or down to about 20 pixels. Caches the result for later calls. The font used is Now Alt, an open-source (SIL Open Font License) typeface by Hanken Design Co. It has decent glyph coverage for most European languages, but doesn't fully support Greek or Cyrillic. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.NOW_ALT, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font NowAlt.otf
    • getNowAlt

      public static Font getNowAlt(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width geometric sans-serif font, that should scale cleanly to fairly large sizes or down to about 20 pixels. Caches the result for later calls. The font used is Now Alt, an open-source (SIL Open Font License) typeface by Hanken Design Co. It has decent glyph coverage for most European languages, but doesn't fully support Greek or Cyrillic.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font NowAlt.otf
    • getOpenSans

      public static Font getOpenSans()
      Returns a Font configured to use a clean variable-width font, Open Sans. It has good extended-Latin coverage, but does not support Greek, Cyrillic, or other scripts. This makes an especially large font by default, but can be scaled down nicely. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.OPEN_SANS, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that represents the variable-width font OpenSans
    • getOpenSans

      public static Font getOpenSans(Font.DistanceFieldType dft)
      Returns a Font configured to use a clean variable-width font, Open Sans. It has good extended-Latin coverage, but does not support Greek, Cyrillic, or other scripts. This makes an especially large font by default, but can be scaled down nicely.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the variable-width font OpenSans
    • getOstrichBlack

      public static Font getOstrichBlack()
      Returns a Font configured to use an ALL-CAPS, variable-width, tall, very-heavy-weight sans-serif font, Ostrich Black. It is OFL-licensed and was made by Tyler Fink.
      This returns the same thing as KnownFonts.getFont(KnownFonts.OSTRICH_BLACK, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that represents the variable-width font Ostrich Black
    • getOstrichBlack

      public static Font getOstrichBlack(Font.DistanceFieldType dft)
      Returns a Font configured to use an ALL-CAPS, variable-width, tall, very-heavy-weight sans-serif font, Ostrich Black. It is OFL-licensed and was made by Tyler Fink.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the variable-width font Ostrich Black
    • getOxanium

      public static Font getOxanium()
      Returns a Font already configured to use a variable-width "science-fiction/high-tech" font, that should scale pretty well down, but not up. Caches the result for later calls. The font used is Oxanium, a free (OFL) typeface. It supports a lot of Latin and extended Latin, but not Greek or Cyrillic. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.OXANIUM, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Oxanium
    • getOxanium

      public static Font getOxanium(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width "science-fiction/high-tech" font, that should scale pretty well down, but not up. Caches the result for later calls. The font used is Oxanium, a free (OFL) typeface. It supports a lot of Latin and extended Latin, but not Greek or Cyrillic.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font Oxanium
    • getQuanPixel

      public static Font getQuanPixel()
      Returns a Font configured to use a small variable-width bitmap font with extensive coverage of Asian scripts, QuanPixel. QuanPixel has good coverage of Unicode, including all of Greek, at least most of Cyrillic, a good amount of extended Latin, all of Katakana and Hiragana, many Hangul syllables, and literally thousands of CJK ideograms. This does not scale well except to integer multiples, but it should look very crisp at its default size of about 8 pixels tall with variable width. This defaults to having Font.integerPosition set to true, which currently does nothing (the code that enforces integer positions seems to ruin the appearance of any font that uses it, so that code isn't ever used now). This may work well in a font family with other fonts that do not use a distance field effect.
      Preview: Image link (uses width=12, height=12; this size is small enough to make the scaled text unreadable in some places)
      Needs files:
      Returns:
      the Font object that represents the 8px tall font QuanPixel
    • getRobotoCondensed

      public static Font getRobotoCondensed()
      Returns a Font already configured to use a very-legible condensed variable-width font with excellent Unicode support, that should scale pretty well from a height of about 62 down to a height of maybe 20. Caches the result for later calls. The font used is Roboto Condensed, a free (Apache 2.0) typeface by Christian Robertson. It supports Latin-based scripts almost entirely, plus Greek, (extended) Cyrillic, and more. This font is meant to be condensed in its natural appearance, but can be scaled to be wider if desired. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.ROBOTO_CONDENSED, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font RobotoCondensed.ttf
    • getRobotoCondensed

      public static Font getRobotoCondensed(Font.DistanceFieldType dft)
      Returns a Font already configured to use a very-legible condensed variable-width font with excellent Unicode support. Caches the result for later calls. The font used is Roboto Condensed, a free (Apache 2.0) typeface by Christian Robertson. It supports Latin-based scripts almost entirely, plus Greek, (extended) Cyrillic, and more. This font is meant to be condensed in its natural appearance, but can be scaled to be wider if desired.
      Preview: Image preview
      Needs files: or, or
      Parameters:
      dft - which distance field type to use, such as Font.DistanceFieldType.STANDARD or Font.DistanceFieldType.SDF
      Returns:
      the Font object that can represent many sizes of the font RobotoCondensed.ttf
    • getTangerine

      public static Font getTangerine()
      Returns a Font already configured to use a variable-width script font, that should scale pretty well down, but not up. Caches the result for later calls. The font used is Tangerine, a free (OFL) typeface. It supports Latin only, with a little support for Western European languages, but not really anything else. It looks elegant, though. This uses a very-large standard bitmap font, which lets it be scaled down OK but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.TANGERINE, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Tangerine.ttf
    • getTangerineSDF

      public static Font getTangerineSDF()
      Returns a Font already configured to use a variable-width script font, that should scale pretty well down, but not up. Caches the result for later calls. The font used is Tangerine, a free (OFL) typeface. It supports Latin only, with a little support for Western European languages, but not really anything else. It looks elegant, though. This uses the Signed Distance Field (SDF) technique, which may be slightly fuzzy when zoomed in heavily, but should be crisp enough when zoomed out.
      This returns the same thing as KnownFonts.getFont(KnownFonts.TANGERINE, Font.DistanceFieldType.SDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Tangerine.ttf using SDF
    • getTangerine

      public static Font getTangerine(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width script font. Caches the result for later calls. The font used is Tangerine, a free (OFL) typeface. It supports Latin only, with a little support for Western European languages, but not really anything else. It looks elegant, though. Using MSDF is currently recommended.
      Preview: Image preview
      Needs files: or, or
      Returns:
      the Font object that can represent many sizes of the font Tangerine.ttf
    • getYanoneKaffeesatz

      public static Font getYanoneKaffeesatz()
      Returns a Font already configured to use a variable-width, narrow, humanist font, that should scale pretty well down, but not up. Caches the result for later calls. The font used is Yanone Kaffeesatz, a free (OFL) typeface. It supports a lot of Latin, Cyrillic, and some extended Latin, but not Greek. This uses a very-large standard bitmap font, which lets it be scaled down nicely but not scaled up very well. This may work well in a font family with other fonts that do not use a distance field effect.
      This returns the same thing as KnownFonts.getFont(KnownFonts.YANONE_KAFFEESATZ, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font YanoneKaffeesatz.ttf
    • getYanoneKaffeesatzMSDF

      public static Font getYanoneKaffeesatzMSDF()
      Returns a Font already configured to use a variable-width, narrow, humanist font. Caches the result for later calls. The font used is Yanone Kaffeesatz, a free (OFL) typeface. It supports a lot of Latin, Cyrillic, and some extended Latin, but not Greek. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      This returns the same thing as KnownFonts.getFont(KnownFonts.YANONE_KAFFEESATZ, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font YanoneKaffeesatz.ttf using MSDF
    • getYanoneKaffeesatz

      public static Font getYanoneKaffeesatz(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width, narrow, humanist font. Caches the result for later calls. The font used is Yanone Kaffeesatz, a free (OFL) typeface. It supports a lot of Latin, Cyrillic, and some extended Latin, but not Greek.
      Preview: Image preview
      Needs files: or, or
      Returns:
      the Font object that can represent many sizes of the font YanoneKaffeesatz.ttf
    • getYataghan

      public static Font getYataghan()
      Returns a Font already configured to use a variable-width, narrow, "dark fantasy" font. Caches the result for later calls. The font used is Yataghan, a widely-distributed typeface. It supports ASCII and some extended Latin, but not much else.
      I don't know who the original author of Yataghan was; if you are the original author and want attribution or want this font removed, please post an issue on the tommyettinger/textratypist GitHub repo, or email tommyettinger.
      This returns the same thing as KnownFonts.getFont(KnownFonts.YATAGHAN, Font.DistanceFieldType.STANDARD); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Yataghan.ttf
    • getYataghanMSDF

      public static Font getYataghanMSDF()
      Returns a Font already configured to use a variable-width, narrow, "dark fantasy" font. Caches the result for later calls. The font used is Yataghan, a widely-distributed typeface. It supports ASCII and some extended Latin, but not much else. This uses the Multi-channel Signed Distance Field (MSDF) technique as opposed to the normal Signed Distance Field technique, which gives the rendered font sharper edges and precise corners instead of rounded tips on strokes.
      I don't know who the original author of Yataghan was; if you are the original author and want attribution or want this font removed, please post an issue on the tommyettinger/textratypist GitHub repo, or email tommyettinger.
      This returns the same thing as KnownFonts.getFont(KnownFonts.YATAGHAN, Font.DistanceFieldType.MSDF); using getFont(String, DistanceFieldType) is preferred in new code unless a font needs special support.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Yataghan.ttf using MSDF
    • getYataghan

      public static Font getYataghan(Font.DistanceFieldType dft)
      Returns a Font already configured to use a variable-width, narrow, "dark fantasy" font. Caches the result for later calls. The font used is Yataghan, a widely-distributed typeface. It supports ASCII and some extended Latin, but not much else.
      I don't know who the original author of Yataghan was; if you are the original author and want attribution or want this font removed, please post an issue on the tommyettinger/textratypist GitHub repo, or email tommyettinger.
      Preview: Image preview
      Needs files:
      Returns:
      the Font object that can represent many sizes of the font Yataghan.ttf using MSDF
    • loadUnicodeAtlas

      public static com.badlogic.gdx.graphics.g2d.TextureAtlas loadUnicodeAtlas(com.badlogic.gdx.files.FileHandle packFile, com.badlogic.gdx.files.FileHandle imagesDir, boolean flip)
      This is exactly like TextureAtlas(FileHandle, FileHandle, boolean), except it jumps through some hoops to ensure the atlas is loaded with UTF-8 encoding. Loading an atlas that uses Unicode names for its TextureRegions can have those names be unusable if TextureAtlas' normal default platform encoding is used; this primarily affects Java versions before 18 where the JVM flag -Dfile.encoding=UTF-8 was missing when a JAR is launched.
      Parameters:
      packFile - the FileHandle for the atlas file
      imagesDir - the FileHandle for the folder that holds the images used by the atlas file
      flip - If true, all regions loaded will be flipped for use with a perspective where 0,0 is the upper left corner.
      Returns:
      a new TextureAtlas loaded from the given files.
    • addEmoji

      public static Font addEmoji(Font changing)
      Takes a Font and adds the Twemoji icon set to it, making the glyphs available using [+name] syntax. You can use the name of an emoji, such as [+clown face], or equivalently use the actual emoji, such as [+🤡], with the latter preferred because the names can be unwieldy or hard to get right. This caches the Twemoji atlas for later calls. This tries to load the files "Twemoji.atlas" and "Twemoji.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are over 3000 emoji in the Twemoji set; it requires attribution to use.
      You can add emoji to a font as inline images with KnownFonts.addEmoji(Font). Emoji don't work at all with MSDF fonts, and don't support more than one color with SDF fonts, but work as intended with "standard" fonts (without a distance field effect). They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. There are over 3000 emoji in the Twemoji set, and they are accessible both by name, using the syntax [+clown face], and by entering the actual emoji, using the syntax [+🤡]. You can search for names in Twemoji.atlas, or use the emoji picker in Skin Composer to navigate by category. You can also use the emoji picker present in some OSes, such as how Win+. allows selecting an emoji on Windows 10 and up. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name or emoji, and Font.namesByCharCode to go from such an internal code to an emoji (as UTF-8).
      Note that there isn't enough available space in a Font to add both emoji with this and icons with addGameIcons(Font). You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      Preview: Image link (uses the font getAStarry() and [%?blacken] mode)
      You can see all emoji and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 3000 emoji added to it, with more aliases
      Returns:
      changing, after the emoji atlas has been added
    • addEmoji

      public static Font addEmoji(Font changing, float offsetXChange, float offsetYChange, float xAdvanceChange)
      Takes a Font and adds the Twemoji icon set to it, making the glyphs available using [+name] syntax. You can use the name of an emoji, such as [+clown face], or equivalently use the actual emoji, such as [+🤡], with the latter preferred because the names can be unwieldy or hard to get right. This caches the Twemoji atlas for later calls. This tries to load the files "Twemoji.atlas" and "Twemoji.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are over 3000 emoji in the Twemoji set; it requires attribution to use.
      Emoji don't work at all with MSDF fonts, and don't support more than one color with SDF fonts, but work as intended with "standard" fonts (without a distance field effect). They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. You can search for names in Twemoji.atlas, or use the emoji picker in Skin Composer to navigate by category. You can also use the emoji picker present in some OSes, such as how Win+. allows selecting an emoji on Windows 10 and up. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name or emoji, and Font.namesByCharCode to go from such an internal code to an emoji (as UTF-8).
      Note that there isn't enough available space in a Font to add both emoji with this and icons with addGameIcons(Font). You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      This overload allows customizing the x/y offsets and x-advance for every emoji this puts in a Font.
      Preview: Image link (uses the font getAStarry() and [%?blacken] mode)
      You can see all emoji and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 3000 emoji added to it, with more aliases
      offsetXChange - will be added to the Font.GlyphRegion.offsetX of each added glyph
      offsetYChange - will be added to the Font.GlyphRegion.offsetY of each added glyph
      xAdvanceChange - will be added to the Font.xAdvance(com.github.tommyettinger.textra.Font, float, long) of each added glyph
      Returns:
      changing, after the emoji atlas has been added
    • addEmoji

      public static Font addEmoji(Font changing, String prepend, String append, float offsetXChange, float offsetYChange, float xAdvanceChange)
      Takes a Font and adds the Twemoji icon set to it, making the glyphs available using [+name] syntax. You can use the name of an emoji, such as [+clown face], or equivalently use the actual emoji, such as [+🤡], with the latter preferred because the names can be unwieldy or hard to get right. This caches the Twemoji atlas for later calls. This tries to load the files "Twemoji.atlas" and "Twemoji.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are over 3000 emoji in the Twemoji set; it requires attribution to use.
      Emoji don't work at all with MSDF fonts, and don't support more than one color with SDF fonts, but work as intended with "standard" fonts (without a distance field effect). They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. You can search for names in Twemoji.atlas, or use the emoji picker in Skin Composer to navigate by category. You can also use the emoji picker present in some OSes, such as how Win+. allows selecting an emoji on Windows 10 and up. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name or emoji, and Font.namesByCharCode to go from such an internal code to an emoji (as UTF-8).
      Note that there isn't enough available space in a Font to add both emoji with this and icons with addGameIcons(Font). You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      This overload allows customizing the x/y offsets and x-advance for every emoji this puts in a Font. It also allows specifying Strings to prepend before and append after each name in the font, including emoji names.
      Preview: Image link (uses the font getAStarry() and [%?blacken] mode)
      You can see all emoji and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 3000 emoji added to it, with more aliases
      prepend - will be prepended before each name in the atlas; if null, will be treated as ""
      append - will be appended after each name in the atlas; if null, will be treated as ""
      offsetXChange - will be added to the Font.GlyphRegion.offsetX of each added glyph
      offsetYChange - will be added to the Font.GlyphRegion.offsetY of each added glyph
      xAdvanceChange - will be added to the Font.xAdvance(com.github.tommyettinger.textra.Font, float, long) of each added glyph
      Returns:
      changing, after the emoji atlas has been added
    • addOpenMoji

      public static Font addOpenMoji(Font changing, boolean color)
      Takes a Font and adds the OpenMoji icon set to it, making the glyphs available using [+name] syntax. You can use the name of an emoji, such as [+clown face], or equivalently use the actual emoji, such as [+🤡], with the latter preferred because the names can be unwieldy or hard to get right. This caches the OpenMoji atlas for later calls. There are two variants on the OpenMoji set here; one is in full color, and the other is line art with white lines (This version can be drawn with a color set using markup or the Batch). This tries to load the files "OpenMoji-color.atlas" and "OpenMoji-color.png" (if loading the full-color set) or "OpenMoji-white.atlas" and "OpenMoji-white.png" (if loading the line art set) from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. OpenMoji is licensed under Creative Commons-Attribution-Share-Alike, so make sure you attribute the OpenMoji project.
      This set of emoji has a different style than the Twemoji used by addEmoji(Font), with more flat areas of one color, frequent appearances of lines only partly covering the inner color, and very consistent patterns for things like the poses of people in emojis. There's also the white-line-only version you can use here, which has no equivalent in Twemoji. OpenMoji probably don't look quite as good at very small sizes when compared to Twemoji, though.
      You can add OpenMoji emoji to a font as inline images with KnownFonts.addOpenMoji(Font, boolean). Emoji don't work at all with MSDF fonts, and don't support more than one color with SDF fonts, but work as intended with "standard" fonts (without a distance field effect). They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. There are over 3700 emoji in the OpenMoji set, and they are accessible both by name, using the syntax [+clown face], and by entering the actual emoji, using the syntax [+🤡]. You can search for names in OpenMoji.atlas, or use the emoji picker in Skin Composer to navigate by category (Skin Composer might not be using the current version of the emoji standard, and it defaults to Twemoji instead of OpenMoji, but most of the usage is the same, and an emoji for Twemoji should also work with OpenMoji). You can also use the emoji picker present in some OSes, such as how Win+. allows selecting an emoji on Windows 10 and up. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name or emoji, and Font.namesByCharCode to go from such an internal code to an emoji (as UTF-8).
      Note that there isn't enough available space in a Font to add both emoji with this and icons with addGameIcons(Font). You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      Preview: Image link (uses white lines, the font getInconsolata(), and [%?whiten] mode)
      You can see all emoji and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 3700 emoji added to it, with more aliases
      Returns:
      changing, after the emoji atlas has been added
    • addOpenMoji

      public static Font addOpenMoji(Font changing, boolean color, float offsetXChange, float offsetYChange, float xAdvanceChange)
      Takes a Font and adds the OpenMoji icon set to it, making the glyphs available using [+name] syntax. You can use the name of an emoji, such as [+clown face], or equivalently use the actual emoji, such as [+🤡], with the latter preferred because the names can be unwieldy or hard to get right. This caches the OpenMoji atlas for later calls. There are two variants on the OpenMoji set here; one is in full color, and the other is line art with white lines (This version can be drawn with a color set using markup or the Batch). This tries to load the files "OpenMoji-color.atlas" and "OpenMoji-color.png" (if loading the full-color set) or "OpenMoji-white.atlas" and "OpenMoji-white.png" (if loading the line art set) from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. OpenMoji is licensed under Creative Commons-Attribution-Share-Alike, so make sure you attribute the OpenMoji project.
      This set of emoji has a different style than the Twemoji used by addEmoji(Font), with more flat areas of one color, frequent appearances of lines only partly covering the inner color, and very consistent patterns for things like the poses of people in emojis. There's also the white-line-only version you can use here, which has no equivalent in Twemoji. OpenMoji probably don't look quite as good at very small sizes when compared to Twemoji, though.
      Emoji don't work at all with MSDF fonts, and don't support more than one color with SDF fonts, but work as intended with "standard" fonts (without a distance field effect). They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. You can search for names in OpenMoji.atlas, or use the emoji picker in Skin Composer to navigate by category. You can also use the emoji picker present in some OSes, such as how Win+. allows selecting an emoji on Windows 10 and up. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name or emoji, and Font.namesByCharCode to go from such an internal code to an emoji (as UTF-8).
      Note that there isn't enough available space in a Font to add both emoji with this and icons with addGameIcons(Font). You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      This overload allows customizing the x/y offsets and x-advance for every emoji this puts in a Font.
      Preview: Image link (uses white lines, the font getInconsolata(), and [%?whiten] mode)
      You can see all emoji and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 3700 emoji added to it, with more aliases
      offsetXChange - will be added to the Font.GlyphRegion.offsetX of each added glyph
      offsetYChange - will be added to the Font.GlyphRegion.offsetY of each added glyph
      xAdvanceChange - will be added to the Font.xAdvance(com.github.tommyettinger.textra.Font, float, long) of each added glyph
      Returns:
      changing, after the emoji atlas has been added
    • addOpenMoji

      public static Font addOpenMoji(Font changing, boolean color, String prepend, String append, float offsetXChange, float offsetYChange, float xAdvanceChange)
      Takes a Font and adds the OpenMoji icon set to it, making the glyphs available using [+name] syntax. You can use the name of an emoji, such as [+clown face], or equivalently use the actual emoji, such as [+🤡], with the latter preferred because the names can be unwieldy or hard to get right. This caches the OpenMoji atlas for later calls. This tries to load the files "OpenMoji.atlas" and "OpenMoji.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are two variants on the OpenMoji set here; one is in full color, and the other is line art with white lines (This version can be drawn with a color set using markup or the Batch). This tries to load the files "OpenMoji-color.atlas" and "OpenMoji-color.png" (if loading the full-color set) or "OpenMoji-white.atlas" and "OpenMoji-white.png" (if loading the line art set) from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. OpenMoji is licensed under Creative Commons-Attribution-Share-Alike, so make sure you attribute the OpenMoji project.
      This set of emoji has a different style than the Twemoji used by addEmoji(Font), with more flat areas of one color, frequent appearances of lines only partly covering the inner color, and very consistent patterns for things like the poses of people in emojis. There's also the white-line-only version you can use here, which has no equivalent in Twemoji. OpenMoji probably don't look quite as good at very small sizes when compared to Twemoji, though.
      Emoji don't work at all with MSDF fonts, and don't support more than one color with SDF fonts, but work as intended with "standard" fonts (without a distance field effect). They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. You can search for names in OpenMoji.atlas, or use the emoji picker in Skin Composer to navigate by category. You can also use the emoji picker present in some OSes, such as how Win+. allows selecting an emoji on Windows 10 and up. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name or emoji, and Font.namesByCharCode to go from such an internal code to an emoji (as UTF-8).
      Note that there isn't enough available space in a Font to add both emoji with this and icons with addGameIcons(Font). You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      This overload allows customizing the x/y offsets and x-advance for every emoji this puts in a Font. It also allows specifying Strings to prepend before and append after each name in the font, including emoji names.
      Preview: Image link (uses white lines, the font getInconsolata(), and [%?whiten] mode)
      You can see all emoji and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 3700 emoji added to it, with more aliases
      prepend - will be prepended before each name in the atlas; if null, will be treated as ""
      append - will be appended after each name in the atlas; if null, will be treated as ""
      offsetXChange - will be added to the Font.GlyphRegion.offsetX of each added glyph
      offsetYChange - will be added to the Font.GlyphRegion.offsetY of each added glyph
      xAdvanceChange - will be added to the Font.xAdvance(com.github.tommyettinger.textra.Font, float, long) of each added glyph
      Returns:
      changing, after the emoji atlas has been added
    • addGameIcons

      public static Font addGameIcons(Font changing)
      Takes a Font and adds the Game-Icons.net icon set to it, making the glyphs available using [+name] syntax. Unlike the emoji used by addEmoji(Font), icons here are always. retrieved by name, and names are always all-lower-case, separated by dashes ('-'). This caches the Game-Icons.net atlas for later calls. This tries to load the files "Game-Icons.atlas" and "Game-Icons.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are 4131 images in this edition of the Game-Icons.net icons (from December 20, 2022), and it requires attribution to use.
      Although these icons might work with MSDF fonts, they should work with standard and SDF fonts. They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. All icons use only the color white with various levels of transparency, so they can be colored like normal text glyphs. You can search for names in Game-Icons.atlas. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name, and Font.namesByCharCode to go from such an internal code to the corresponding name.
      Note that there isn't enough available space in a Font to add both emoji with addEmoji(Font) and icons with this. You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      Preview: Image link (uses the font getNowAlt() and [%?blacken] mode)
      You can see all icons and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 4000 icons added to it
      Returns:
      changing, after the icon atlas has been added
    • addGameIcons

      public static Font addGameIcons(Font changing, float offsetXChange, float offsetYChange, float xAdvanceChange)
      Takes a Font and adds the Game-Icons.net icon set to it, making the glyphs available using [+name] syntax. Unlike the emoji used by addEmoji(Font), icons here are always. retrieved by name, and names are always all-lower-case, separated by dashes ('-'). This caches the Game-Icons.net atlas for later calls. This tries to load the files "Game-Icons.atlas" and "Game-Icons.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are 4131 images in this edition of the Game-Icons.net icons (from December 20, 2022), and it requires attribution to use.
      Although these icons might work with MSDF fonts, they should work with standard and SDF fonts. They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. All icons use only the color white with various levels of transparency, so they can be colored like normal text glyphs. You can search for names in Game-Icons.atlas. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name, and Font.namesByCharCode to go from such an internal code to the corresponding name.
      Note that there isn't enough available space in a Font to add both emoji with addEmoji(Font) and icons with this. You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      This overload allows customizing the x/y offsets and x-advance for every icon this puts in a Font.
      Preview: Image link (uses the font getNowAlt() and [%?blacken] mode)
      You can see all icons and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 4000 icons added to it
      offsetXChange - will be added to the Font.GlyphRegion.offsetX of each added glyph
      offsetYChange - will be added to the Font.GlyphRegion.offsetY of each added glyph
      xAdvanceChange - will be added to the Font.xAdvance(com.github.tommyettinger.textra.Font, float, long) of each added glyph
      Returns:
      changing, after the icon atlas has been added
    • addGameIcons

      public static Font addGameIcons(Font changing, String prepend, String append, float offsetXChange, float offsetYChange, float xAdvanceChange)
      Takes a Font and adds the Game-Icons.net icon set to it, making the glyphs available using [+name] syntax. Unlike the emoji used by addEmoji(Font), icons here are always. retrieved by name, and names are always all-lower-case, separated by dashes ('-'). This caches the Game-Icons.net atlas for later calls. This tries to load the files "Game-Icons.atlas" and "Game-Icons.png" from the internal storage first, and if that fails, it tries to load them from local storage in the current working directory. There are 4131 images in this edition of the Game-Icons.net icons (from December 20, 2022), and it requires attribution to use.
      Although these icons might work with MSDF fonts, they should work with standard and SDF fonts. They can scale reasonably well down, and less-reasonably well up, but at typical text sizes (12-30 pixels in height) they tend to be legible. All icons use only the color white with various levels of transparency, so they can be colored like normal text glyphs. You can search for names in Game-Icons.atlas. Programmatically, you can use Font.nameLookup to look up the internal char this uses for a given name, and Font.namesByCharCode to go from such an internal code to the corresponding name.
      Note that there isn't enough available space in a Font to add both emoji with addEmoji(Font) and icons with this. You can, however, make two copies of a Font, add emoji to one and icons to the other, and put both in a FontFamily, so you can access both atlases in the same block of text.
      This overload allows customizing the x/y offsets and x-advance for every icon this puts in a Font. It also allows specifying Strings to prepend before and append after each name in the font.
      Preview: Image link (uses the font getNowAlt() and [%?blacken] mode)
      You can see all icons and the names they use at this GitHub Pages site.
      Needs files:
      Parameters:
      changing - a Font that will have over 4000 icons added to it
      prepend - will be prepended before each name in the atlas; if null, will be treated as ""
      append - will be appended after each name in the atlas; if null, will be treated as ""
      offsetXChange - will be added to the Font.GlyphRegion.offsetX of each added glyph
      offsetYChange - will be added to the Font.GlyphRegion.offsetY of each added glyph
      xAdvanceChange - will be added to the Font.xAdvance(com.github.tommyettinger.textra.Font, float, long) of each added glyph
      Returns:
      changing, after the icon atlas has been added
    • getGameIconsFont

      public static Font getGameIconsFont(float width, float height)
      Gets a typically-square Font that is meant to be used in a FontFamily, allowing switching to a Font with the many game-icons.net icons. The base Font this uses is getAStarry(), because it is perfectly square by default, and this needs all of A-Starry's assets. It also needs the assets for addGameIcons(Font) to be present, since those will be available with this Font. The name this will use in a FontFamily is "Icons". You can specify the width and height you want for the icons; typically they are the same, because the icons here are square, and you probably want the height to match the line height for your main font. It isn't expected that many users would want to use the non-icon glyphs in the font. The reason this is needed is that you can't fit both the emoji from addEmoji(Font) and the icons from addGameIcons(Font) in one Font, but you can swap between two different Fonts in a FontFamily, one with emoji and one with icons.
      Needs files:
      Parameters:
      width - the width of a single glyph in the returned Font; usually matches the line-height of other text
      height - the height of a single glyph in the returned Font; usually matches the line-height of other text
      Returns:
      a preconfigured Font using getAStarry() and addGameIcons(Font), with name "Icons"
    • pause

      public void pause()
      Specified by:
      pause in interface com.badlogic.gdx.LifecycleListener
    • resume

      public void resume()
      Specified by:
      resume in interface com.badlogic.gdx.LifecycleListener
    • getAll

      public static Font[] getAll()
      Returns a new array of Font instances, calling each getXyz() method in this class that returns any Font. This will only function at all if all the assets (for every known Font) are present and load-able. You should store the result of this method, rather than calling it often, because each call copies many Fonts.
      Returns:
      a new array containing all Font instances this knows
    • getAllStandard

      public static Font[] getAllStandard()
      Returns a new array of Font instances, calling getFont(String, DistanceFieldType) on every font name in STANDARD_NAMES with Font.DistanceFieldType.STANDARD as the distance field type (meaning no distance field effect will be used). This uses the more specific configuration in methods like getCozette() for any .fnt or .font fonts it has to load, as well as for getAStarryTall().
      This will only function at all if all the assets (for every known standard Font) are present and load-able. You should store the result of this method, rather than calling it often, because each call copies many Fonts.
      Returns:
      a new array containing all non-distance-field Font instances this knows
    • getStandardFamily

      public static Font getStandardFamily()
      Returns a Font (getGentium()) with a FontFamily configured so that 15 non-distance-field Fonts can be used with syntax like [@Sans]. The names this supports can be accessed with code using getStandardFamily().family.fontAliases.keys(). These names are: You can also always use the full name of one of these fonts, which can be obtained using Font.getName(). Serif, which is getGentium(), will always be the default font used after a reset. For backwards compatibility, Bitter is an alias for getGentium() (not getBitter()), because Bitter and Gentium look very similar and because a slot was needed. Similarly, Canada is an alias for getNowAlt() (not getCanada()), because they're both geometric heavier-weight typefaces, and as before, a slot was needed.
      This will only function at all if all the assets (for every listed Font) are present and load-able. You should store the result of this method, rather than calling it often, because each call copies many Fonts.
      Returns:
      a Font that can switch between 16 different Fonts in its FontFamily, to any of several Fonts this knows
    • getFamily

      public static Font getFamily(Font.DistanceFieldType dft)
      Returns a Font (getGentium()) with a FontFamily configured so that 15 Fonts with the given Font.DistanceFieldType can be used with syntax like [@Sans]. The names this supports can be accessed with code using getFamily(dft).family.fontAliases.keys(). These names are: You can also always use the full name of one of these fonts, which can be obtained using Font.getName(). Serif, which is getGentium(DistanceFieldType), will always be the default font used after a reset. For backwards compatibility, Bitter is an alias for getGentium(DistanceFieldType) (not getBitter(DistanceFieldType)), because Bitter and Gentium look very similar and because a slot was needed. Similarly, Canada is an alias for getNowAlt(DistanceFieldType) (not getCanada(DistanceFieldType)), because they're both geometric heavier-weight typefaces, and as before, a slot was needed. Both "Retro" and "Cozette" are aliases for getAStarryTall(DistanceFieldType), because those aliases have a meaning in getStandardFamily(), and A Starry Tall is suitable for similar tasks.
      This will only function at all if all the assets (for every listed Font, with the given distance field type) are present and load-able. You should store the result of this method, rather than calling it often, because each call copies many Fonts.
      Returns:
      a Font that can switch between 16 different Fonts in its FontFamily, to any of several Fonts this knows
    • getAllSDF

      public static Font[] getAllSDF()
      Returns a new array of Font instances, calling getFont(String, DistanceFieldType) on every font name in STANDARD_NAMES with Font.DistanceFieldType.SDF as the distance field type. This uses the more specific configuration in getAStarryTall(DistanceFieldType).
      This will only function at all if all the assets (for every known SDF Font) are present and load-able. You should store the result of this method, rather than calling it often, because each call copies many Fonts.
      Returns:
      a new array containing all SDF Font instances this knows
    • getAllMSDF

      public static Font[] getAllMSDF()
      Returns a new array of Font instances, calling getFont(String, DistanceFieldType) on every font name in STANDARD_NAMES with Font.DistanceFieldType.MSDF as the distance field type. This uses the more specific configuration in getAStarryTall(DistanceFieldType).
      This will only function at all if all the assets (for every known MSDF Font) are present and load-able. You should store the result of this method, rather than calling it often, because each call copies many Fonts.
      Returns:
      a new array containing all MSDF Font instances this knows
    • dispose

      public void dispose()
      Specified by:
      dispose in interface com.badlogic.gdx.LifecycleListener