Unterstützen Sie die Entwicklung von IconFontCppHeaders durch GitHub-Sponsoren oder Patreon
https://github.com/juliettef/IconFontCppHeaders
C- und C++-Header, C#- und Python-Klassen, Rust-Dateien und Go-Paket für Symbolschriftarten Font Awesome, Fork Awesome, Google Material Design, Pictogrammers Material Design-Symbole, Kenney-Spielsymbole, Fontaudio, Codicons und Lucide.
Eine Reihe von Header-Dateien und Klassen zur Verwendung von Symbolschriftarten in C, C++, C#, Python, Rust und Go sowie der Python-Generator, der zum Erstellen der Dateien verwendet wird.
Jeder Header enthält Definitionen für eine Schriftart, wobei jeder Symbolcodepunkt als ICON_*
definiert ist, zusammen mit den minimalen , maximalen und maximalen 16-Bit -Codepunkten zum Laden von Schriftarten. Die Mindestanzahl schließt die ASCII-Zeichen-Codepunkte aus. Das Maximum von 16 Bit ist für die Verwendung mit Bibliotheken vorgesehen, die nur 16-Bit-Codepunkte unterstützen, zum Beispiel Dear ImGui.
Darüber hinaus kann das Python-Skript verwendet werden, um TTF-Schriftartendateien in C- und C++-Header zu konvertieren. Jede TTF-Symbolschriftartdatei wird in eine C- und C++-Headerdatei konvertiert, die ein einzelnes Byte-Array enthält. Um die Konvertierung zu aktivieren, führen Sie das Skript GenerateIconFontCppHeaders.py
mit ttf2headerC = True
aus.
Font Awesome 5 und 6 teilen die verschiedenen Symbolstile in verschiedene Schriftartdateien mit identischen Codepunkten für die Stile „light“ , „normal“ und „solid“ sowie einem anderen Satz von Codepunkten für „brands“ auf. Wir haben die Marken in einer separaten Header-Datei abgelegt.
Laden Sie das Font Awesome Pro Web-Paket von Fontawesome.com herunter. Um die Header zu generieren, legen Sie die icons.yml
im selben Verzeichnis wie GenerateIconFontCppHeaders.py
ab, bevor Sie das Skript ausführen. Die Datei icons.yml
befindet sich unter ..fontawesome-pro-nnn-webmetadataicons.yml
wobei nnn
die Versionsnummer ist.
Symboldateien:
..fontawesome-pro-nnn-webmetadataicons.yml
..fontawesome-pro-nnn-webwebfontsfa-brands-400.ttf
..fontawesome-pro-nnn-webwebfontsfa-light-300.ttf
..fontawesome-pro-nnn-webwebfontsfa-regular-400.ttf
..fontawesome-pro-nnn-webwebfontsfa-solid-900.ttf
Verwendung von Dear ImGui als Beispiel für eine UI-Bibliothek:
# include " IconsFontAwesome5.h "
ImGuiIO& io = ImGui::GetIO();
io.Fonts-> AddFontDefault ();
float baseFontSize = 13 . 0f ; // 13.0f is the size of the default font. Change to the font size you use.
float iconFontSize = baseFontSize * 2 . 0f / 3 . 0f ; // FontAwesome fonts need to have their sizes reduced by 2.0f/3.0f in order to align correctly
// merge in icons from Font Awesome
static const ImWchar icons_ranges[] = { ICON_MIN_FA, ICON_MAX_16_FA, 0 };
ImFontConfig icons_config;
icons_config.MergeMode = true ;
icons_config.PixelSnapH = true ;
icons_config.GlyphMinAdvanceX = iconFontSize;
io.Fonts-> AddFontFromFileTTF ( FONT_ICON_FILE_NAME_FAS, iconFontSize, &icons_config, icons_ranges );
// use FONT_ICON_FILE_NAME_FAR if you want regular instead of solid
// in an imgui window somewhere...
ImGui::Text ( ICON_FA_PAINT_BRUSH " Paint " ); // use string literal concatenation
// outputs a paint brush icon and 'Paint' as a string.
Voxel-Editor und FPS-Spiel mit 6 Freiheitsgraden und bearbeitbaren Umgebungen. Die Benutzeroberfläche des Voxel-Editors verwendet Dear ImGui mit Font Awesome-Symbolschriftarten.
www.avoyd.com
Plattformübergreifende Rendering-Bibliothek
bkaradzic.github.io/bgfx/overview
github.com/bkaradzic/bgfx
3D-Scout seltsamer Attraktoren in Echtzeit
www.michelemorrone.eu/glchaosp
github.com/BrutPitt/glChAoS.P
Plattformübergreifendes C++-Audio-Plug-in-Framework
iplug2.github.io
github.com/iplug2/iplug2
3D-C++-Open-Source-Spiel-Engine
github.com/nem0/LumixEngine
Echtzeit-Ferntelemetrie-Frame-Profiler mit Nanosekundenauflösung für Spiele und andere Anwendungen.
bitbucket.org/wolfpld/tracy
Hardwaresimulation auf Transistorebene 6502
floooh.github.io/visual6502remix
github.com/floooh/v6502r
Erstellen Sie Schriftart-Untergruppen
github.com/aiekick/ImGuiFontStudio
Vielen Dank an alle, die bisher zu IconFontCppHeaders beigetragen haben. Zur Vereinfachung beachten Sie bitte Folgendes:
Entwicklung – Juliette Foucaut – @juliettef
Anforderungen – Doug Binks – @dougbinks
Keine Sprachimplementierung und Refactoring – Leonard Ritter – @paniq
Vorschlag, eine Definition für den TTF-Dateinamen hinzuzufügen – Sean Barrett – @nothings
Erste Implementierung von Font Awesome 5 – Codecat – @codecat
Vorschlag zum Hinzufügen von Fork Awesome – Julien Deswaef – @xuv
Vorschlag, Ionicons hinzuzufügen – Omar Cornut – @ocornut
C#-Sprachimplementierung – Rokas Kupstys – @rokups
Vorschlag zum Hinzufügen von Materialdesign-Ikonen – Gustav Madeso – @madeso
Fontaudio-Implementierung – Oli Larkin – @olilarkin
Erste Implementierung der Konvertierung von ttf- in C- und C++-Headern – Charles Mailly – @Caerind
Implementierung der Python-Sprache – Hang Yu – @yhyu13
Go-Sprachimplementierung – Matt Pharr – @mpp
Codicons-Implementierung – Robert Ryan – @rtryan98
Rust-Sprachimplementierung – Gaeel Bradshaw-Rodriguez – @Bradshaw
Implementierung von Pictogrammers Material Design-Symbolen – Bobby Anguelov – @BobbyAnguelov
Implementierung von Lucide-Symbolen – Lucide-Mitwirkende – @lucide-icons