2014-08-30 23:02:55 +04:00
|
|
|
|
2015-01-18 15:19:49 +03:00
|
|
|
The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' that you can use without any external files.
|
2015-04-07 13:15:18 +03:00
|
|
|
Those are only provided as a convenience, you can load your own .TTF files.
|
2015-01-18 15:19:49 +03:00
|
|
|
|
|
|
|
---------------------------------
|
|
|
|
LOADING INSTRUCTIONS
|
|
|
|
---------------------------------
|
2014-08-30 23:02:55 +04:00
|
|
|
|
2015-07-15 16:01:21 +03:00
|
|
|
Load default font with:
|
|
|
|
|
|
|
|
ImGuiIO& io = ImGui::GetIO();
|
|
|
|
io.Fonts->AddFontDefault();
|
|
|
|
|
2015-01-18 15:19:49 +03:00
|
|
|
Load .TTF file with:
|
|
|
|
|
|
|
|
ImGuiIO& io = ImGui::GetIO();
|
2015-08-06 07:00:27 +03:00
|
|
|
io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
|
2015-01-09 02:49:17 +03:00
|
|
|
|
2015-07-15 16:01:21 +03:00
|
|
|
Detailed options:
|
|
|
|
|
|
|
|
ImFontConfig config;
|
|
|
|
config.OversampleH = 3;
|
|
|
|
config.OversampleV = 3;
|
|
|
|
config.GlyphExtraSpacing.x = 1.0f;
|
2015-08-06 07:00:27 +03:00
|
|
|
io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
|
2015-07-15 16:01:21 +03:00
|
|
|
|
2015-08-06 06:59:07 +03:00
|
|
|
Combine two fonts into one:
|
2015-07-15 16:01:21 +03:00
|
|
|
|
|
|
|
// Load main font
|
|
|
|
io.Fonts->AddFontDefault();
|
|
|
|
|
|
|
|
// Add character ranges and merge into main font
|
2015-10-25 19:06:42 +03:00
|
|
|
// The ranges array is not copied by the AddFont* functions and is used lazily
|
|
|
|
// so ensure it is available for duration of font usage
|
2015-11-29 14:11:03 +03:00
|
|
|
static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
|
2015-07-15 16:01:21 +03:00
|
|
|
ImFontConfig config;
|
|
|
|
config.MergeMode = true;
|
2015-11-29 14:11:03 +03:00
|
|
|
io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
|
|
|
|
io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
|
2015-07-15 16:01:21 +03:00
|
|
|
|
|
|
|
Add a fourth parameter to bake specific font ranges only:
|
2014-08-30 23:02:55 +04:00
|
|
|
|
2015-08-06 06:59:07 +03:00
|
|
|
// Basic Latin, Extended Latin
|
2015-08-06 07:00:27 +03:00
|
|
|
io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
|
2015-08-06 06:59:07 +03:00
|
|
|
|
|
|
|
// Include full set of about 21000 CJK Unified Ideographs
|
2015-08-06 07:00:27 +03:00
|
|
|
io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
|
2015-08-06 06:59:07 +03:00
|
|
|
|
|
|
|
// Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
|
2015-08-06 07:00:27 +03:00
|
|
|
io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
|
2014-09-26 04:20:56 +04:00
|
|
|
|
2015-07-02 17:16:23 +03:00
|
|
|
Offset font vertically by altering the io.Font->DisplayOffset value:
|
2014-09-26 04:20:56 +04:00
|
|
|
|
2015-08-06 07:00:27 +03:00
|
|
|
ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
|
2015-01-18 15:19:49 +03:00
|
|
|
font->DisplayOffset.y += 1; // Render 1 pixel down
|
2014-08-30 23:02:55 +04:00
|
|
|
|
2015-08-06 06:59:07 +03:00
|
|
|
---------------------------------
|
|
|
|
EMBED A FONT IN SOURCE CODE
|
|
|
|
---------------------------------
|
|
|
|
|
2015-07-02 17:16:23 +03:00
|
|
|
Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array. Then load the font with:
|
|
|
|
|
|
|
|
ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
|
2015-08-06 06:59:07 +03:00
|
|
|
|
|
|
|
Or
|
|
|
|
|
|
|
|
ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
|
|
|
|
|
|
|
|
---------------------------------
|
|
|
|
INCLUDED FONT FILES
|
|
|
|
---------------------------------
|
2015-07-02 17:16:23 +03:00
|
|
|
|
2015-08-06 06:59:07 +03:00
|
|
|
Cousine-Regular.ttf
|
|
|
|
Digitized data copyright (c) 2010 Google Corporation.
|
|
|
|
Licensed under the SIL Open Font License, Version 1.1
|
|
|
|
|
|
|
|
DroidSans.ttf
|
|
|
|
Copyright (c) Steve Matteson
|
|
|
|
Apache License, version 2.0
|
|
|
|
http://www.google.com/fonts/specimen/Droid+Sans
|
|
|
|
|
|
|
|
ProggyClean.ttf
|
|
|
|
Copyright (c) 2004, 2005 Tristan Grimmer
|
|
|
|
MIT License
|
|
|
|
recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
|
|
|
|
|
|
|
|
ProggyTiny.ttf
|
|
|
|
Copyright (c) 2004, 2005 Tristan Grimmer
|
|
|
|
MIT License
|
|
|
|
recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
|
|
|
|
|
|
|
|
Karla-Regular
|
|
|
|
Copyright (c) 2012, Jonathan Pinhorn
|
|
|
|
SIL OPEN FONT LICENSE Version 1.1
|
|
|
|
|
|
|
|
---------------------------------
|
|
|
|
LINKS
|
|
|
|
---------------------------------
|
|
|
|
|
2015-11-24 18:35:07 +03:00
|
|
|
Icon fonts
|
|
|
|
https://fortawesome.github.io/Font-Awesome/
|
|
|
|
https://github.com/SamBrishes/kenney-icon-font
|
|
|
|
|
2015-08-06 06:59:07 +03:00
|
|
|
Typefaces for source code beautification
|
|
|
|
https://github.com/chrissimpkins/codeface
|
2015-08-11 23:45:42 +03:00
|
|
|
|
|
|
|
Programmation fonts
|
|
|
|
http://s9w.github.io/font_compare/
|
2015-08-06 06:59:07 +03:00
|
|
|
|
|
|
|
Proggy Programming Fonts
|
|
|
|
http://upperbounds.net
|
|
|
|
|
|
|
|
Inconsolata
|
|
|
|
http://www.levien.com/type/myfonts/inconsolata.html
|
|
|
|
|
|
|
|
Adobe Source Code Pro: Monospaced font family for user interface and coding environments
|
|
|
|
https://github.com/adobe-fonts/source-code-pro
|
|
|
|
|
|
|
|
Monospace/Fixed Width Programmer's Fonts
|
|
|
|
http://www.lowing.org/fonts/
|
|
|
|
|
|
|
|
(Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
|
|
|
|
http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
|
|
|
|
|
|
|
|
Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
|