You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
ocornut e534c56485 Fonts: Functions with a 'float size_pixels' parameter can accept zero if it is set in ImFontSize::SizePixels. 3 years ago
..
README.md Examples: SDL2: Accomodate for vcpkg install having headers in SDL2/SDL.h vs SDL.h + vcpkg related comments. 3 years ago
imgui_freetype.cpp Fonts: Functions with a 'float size_pixels' parameter can accept zero if it is set in ImFontSize::SizePixels. 3 years ago
imgui_freetype.h Freetype: Enable FreeType bitmap glyphs. (#3879) 4 years ago

README.md

imgui_freetype

Build font atlases using FreeType instead of stb_truetype (which is the default font rasterizer).
by @vuhdo, @mikesart, @ocornut.

Usage

  1. Get latest FreeType binaries or build yourself (under Windows you may use vcpkg with vcpkg install freetype --triplet=x64-windows, vcpkg integrate install).
  2. Add imgui_freetype.h/cpp alongside your project files.
  3. Add #define IMGUI_ENABLE_FREETYPE in your imconfig.h file

About Gamma Correct Blending

FreeType assumes blending in linear space rather than gamma space. See FreeType note for FT_Render_Glyph. For correct results you need to be using sRGB and convert to linear space in the pixel shader output. The default Dear ImGui styles will be impacted by this change (alpha values will need tweaking).

Testbed for toying with settings (for developers)

See https://gist.github.com/ocornut/b3a9ecf13502fd818799a452969649ad

Known issues

  • Oversampling settins are ignored but also not so much necessary with the higher quality rendering.

Comparaison

Small, thin anti-aliased fonts are typically benefiting a lots from Freetype's hinting: comparing_font_rasterizers

Colorful glyphs/emojis

You can use the ImGuiFreeTypeBuilderFlags_LoadColor flag to load certain colorful glyphs. See "Using Colorful Glyphs/Emojis" section of FONTS.md.

colored glyphs