通过 GitHub Sponsors 或 Patreon 支持 IconFontCppHeaders 的开发
https://github.com/juliettef/IconFontCppHeaders
C 和 C++ 标头、C# 和 Python 类、Rust 文件和图标字体 Font Awesome、Fork Awesome、Google Material Design、Pictogrammers Material Design 图标、Kenney 游戏图标、Fontaudio、Codicons 和 Lucide 的 Go 包。
一组用于在 C、C++、C#、Python、Rust 和 Go 中使用图标字体的头文件和类,以及用于创建文件的 python 生成器。
每个标头包含一种字体的定义,每个图标代码点定义为ICON_*
,以及用于字体加载目的的最小、最大和最大 16 位代码点。最小值不包括 ASCII 字符代码点。最大 16 位适用于仅支持 16 位代码点的库,例如 Dear ImGui。
此外,Python 脚本可用于将 ttf 字体文件转换为 C 和 C++ 标头。每个 ttf 图标字体文件都会转换为包含单个字节数组的 C 和 C++ 头文件。要启用转换,请使用ttf2headerC = True
运行GenerateIconFontCppHeaders.py
脚本。
Font Awesome 5 和 6 将不同风格的图标分割成不同的字体文件,对于浅色、常规和纯色样式具有相同的代码点,以及针对品牌的不同代码点集。我们已将品牌放入单独的头文件中。
从 fontawesome.com 下载 Font Awesome Pro Web 包。要生成标头,请在运行脚本之前将icons.yml
放入与GenerateIconFontCppHeaders.py
相同的目录中。文件icons.yml
位于..fontawesome-pro-nnn-webmetadataicons.yml
下,其中nnn
是版本号。
图标文件:
..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
使用 Dear ImGui 作为示例 UI 库:
# 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.
体素编辑器和具有可编辑环境的 6 自由度 FPS 游戏。体素编辑器的 UI 使用 Dear ImGui 和 Font Awesome 图标字体。
www.avoyd.com
跨平台渲染库
bkaradzic.github.io/bgfx/概述
github.com/bkaradzic/bgfx
实时3D奇怪吸引子侦察
www.michelelemorrone.eu/glchaosp
github.com/BrutPitt/glChAoS.P
跨平台C++音频插件框架
iplug2.github.io
github.com/iplug2/iplug2
3D C++开源游戏引擎
github.com/nem0/LumixEngine
适用于游戏和其他应用的实时纳秒分辨率远程遥测帧分析器。
bitbucket.org/wolfpld/tracy
晶体管级6502硬件模拟
floooh.github.io/visual6502remix
github.com/floooh/v6502r
创建字体子集
github.com/aiekick/ImGuiFontStudio
感谢迄今为止为 IconFontCppHeaders 做出贡献的所有人。为了使事情变得更容易,请记住以下几点:
发展 - 朱丽叶福柯 - @juliettef
要求 - 道格·宾克斯 - @dougbinks
无语言实现和重构 - Leonard Ritter - @paniq
建议添加 ttf 文件名的定义 - Sean Barrett - @nothings
初始 Font Awesome 5 实现 - Codecat - @codecat
建议添加 Fork Awesome - Julien Deswaef - @xuv
建议添加 Ionicons - Omar Cornut - @ocornut
C# 语言实现 - Rokas Kupstys - @rokups
建议添加材质设计图标 - Gustav Madeso - @madeso
Fontaudio 实施 - Oli Larkin - @olilarkin
初始 ttf 到 C 和 C++ 标头转换实现 - Charles Mailly - @Caerind
Python语言实现 - 余航 - @yhyu13
Go 语言实现 - Matt Pharr - @mpp
Codicons 实施 - Robert Ryan - @rtryan98
Rust 语言实现 - Gaeel Bradshaw-Rodriguez - @Bradshaw
Pictogrammers Material Design 图标实现 - Bobby Anguelov - @BobbyAnguelov
Lucide 图标实现 - Lucide 贡献者 - @lucide-icons