mirror of
https://github.com/ocornut/imgui.git
synced 2026-05-26 02:25:26 +08:00
+15
-7
@@ -116,15 +116,23 @@ Breaking Changes:
|
|||||||
Other Changes:
|
Other Changes:
|
||||||
|
|
||||||
- Fonts:
|
- Fonts:
|
||||||
- Added AddFontDefaultVector(): a new embedded scalable font!
|
- Added AddFontDefaultVector(): a new embedded monospace scalable font: ProggyForever!
|
||||||
Based on ProggyVector by Tristan Grimmer, the same author as our good-old ProggyClean.
|
From https://github.com/ocornut/proggyforever:
|
||||||
The font data was carefully subsetted, trimmed and compressed so the embedded
|
"ProggyForever is an MIT-licensed partial reimplementation of the ProggyVector
|
||||||
data is ~18 KB. Embedding a scalable default font ensures that Dear ImGui can
|
font (originally by Tristan Grimmer), which itself is a vector-based
|
||||||
be easily and readily used in all contexts, even without file system access.
|
reinterpretation of the ProggyClean bitmap font that happily served as
|
||||||
As always you can opt-out of the embedded font data if desired. A sizing tweak
|
Dear ImGui default font for over 10 years." [...]
|
||||||
was also applied to ensure the new font is a closer match to the classic font.
|
"I commissioned Thiebault Courot to recreate this, applied various minor tweaks
|
||||||
|
and fixes, and reworked his editing pipeline toward shipping FontForge source
|
||||||
|
files so we can allow and track future changes."
|
||||||
|
- TL;DR; there was no strictly MIT-licensed matching font. We made it!
|
||||||
|
- The font data was carefully subsetted, trimmed and compressed so the embedded
|
||||||
|
data is ~14 KB. Embedding a scalable default font ensures that Dear ImGui can
|
||||||
|
be easily and readily used in all contexts, even without file system access.
|
||||||
|
- As always you can opt-out of the embedded font data if desired.
|
||||||
- AddFontDefault() now automatically selects an embedded font between
|
- AddFontDefault() now automatically selects an embedded font between
|
||||||
the classic pixel-looking one and the new scalable one.
|
the classic pixel-looking one and the new scalable one.
|
||||||
|
Prefer calling AddFontDefaultVector() or AddFontDefaultBitmap() explicitely.
|
||||||
- Fixed an issue related to EllipsisChar handling, while changing
|
- Fixed an issue related to EllipsisChar handling, while changing
|
||||||
font loader or font loader flags dynamically in Style->Fonts menus.
|
font loader or font loader flags dynamically in Style->Fonts menus.
|
||||||
- imgui_freetype: fixed overwriting ImFontConfig::PixelSnapH when hinting
|
- imgui_freetype: fixed overwriting ImFontConfig::PixelSnapH when hinting
|
||||||
|
|||||||
+20
-13
@@ -5,13 +5,16 @@ _(You may browse this at https://github.com/ocornut/imgui/blob/master/docs/FONTS
|
|||||||
The code in Dear ImGui embeds a copy of [ProggyClean.ttf](https://github.com/bluescan/proggyfonts) by Tristan Grimmer,
|
The code in Dear ImGui embeds a copy of [ProggyClean.ttf](https://github.com/bluescan/proggyfonts) by Tristan Grimmer,
|
||||||
a 13 pixels high, pixel-perfect font used by default. ProggyClean does not scale very nicely.
|
a 13 pixels high, pixel-perfect font used by default. ProggyClean does not scale very nicely.
|
||||||
|
|
||||||
The code in Dear ImGui embeds a partial copy of [ProggyVector.ttf](https://github.com/bluescan/proggyfonts) by Tristan Grimmer and Source Foundry Authors,
|
The code in Dear ImGui embeds a partial copy of [ProggyForever.ttf](https://github.com/ocornut/proggyforever) by Disco Hello & Tristan Grimmer,
|
||||||
a font mimicking ProggyClean which does scale nicely.
|
a new font mimicking ProggyClean which does scale nicely.
|
||||||
|
|
||||||
We embed fonts in the code so you can use Dear ImGui without any file system access.
|
We embed fonts in the code so you can use Dear ImGui without any file system access.
|
||||||
If you use either of those fonts in your shipping product you should include their license as part of your software (see below for links).
|
|
||||||
If you don't use them you can set `IMGUI_DISABLE_DEFAULT_FONT` in your [imconfig.h](https://github.com/ocornut/imgui/blob/master/imconfig.h) file to ship binaries without the fonts and save about ~26 KB.
|
If you don't use them you can set `IMGUI_DISABLE_DEFAULT_FONT` in your [imconfig.h](https://github.com/ocornut/imgui/blob/master/imconfig.h) file to ship binaries without the fonts and save about ~26 KB.
|
||||||
|
|
||||||
|
Calling io.Fonts->AddFontDefaultBitmap() loads ProggyClean.
|
||||||
|
Calling io.Fonts->AddFontDefaultVector() loads ProggyForever.
|
||||||
|
Calling io.Fonts->AddFontDefault() selects one based on the expected default font size (when `style.FontSizeBase * style.FontScaleMain * style.FontSizeDpi >= 15` we use ProggyForever).
|
||||||
|
|
||||||
You may also load external .TTF/.OTF files, see instructions on this page.
|
You may also load external .TTF/.OTF files, see instructions on this page.
|
||||||
In the [misc/fonts/](https://github.com/ocornut/imgui/tree/master/misc/fonts) folder you can find a few suggested fonts, provided as a convenience.
|
In the [misc/fonts/](https://github.com/ocornut/imgui/tree/master/misc/fonts) folder you can find a few suggested fonts, provided as a convenience.
|
||||||
|
|
||||||
@@ -561,7 +564,20 @@ You can use the `UTF-8 Encoding viewer` in `Metrics/Debugger` to verify the cont
|
|||||||
|
|
||||||
## Credits/Licenses For Fonts Included In Repository
|
## Credits/Licenses For Fonts Included In Repository
|
||||||
|
|
||||||
Some fonts files are available in the `misc/fonts/` folder:
|
Embedded in source code:
|
||||||
|
|
||||||
|
**ProggyClean.ttf**, by Tristan Grimmer
|
||||||
|
<br>MIT License
|
||||||
|
<br>(recommended loading setting: Size = 13.0, GlyphOffset.y = +1, PixelSnapH = true)
|
||||||
|
<br>https://github.com/bluescan/proggyfonts
|
||||||
|
|
||||||
|
**ProggyForever.ttf**, by Disco Hello, Tristan Grimmer
|
||||||
|
<BR>MIT License
|
||||||
|
<BR>https://github.com/ocornut/proggyforever
|
||||||
|
|
||||||
|
Extra fonts files are available in the `misc/fonts/` folder.
|
||||||
|
Compared to 2014 when they were first introduced, we now have better font support and we embed ProggyForever.
|
||||||
|
I believe all the files here are unnecessary nowadays. You can find font yourself. They might eventually be removed.
|
||||||
|
|
||||||
**Roboto-Medium.ttf**, by Christian Robetson
|
**Roboto-Medium.ttf**, by Christian Robetson
|
||||||
<br>Apache License 2.0
|
<br>Apache License 2.0
|
||||||
@@ -576,20 +592,11 @@ Some fonts files are available in the `misc/fonts/` folder:
|
|||||||
<br>Apache License 2.0
|
<br>Apache License 2.0
|
||||||
<br>https://www.fontsquirrel.com/fonts/droid-sans
|
<br>https://www.fontsquirrel.com/fonts/droid-sans
|
||||||
|
|
||||||
**ProggyClean.ttf**, by Tristan Grimmer
|
|
||||||
<br>MIT License
|
|
||||||
<br>(recommended loading setting: Size = 13.0, GlyphOffset.y = +1)
|
|
||||||
<br>https://github.com/bluescan/proggyfonts
|
|
||||||
|
|
||||||
**ProggyTiny.ttf**, by Tristan Grimmer
|
**ProggyTiny.ttf**, by Tristan Grimmer
|
||||||
<br>MIT License
|
<br>MIT License
|
||||||
<br>(recommended loading setting: Size = 10.0, GlyphOffset.y = +1)
|
<br>(recommended loading setting: Size = 10.0, GlyphOffset.y = +1)
|
||||||
<br>https://github.com/bluescan/proggyfonts
|
<br>https://github.com/bluescan/proggyfonts
|
||||||
|
|
||||||
**ProggyVector.ttf**, by Tristan Grimmer, Source Foundry Authors
|
|
||||||
<BR>MIT License + Bitstream Vera License
|
|
||||||
<BR>https://github.com/bluescan/proggyfonts
|
|
||||||
|
|
||||||
**Karla-Regular.ttf**, by Jonathan Pinhorn
|
**Karla-Regular.ttf**, by Jonathan Pinhorn
|
||||||
<br>SIL OPEN FONT LICENSE Version 1.1
|
<br>SIL OPEN FONT LICENSE Version 1.1
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -217,7 +217,8 @@ Maintenance/support contracts, sponsoring invoices and other B2B transactions ar
|
|||||||
|
|
||||||
Omar: "I first discovered the IMGUI paradigm at [Q-Games](https://www.q-games.com) where Atman Binstock had dropped his own simple implementation in the codebase, which I spent quite some time improving and thinking about. It turned out that Atman was exposed to the concept directly by working with Casey. When I moved to Media Molecule I rewrote a new library trying to overcome the flaws and limitations of the first one I've worked with. It became this library and since then I have spent an unreasonable amount of time iterating and improving it."
|
Omar: "I first discovered the IMGUI paradigm at [Q-Games](https://www.q-games.com) where Atman Binstock had dropped his own simple implementation in the codebase, which I spent quite some time improving and thinking about. It turned out that Atman was exposed to the concept directly by working with Casey. When I moved to Media Molecule I rewrote a new library trying to overcome the flaws and limitations of the first one I've worked with. It became this library and since then I have spent an unreasonable amount of time iterating and improving it."
|
||||||
|
|
||||||
Embeds [ProggyClean.ttf, ProggyVector.ttf](https://www.proggyfonts.net) fonts by Tristan Grimmer (MIT license).
|
Embeds [ProggyClean](https://www.proggyfonts.net) font by Tristan Grimmer (MIT license).
|
||||||
|
<br>Embeds [ProggyForever](https://github.com/ocornut/proggyforever) fonts by Disco Hello, Tristan Grimmer (MIT license).
|
||||||
<br>Embeds [stb_textedit.h, stb_truetype.h, stb_rect_pack.h](https://github.com/nothings/stb/) by Sean Barrett (public domain).
|
<br>Embeds [stb_textedit.h, stb_truetype.h, stb_rect_pack.h](https://github.com/nothings/stb/) by Sean Barrett (public domain).
|
||||||
|
|
||||||
Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Special thanks to Alex Evans, Patrick Doane, Marco Koegler for kindly helping. Also thank you to everyone posting feedback, questions and patches on GitHub.
|
Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Special thanks to Alex Evans, Patrick Doane, Marco Koegler for kindly helping. Also thank you to everyone posting feedback, questions and patches on GitHub.
|
||||||
|
|||||||
+1
-1
@@ -49,7 +49,7 @@
|
|||||||
//#define IMGUI_DISABLE_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle at all (replace them with dummies)
|
//#define IMGUI_DISABLE_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle at all (replace them with dummies)
|
||||||
//#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle so you can implement them yourself if you don't want to link with fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function.
|
//#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite and ImFileHandle so you can implement them yourself if you don't want to link with fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function.
|
||||||
//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions().
|
//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions().
|
||||||
//#define IMGUI_DISABLE_DEFAULT_FONT // Disable default embedded fonts (ProggyClean/ProggyVector), remove ~9 KB + ~17 KB from output binary. AddFontDefaultXXX() functions will assert.
|
//#define IMGUI_DISABLE_DEFAULT_FONT // Disable default embedded fonts (ProggyClean/ProggyForever), remove ~9 KB + ~14 KB from output binary. AddFontDefaultXXX() functions will assert.
|
||||||
//#define IMGUI_DISABLE_SSE // Disable use of SSE intrinsics even if available
|
//#define IMGUI_DISABLE_SSE // Disable use of SSE intrinsics even if available
|
||||||
|
|
||||||
//---- Enable Test Engine / Automation features.
|
//---- Enable Test Engine / Automation features.
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
// Library Version
|
// Library Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
|
||||||
#define IMGUI_VERSION "1.92.6 WIP"
|
#define IMGUI_VERSION "1.92.6 WIP"
|
||||||
#define IMGUI_VERSION_NUM 19259
|
#define IMGUI_VERSION_NUM 19260
|
||||||
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
|
||||||
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
|
||||||
|
|
||||||
|
|||||||
+267
-334
File diff suppressed because it is too large
Load Diff
@@ -1,17 +0,0 @@
|
|||||||
# Usage: fontforge.exe -script ProggyVector-ExtractScript.txt
|
|
||||||
Open("ProggyVector-Regular.ttf")
|
|
||||||
SelectMore(0x20,0xFF)
|
|
||||||
SelectMore(0x20AC) # Euro sign
|
|
||||||
SelectInvert()
|
|
||||||
DetachAndRemoveGlyphs()
|
|
||||||
SelectAll()
|
|
||||||
RemoveOverlap()
|
|
||||||
Simplify()
|
|
||||||
i=0
|
|
||||||
while (i < 23)
|
|
||||||
SetTTFName(0x409,i,"")
|
|
||||||
i=i+1
|
|
||||||
endloop
|
|
||||||
SetFontNames(".",".",".",".",".",".")
|
|
||||||
Generate("ProggyVector-minimal.ttf")
|
|
||||||
# At this point you can use binary_to_compressed_c.exe -u8 ProggyVector-minimal.ttf proggy_vector_minimal_ttf
|
|
||||||
Reference in New Issue
Block a user