2018-02-04 11:44:31 +00:00
|
|
|
# imgui_freetype
|
|
|
|
|
2021-01-25 16:57:12 +00:00
|
|
|
Build font atlases using FreeType instead of stb_truetype (which is the default font rasterizer).
|
2019-01-10 21:11:27 +00:00
|
|
|
<br>by @vuhdo, @mikesart, @ocornut.
|
2018-02-04 11:44:31 +00:00
|
|
|
|
2019-01-10 21:11:27 +00:00
|
|
|
### Usage
|
|
|
|
|
2020-03-13 17:42:10 +00:00
|
|
|
1. Get latest FreeType binaries or build yourself (under Windows you may use vcpkg with `vcpkg install freetype`, `vcpkg integrate install`).
|
2021-01-25 16:57:12 +00:00
|
|
|
2. Add imgui_freetype.h/cpp alongside your project files.
|
|
|
|
3. Add `#define IMGUI_ENABLE_FREETYPE` in your [imconfig.h](https://github.com/ocornut/imgui/blob/master/imconfig.h) file
|
2018-02-04 11:44:31 +00:00
|
|
|
|
2021-01-25 16:57:12 +00:00
|
|
|
### About Gamma Correct Blending
|
2019-01-10 21:11:27 +00:00
|
|
|
|
2018-02-05 10:21:06 +00:00
|
|
|
FreeType assumes blending in linear space rather than gamma space.
|
|
|
|
See FreeType note for [FT_Render_Glyph](https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Render_Glyph).
|
|
|
|
For correct results you need to be using sRGB and convert to linear space in the pixel shader output.
|
2019-06-11 14:11:19 +00:00
|
|
|
The default Dear ImGui styles will be impacted by this change (alpha values will need tweaking).
|
2018-02-05 10:21:06 +00:00
|
|
|
|
2021-01-25 16:57:12 +00:00
|
|
|
### Testbed for toying with settings (for developers)
|
2018-02-04 11:44:31 +00:00
|
|
|
|
2021-01-25 16:57:12 +00:00
|
|
|
See https://gist.github.com/ocornut/b3a9ecf13502fd818799a452969649ad
|
2018-02-04 11:44:31 +00:00
|
|
|
|
2019-01-10 21:11:27 +00:00
|
|
|
### Known issues
|
2018-02-04 11:44:31 +00:00
|
|
|
|
2021-02-10 17:47:46 +00:00
|
|
|
- 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](https://user-images.githubusercontent.com/8225057/107550178-fef87f00-6bd0-11eb-8d09-e2edb2f0ccfc.gif)
|
2021-05-24 10:49:58 +00:00
|
|
|
|
|
|
|
### Colorful glyphs/emojis
|
|
|
|
|
|
|
|
You can use the `ImGuiFreeTypeBuilderFlags_LoadColor` flag to load certain colorful glyphs. See
|
|
|
|
["Using Colorful Glyphs/Emojis"](https://github.com/ocornut/imgui/edit/master/docs/FONTS.md#using-colorful-glyphsemojis) section of FONTS.md.
|
|
|
|
|
|
|
|
![colored glyphs](https://user-images.githubusercontent.com/8225057/106171241-9dc4ba80-6191-11eb-8a69-ca1467b206d1.png)
|