138 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			138 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | Support development of IconFontCppHeaders through [GitHub Sponsors](https://github.com/sponsors/dougbinks) or [Patreon](https://www.patreon.com/enkisoftware) | ||
|  | 
 | ||
|  | [<img src="https://img.shields.io/static/v1?logo=github&label=Github&message=Sponsor&color=#ea4aaa" width="200"/>](https://github.com/sponsors/dougbinks)    [<img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron" width="150"/>](https://www.patreon.com/enkisoftware) | ||
|  | 
 | ||
|  | 
 | ||
|  | # IconFontCppHeaders
 | ||
|  | 
 | ||
|  | [https://github.com/juliettef/IconFontCppHeaders](https://github.com/juliettef/IconFontCppHeaders) | ||
|  | 
 | ||
|  | C++11, C89 headers and C# classes for icon fonts Font Awesome, Fork Awesome, Google Material Design icons, Kenney game icons and Fontaudio. | ||
|  | 
 | ||
|  | A set of header files and classes for using icon fonts in C, C++ and C#, along with the python generator used to create the files. | ||
|  | 
 | ||
|  | Each header contains defines for one font, with each icon code point defined as ICON_*, along with the min and max code points for font loading purposes. | ||
|  | 
 | ||
|  | ## Icon Fonts
 | ||
|  | 
 | ||
|  | ### [Font Awesome](https://fontawesome.com)
 | ||
|  | 
 | ||
|  | * [https://github.com/FortAwesome/Font-Awesome](https://github.com/FortAwesome/Font-Awesome) | ||
|  | 
 | ||
|  | #### Font Awesome 4 
 | ||
|  | * [icons.yml](https://github.com/FortAwesome/Font-Awesome/blob/fa-4/src/icons.yml) | ||
|  | * [fontawesome-webfont.ttf](https://github.com/FortAwesome/Font-Awesome/blob/fa-4/fonts/fontawesome-webfont.ttf) | ||
|  | 
 | ||
|  | #### Font Awesome 5 - see [notes below](#notes-about-font-awesome-5)
 | ||
|  | * [icons.yml](https://github.com/FortAwesome/Font-Awesome/blob/master/metadata/icons.yml) | ||
|  | * [fa-brands-400.ttf](https://github.com/FortAwesome/Font-Awesome/blob/master/webfonts/fa-brands-400.ttf) | ||
|  | * [fa-regular-400.ttf](https://github.com/FortAwesome/Font-Awesome/blob/master/webfonts/fa-regular-400.ttf) | ||
|  | * [fa-solid-900.ttf](https://github.com/FortAwesome/Font-Awesome/blob/master/webfonts/fa-solid-900.ttf) | ||
|  | 
 | ||
|  | #### Font Awesome 5 Pro - this is a paid product, see [notes below](#notes-about-font-awesome-5)
 | ||
|  | Files downloaded from [fontawesome.com](https://fontawesome.com)   | ||
|  | 
 | ||
|  | * ..\fontawesome-pro-n.n.n-web\metadata\icons.yml   | ||
|  | * ..\fontawesome-pro-n.n.n-web\webfonts\fa-brands-400.ttf   | ||
|  | * ..\fontawesome-pro-n.n.n-web\webfonts\fa-light-300.ttf   | ||
|  | * ..\fontawesome-pro-n.n.n-web\webfonts\fa-regular-400.ttf   | ||
|  | * ..\fontawesome-pro-n.n.n-web\webfonts\fa-solid-900.ttf   | ||
|  | 
 | ||
|  | ### [Fork Awesome](https://forkawesome.github.io/Fork-Awesome)
 | ||
|  | * [https://github.com/ForkAwesome/Fork-Awesome](https://github.com/ForkAwesome/Fork-Awesome) | ||
|  | * [icons.yml](https://github.com/ForkAwesome/Fork-Awesome/blob/master/src/icons/icons.yml) | ||
|  | * [forkawesome-webfont.ttf](https://github.com/ForkAwesome/Fork-Awesome/blob/master/fonts/forkawesome-webfont.ttf) | ||
|  | 
 | ||
|  | ### [Google Material Design icons](https://design.google.com/icons)
 | ||
|  | * [https://github.com/google/material-design-icons](https://github.com/google/material-design-icons) | ||
|  | * [codepoints](https://github.com/google/material-design-icons/blob/master/iconfont/codepoints) | ||
|  | * [MaterialIcons-Regular.ttf](https://github.com/google/material-design-icons/blob/master/iconfont/MaterialIcons-Regular.ttf) | ||
|  | 
 | ||
|  | ### [Kenney Game icons](http://kenney.nl/assets/game-icons) and [Game icons expansion](http://kenney.nl/assets/game-icons-expansion) 
 | ||
|  | * [https://github.com/nicodinh/kenney-icon-font](https://github.com/nicodinh/kenney-icon-font) | ||
|  | * [kenney-icons.css](https://github.com/nicodinh/kenney-icon-font/blob/master/css/kenney-icons.css) | ||
|  | * [kenney-icon-font.ttf](https://github.com/nicodinh/kenney-icon-font/blob/master/fonts/kenney-icon-font.ttf) | ||
|  | 
 | ||
|  | ### [Fontaudio](https://github.com/fefanto/fontaudio)
 | ||
|  | * [https://github.com/fefanto/fontaudio](https://github.com/fefanto/fontaudio) | ||
|  | * [fontaudio.css](https://github.com/fefanto/fontaudio/blob/master/font/fontaudio.css) | ||
|  | * [fontaudio.ttf](https://github.com/fefanto/fontaudio/blob/master/font/fontaudio.ttf) | ||
|  | 
 | ||
|  | ## Notes about Font Awesome 5
 | ||
|  | ### Codepoints grouping
 | ||
|  | Font Awesome 5 splits the different styles of icons into different font files with identical codepoints for *light*, *regular* and *solid* styles, and a different set of codepoints for *brands*. We have put the brands into a separate header file. | ||
|  | 
 | ||
|  | ### Generating Pro header files
 | ||
|  | Download the Font Awesome Pro Web package. To generate the headers, drop *icons.yml* in the same directory as *GenerateIconFontCppHeaders.py* before running the script. The file *icons.yml* is under *..\fontawesome-pro-n.n.n-web\metadata\icons.yml* where *n.n.n* is the version number. | ||
|  | 
 | ||
|  | ## Ionicons and webfont Material Design Icons
 | ||
|  | Unsupported as of 29 Apr 2020. See [Issue #16](https://github.com/juliettef/IconFontCppHeaders/issues/16). | ||
|  | 
 | ||
|  | ## Example Code
 | ||
|  | 
 | ||
|  | Using [Dear ImGui](https://github.com/ocornut/imgui) as an example UI library: | ||
|  | 
 | ||
|  | ```Cpp | ||
|  | 
 | ||
|  | #include "IconsFontAwesome5.h"
 | ||
|  | 
 | ||
|  | ImGuiIO& io = ImGui::GetIO(); | ||
|  | io.Fonts->AddFontDefault(); | ||
|  |   | ||
|  | // merge in icons from Font Awesome | ||
|  | static const ImWchar icons_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; | ||
|  | ImFontConfig icons_config; icons_config.MergeMode = true; icons_config.PixelSnapH = true; | ||
|  | io.Fonts->AddFontFromFileTTF( FONT_ICON_FILE_NAME_FAS, 16.0f, &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. | ||
|  | ``` | ||
|  | 
 | ||
|  | ## Projects using the font icon header files
 | ||
|  | 
 | ||
|  | ### [Avoyd](https://www.enkisoftware.com/avoyd)
 | ||
|  | Avoyd is a 6 degrees of freedom voxel game that includes a voxel editor tool.    | ||
|  | [www.avoyd.com](https://www.avoyd.com) | ||
|  | 
 | ||
|  | The voxel editor's UI uses Dear ImGui with Font Awesome icon fonts.   | ||
|  | 
 | ||
|  |  | ||
|  | 
 | ||
|  | ### [bgfx](https://github.com/bkaradzic/bgfx)
 | ||
|  | Cross-platform rendering library.   | ||
|  | [bkaradzic.github.io/bgfx/overview](https://bkaradzic.github.io/bgfx/overview.html) | ||
|  | 
 | ||
|  | ### [glChAoS.P](https://github.com/BrutPitt/glChAoS.P)
 | ||
|  | Real time 3D strange attractors scout.   | ||
|  | [www.michelemorrone.eu/glchaosp](https://www.michelemorrone.eu/glchaosp) | ||
|  | 
 | ||
|  |  | ||
|  | 
 | ||
|  | ### [iPlug2](https://github.com/iplug2/iplug2)
 | ||
|  | Cross platform C++ audio plug-in framework   | ||
|  | [iplug2.github.io](https://iplug2.github.io) | ||
|  | 
 | ||
|  | ### [Tracy Profiler](https://bitbucket.org/wolfpld/tracy/src/master/)
 | ||
|  | Real time, nanosecond resolution, remote telemetry frame profiler for games and other applications.   | ||
|  | 
 | ||
|  | [](https://www.youtube.com/watch?v=uJkrFgriuOo) | ||
|  | 
 | ||
|  | ### [Visual 6502 Remix](https://github.com/floooh/v6502r)
 | ||
|  | Transistor level 6502 Hardware Simulation   | ||
|  | [floooh.github.io/visual6502remix](https://floooh.github.io/visual6502remix) | ||
|  | 
 | ||
|  | ## Credits
 | ||
|  | 
 | ||
|  | Development - [Juliette Foucaut](http://www.enkisoftware.com/about.html#juliette) - [@juliettef](https://github.com/juliettef)   | ||
|  | Requirements - [Doug Binks](http://www.enkisoftware.com/about.html#doug) - [@dougbinks](https://github.com/dougbinks)   | ||
|  | [None](https://bitbucket.org/duangle/nonelang/src) language implementation and [refactoring](https://gist.github.com/paniq/4a734e9d8e86a2373b5bc4ca719855ec) - [Leonard Ritter](http://www.leonard-ritter.com/) - [@paniq](https://github.com/paniq)   | ||
|  | Suggestion to add a define for the ttf file name - [Sean Barrett](https://nothings.org/) - [@nothings](https://github.com/nothings)   | ||
|  | Initial Font Awesome 5 implementation - [Codecat](https://codecat.nl/) - [@codecat](https://github.com/codecat)   | ||
|  | Suggestion to add Fork Awesome - [Julien Deswaef](http://xuv.be/) - [@xuv](https://github.com/xuv)   | ||
|  | Suggestion to add Ionicons - [Omar Cornut](http://www.miracleworld.net/) - [@ocornut](https://github.com/ocornut)   | ||
|  | C# language implementation - Rokas Kupstys - [@rokups](https://github.com/rokups)   | ||
|  | Suggestion to add Material Design Icons - Gustav Madeso - [@madeso](https://github.com/madeso)   | ||
|  | Fontaudio implementation - [Oli Larkin](https://www.olilarkin.co.uk/) - [@olilarkin](https://github.com/olilarkin) |