Update to latest BGFX including my SteamLink support (nw)

This commit is contained in:
Miodrag Milanovic 2016-02-16 07:52:59 +01:00
parent d13f3f0d10
commit 30ef0dc427
48 changed files with 2505 additions and 174 deletions

View File

@ -1020,7 +1020,17 @@ void ir_print_metal_visitor::visit(ir_expression *ir)
const bool halfCast = (arg_prec == glsl_precision_medium || arg_prec == glsl_precision_low);
buffer.asprintf_append (halfCast ? "((half)1.0/(" : "(1.0/(");
} else {
buffer.asprintf_append ("%s(", operator_glsl_strs[ir->operation]);
switch(ir->operation) {
case ir_unop_dFdy:
case ir_unop_dFdy_coarse:
case ir_unop_dFdy_fine:
buffer.asprintf_append ("%s(-", operator_glsl_strs[ir->operation]);
break;
default:
buffer.asprintf_append ("%s(", operator_glsl_strs[ir->operation]);
break;
}
}
if (ir->operands[0])
ir->operands[0]->accept(this);

View File

@ -0,0 +1,58 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
.idea/

View File

@ -0,0 +1,183 @@
#!/usr/bin/python
# Convert Font Awesome, Google Material Design and Kenney Game icon font
# parameters to C++11 and C89 compatible formats.
#
#------------------------------------------------------------------------------
# 1 - Source material
#
# 1.1 - Font Awesome - https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/src/icons.yml
# 1.2 - Material Design - https://raw.githubusercontent.com/google/material-design-icons/master/iconfont/codepoints
# 1.3 - Kenney icons - https://raw.githubusercontent.com/SamBrishes/kenney-icon-font/master/css/kenney-icons.css
#
#------------------------------------------------------------------------------
# 2 - Data samples
#
# 2.1 - Font Awesome
# - input: - name: Music
# id: music
# unicode: f001
# created: 1.0
# filter:
# - note
# - sound
# categories:
# - Web Application Icons
# - output C++11: #define ICON_FA_MUSIC u8"\uf001"
# - output C89: #define ICON_FA_MUSIC "\xEF\x80\x81"
#
# 2.2 - Google Material Design icons
# - input: 3d_rotation e84d
# - output C++11: #define ICON_MD_3D_ROTATION u8"\ue84d"
# - output C89: #define ICON_MD_3D_ROTATION "\xEE\xA1\x8D"
#
# 2.3 - Kenney Game icons
# - input: .ki-home:before{ content: "\e900"; }
# - output C++11: #define ICON_KI_HOME u8"\ue900"
# - output C89: #define ICON_KI_HOME "\xEE\xA4\x80"
#
# 2.4 - All fonts
# - computed min and max unicode fonts ICON_MIN and ICON_MAX
# - output: #define ICON_MIN_FA 0xf000
# #define ICON_MAX_FA 0xf295
#
#------------------------------------------------------------------------------
# 3 - Script dependencies
#
# 3.1 - Python 2.7 - https://www.python.org/download/releases/2.7/
# 3.2 - Requests - http://docs.python-requests.org/
# 3.3 - PyYAML - http://pyyaml.org/
#
#------------------------------------------------------------------------------
import requests
import yaml
LINE_FORMAT_MINMAX = '#define ICON_{!s}_{!s} 0x{!s}\n'
UNICODE_MIN = 'ffff'
UNICODE_MAX = '0'
TIMEOUT = 2
MESSAGE_SUCCESS = '{!s} fonts - conversion success: {!s}'
MESSAGE_ERROR = '{!s} fonts - error \n\t{!s}'
def get_prelude( url ):
prelude = '// Generated by GenerateIconFontCppHeaders.py \n// from {!s}\n#pragma once\n\n'.format( url )
return prelude
def line_format( font_abbr, font, unicode, cpp11 = True ):
if cpp11:
result = '#define ICON_{!s}_{!s} u8"\u{!s}"\n'.format( font_abbr, font, unicode )
else:
unicode_base = ''.join([ '{0:x}'.format( ord( x )) for x in unichr( int( unicode, 16 )).encode( 'utf-8' )]).upper()
unicode = '\\x' + unicode_base[ :2 ] + '\\x' + unicode_base[ 2:4 ] + '\\x' + unicode_base[ 4: ]
result = '#define ICON_{!s}_{!s} "{!s}"\n'.format( font_abbr, font, unicode )
return result
def convert_font_awesome( font_name, font_abbr, source_url, output_file, cpp11 ):
try:
response = requests.get( source_url, timeout = TIMEOUT )
if response.status_code == 200:
input = yaml.safe_load( response.content )
min = UNICODE_MIN
max = UNICODE_MAX
output_fonts = ''
for item in input[ 'icons' ]:
font = ''
for char in item[ 'id' ]:
font += '_' if ( char == '-' ) else str.upper( char )
unicode = item[ 'unicode' ]
if unicode < min:
min = unicode
elif unicode >= max:
max = unicode
output_fonts += line_format( font_abbr, font, unicode, cpp11 )
output = get_prelude( source_url ) + \
LINE_FORMAT_MINMAX.format( 'MIN', font_abbr, min ) + \
LINE_FORMAT_MINMAX.format( 'MAX', font_abbr, max ) + \
output_fonts
with open( output_file, 'w' ) as f:
f.write( output )
print( MESSAGE_SUCCESS.format( font_name, output_file ))
except Exception as e:
print( MESSAGE_ERROR.format( font_name, e ))
def convert_material_design( font_name, font_abbr, source_url, output_file, cpp11 ):
try:
response = requests.get( source_url, timeout = TIMEOUT )
if response.status_code == 200:
input = str.split( response.content, '\n' )
min = UNICODE_MIN
max = UNICODE_MAX
output_fonts = ''
for line in input:
words = str.split( line )
if words:
font = ''
for char in words[ 0 ]:
font += '_' if ( char == '-' ) else str.upper( char )
unicode = words[ 1 ]
if unicode < min:
min = unicode
elif unicode >= max:
max = unicode
output_fonts += line_format( font_abbr, font, unicode, cpp11 )
output = get_prelude( source_url ) + \
LINE_FORMAT_MINMAX.format( 'MIN', font_abbr, min ) + \
LINE_FORMAT_MINMAX.format( 'MAX', font_abbr, max ) + \
output_fonts
with open( output_file, 'w' ) as f:
f.write( output )
print( MESSAGE_SUCCESS.format( font_name, output_file ))
except Exception as e:
print( MESSAGE_ERROR.format( font_name, e ))
def convert_kenney( font_name, font_abbr, source_url, output_file, cpp11 ):
try:
response = requests.get( source_url, timeout = TIMEOUT )
if response.status_code == 200:
input = str.split( response.content, '\n' )
min = UNICODE_MIN
max = UNICODE_MAX
output_fonts = ''
font_begin= '.ki-'
font_end = ':before'
unicode_begin = '"\\'
unicode_end = '";'
for line in input:
words = str.split( line )
if words:
if font_begin in words[ 0 ]:
font = ''
word = words[ 0 ][( words[ 0 ].find( font_begin ) + len( font_begin )) : ( words[ 0 ].find( font_end ))]
for char in word:
font += '_' if ( char == '-' ) else str.upper( char )
unicode = str( words[ 2 ][( words[ 2 ].find( unicode_begin ) + len( unicode_begin )) : words[ 2 ].find( unicode_end )])
if unicode < min:
min = unicode
elif unicode >= max:
max = unicode
output_fonts += line_format( font_abbr, font, unicode, cpp11 )
output = get_prelude( source_url ) + \
LINE_FORMAT_MINMAX.format( 'MIN', font_abbr, min ) + \
LINE_FORMAT_MINMAX.format( 'MAX', font_abbr, max ) + \
output_fonts
with open( output_file, 'w' ) as f:
f.write( output )
print( MESSAGE_SUCCESS.format( font_name, output_file ))
except Exception as e:
print( MESSAGE_ERROR.format( font_name, e ))
# Main
convert_font_awesome( 'Font Awesome', 'FA', 'https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/src/icons.yml', 'icons_font_awesome.h', False )
convert_material_design( 'Material Design', 'MD', 'https://raw.githubusercontent.com/google/material-design-icons/master/iconfont/codepoints', 'icons_material_design.h', False )
convert_kenney( 'Kenney', 'KI', 'https://raw.githubusercontent.com/SamBrishes/kenney-icon-font/master/css/kenney-icons.css', 'icons_kenney.h', False )

View File

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 Juliette Foucaut
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,29 @@
# IconFontCHeaders
C++11 and C89 headers for icon fonts Font Awesome, Google Material Design icons and Kenney game icons.
A set of header files for using icon fonts in 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.
## Fonts
* [Font Awesome](http://fortawesome.github.io/Font-Awesome/) - [github repository](https://github.com/FortAwesome/Font-Awesome/)
* [Google Material Design icons](https://design.google.com/icons/) - [github repository](https://github.com/google/material-design-icons/)
* [Kenney Game icons](http://kenney.nl/assets/game-icons) and [Game icons expansion](http://kenney.nl/assets/game-icons-expansion) - [github repository](https://github.com/SamBrishes/kenney-icon-font)
## Usage
Using [dear imgui](https://github.com/ocornut/imgui) as an example UI library:
#include "IconsFontAwesome.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( fontFile.c_str(), 16.0f, &icons_config, icons_ranges);
// in an imgui window somewhere...
ImGui::Text( ICON_FA_FILE " File" ); // use string literal concatenation, ouputs a file icon and File as a string.

View File

@ -0,0 +1,611 @@
// Generated by GenerateIconFontCppHeaders.py
// from https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/src/icons.yml
#pragma once
#define ICON_MIN_FA 0xf000
#define ICON_MAX_FA 0xf295
#define ICON_FA_GLASS "\xEF\x80\x80"
#define ICON_FA_MUSIC "\xEF\x80\x81"
#define ICON_FA_SEARCH "\xEF\x80\x82"
#define ICON_FA_ENVELOPE_O "\xEF\x80\x83"
#define ICON_FA_HEART "\xEF\x80\x84"
#define ICON_FA_STAR "\xEF\x80\x85"
#define ICON_FA_STAR_O "\xEF\x80\x86"
#define ICON_FA_USER "\xEF\x80\x87"
#define ICON_FA_FILM "\xEF\x80\x88"
#define ICON_FA_TH_LARGE "\xEF\x80\x89"
#define ICON_FA_TH "\xEF\x80\x8A"
#define ICON_FA_TH_LIST "\xEF\x80\x8B"
#define ICON_FA_CHECK "\xEF\x80\x8C"
#define ICON_FA_TIMES "\xEF\x80\x8D"
#define ICON_FA_SEARCH_PLUS "\xEF\x80\x8E"
#define ICON_FA_SEARCH_MINUS "\xEF\x80\x90"
#define ICON_FA_POWER_OFF "\xEF\x80\x91"
#define ICON_FA_SIGNAL "\xEF\x80\x92"
#define ICON_FA_COG "\xEF\x80\x93"
#define ICON_FA_TRASH_O "\xEF\x80\x94"
#define ICON_FA_HOME "\xEF\x80\x95"
#define ICON_FA_FILE_O "\xEF\x80\x96"
#define ICON_FA_CLOCK_O "\xEF\x80\x97"
#define ICON_FA_ROAD "\xEF\x80\x98"
#define ICON_FA_DOWNLOAD "\xEF\x80\x99"
#define ICON_FA_ARROW_CIRCLE_O_DOWN "\xEF\x80\x9A"
#define ICON_FA_ARROW_CIRCLE_O_UP "\xEF\x80\x9B"
#define ICON_FA_INBOX "\xEF\x80\x9C"
#define ICON_FA_PLAY_CIRCLE_O "\xEF\x80\x9D"
#define ICON_FA_REPEAT "\xEF\x80\x9E"
#define ICON_FA_REFRESH "\xEF\x80\xA1"
#define ICON_FA_LIST_ALT "\xEF\x80\xA2"
#define ICON_FA_LOCK "\xEF\x80\xA3"
#define ICON_FA_FLAG "\xEF\x80\xA4"
#define ICON_FA_HEADPHONES "\xEF\x80\xA5"
#define ICON_FA_VOLUME_OFF "\xEF\x80\xA6"
#define ICON_FA_VOLUME_DOWN "\xEF\x80\xA7"
#define ICON_FA_VOLUME_UP "\xEF\x80\xA8"
#define ICON_FA_QRCODE "\xEF\x80\xA9"
#define ICON_FA_BARCODE "\xEF\x80\xAA"
#define ICON_FA_TAG "\xEF\x80\xAB"
#define ICON_FA_TAGS "\xEF\x80\xAC"
#define ICON_FA_BOOK "\xEF\x80\xAD"
#define ICON_FA_BOOKMARK "\xEF\x80\xAE"
#define ICON_FA_PRINT "\xEF\x80\xAF"
#define ICON_FA_CAMERA "\xEF\x80\xB0"
#define ICON_FA_FONT "\xEF\x80\xB1"
#define ICON_FA_BOLD "\xEF\x80\xB2"
#define ICON_FA_ITALIC "\xEF\x80\xB3"
#define ICON_FA_TEXT_HEIGHT "\xEF\x80\xB4"
#define ICON_FA_TEXT_WIDTH "\xEF\x80\xB5"
#define ICON_FA_ALIGN_LEFT "\xEF\x80\xB6"
#define ICON_FA_ALIGN_CENTER "\xEF\x80\xB7"
#define ICON_FA_ALIGN_RIGHT "\xEF\x80\xB8"
#define ICON_FA_ALIGN_JUSTIFY "\xEF\x80\xB9"
#define ICON_FA_LIST "\xEF\x80\xBA"
#define ICON_FA_OUTDENT "\xEF\x80\xBB"
#define ICON_FA_INDENT "\xEF\x80\xBC"
#define ICON_FA_VIDEO_CAMERA "\xEF\x80\xBD"
#define ICON_FA_PICTURE_O "\xEF\x80\xBE"
#define ICON_FA_PENCIL "\xEF\x81\x80"
#define ICON_FA_MAP_MARKER "\xEF\x81\x81"
#define ICON_FA_ADJUST "\xEF\x81\x82"
#define ICON_FA_TINT "\xEF\x81\x83"
#define ICON_FA_PENCIL_SQUARE_O "\xEF\x81\x84"
#define ICON_FA_SHARE_SQUARE_O "\xEF\x81\x85"
#define ICON_FA_CHECK_SQUARE_O "\xEF\x81\x86"
#define ICON_FA_ARROWS "\xEF\x81\x87"
#define ICON_FA_STEP_BACKWARD "\xEF\x81\x88"
#define ICON_FA_FAST_BACKWARD "\xEF\x81\x89"
#define ICON_FA_BACKWARD "\xEF\x81\x8A"
#define ICON_FA_PLAY "\xEF\x81\x8B"
#define ICON_FA_PAUSE "\xEF\x81\x8C"
#define ICON_FA_STOP "\xEF\x81\x8D"
#define ICON_FA_FORWARD "\xEF\x81\x8E"
#define ICON_FA_FAST_FORWARD "\xEF\x81\x90"
#define ICON_FA_STEP_FORWARD "\xEF\x81\x91"
#define ICON_FA_EJECT "\xEF\x81\x92"
#define ICON_FA_CHEVRON_LEFT "\xEF\x81\x93"
#define ICON_FA_CHEVRON_RIGHT "\xEF\x81\x94"
#define ICON_FA_PLUS_CIRCLE "\xEF\x81\x95"
#define ICON_FA_MINUS_CIRCLE "\xEF\x81\x96"
#define ICON_FA_TIMES_CIRCLE "\xEF\x81\x97"
#define ICON_FA_CHECK_CIRCLE "\xEF\x81\x98"
#define ICON_FA_QUESTION_CIRCLE "\xEF\x81\x99"
#define ICON_FA_INFO_CIRCLE "\xEF\x81\x9A"
#define ICON_FA_CROSSHAIRS "\xEF\x81\x9B"
#define ICON_FA_TIMES_CIRCLE_O "\xEF\x81\x9C"
#define ICON_FA_CHECK_CIRCLE_O "\xEF\x81\x9D"
#define ICON_FA_BAN "\xEF\x81\x9E"
#define ICON_FA_ARROW_LEFT "\xEF\x81\xA0"
#define ICON_FA_ARROW_RIGHT "\xEF\x81\xA1"
#define ICON_FA_ARROW_UP "\xEF\x81\xA2"
#define ICON_FA_ARROW_DOWN "\xEF\x81\xA3"
#define ICON_FA_SHARE "\xEF\x81\xA4"
#define ICON_FA_EXPAND "\xEF\x81\xA5"
#define ICON_FA_COMPRESS "\xEF\x81\xA6"
#define ICON_FA_PLUS "\xEF\x81\xA7"
#define ICON_FA_MINUS "\xEF\x81\xA8"
#define ICON_FA_ASTERISK "\xEF\x81\xA9"
#define ICON_FA_EXCLAMATION_CIRCLE "\xEF\x81\xAA"
#define ICON_FA_GIFT "\xEF\x81\xAB"
#define ICON_FA_LEAF "\xEF\x81\xAC"
#define ICON_FA_FIRE "\xEF\x81\xAD"
#define ICON_FA_EYE "\xEF\x81\xAE"
#define ICON_FA_EYE_SLASH "\xEF\x81\xB0"
#define ICON_FA_EXCLAMATION_TRIANGLE "\xEF\x81\xB1"
#define ICON_FA_PLANE "\xEF\x81\xB2"
#define ICON_FA_CALENDAR "\xEF\x81\xB3"
#define ICON_FA_RANDOM "\xEF\x81\xB4"
#define ICON_FA_COMMENT "\xEF\x81\xB5"
#define ICON_FA_MAGNET "\xEF\x81\xB6"
#define ICON_FA_CHEVRON_UP "\xEF\x81\xB7"
#define ICON_FA_CHEVRON_DOWN "\xEF\x81\xB8"
#define ICON_FA_RETWEET "\xEF\x81\xB9"
#define ICON_FA_SHOPPING_CART "\xEF\x81\xBA"
#define ICON_FA_FOLDER "\xEF\x81\xBB"
#define ICON_FA_FOLDER_OPEN "\xEF\x81\xBC"
#define ICON_FA_ARROWS_V "\xEF\x81\xBD"
#define ICON_FA_ARROWS_H "\xEF\x81\xBE"
#define ICON_FA_BAR_CHART "\xEF\x82\x80"
#define ICON_FA_TWITTER_SQUARE "\xEF\x82\x81"
#define ICON_FA_FACEBOOK_SQUARE "\xEF\x82\x82"
#define ICON_FA_CAMERA_RETRO "\xEF\x82\x83"
#define ICON_FA_KEY "\xEF\x82\x84"
#define ICON_FA_COGS "\xEF\x82\x85"
#define ICON_FA_COMMENTS "\xEF\x82\x86"
#define ICON_FA_THUMBS_O_UP "\xEF\x82\x87"
#define ICON_FA_THUMBS_O_DOWN "\xEF\x82\x88"
#define ICON_FA_STAR_HALF "\xEF\x82\x89"
#define ICON_FA_HEART_O "\xEF\x82\x8A"
#define ICON_FA_SIGN_OUT "\xEF\x82\x8B"
#define ICON_FA_LINKEDIN_SQUARE "\xEF\x82\x8C"
#define ICON_FA_THUMB_TACK "\xEF\x82\x8D"
#define ICON_FA_EXTERNAL_LINK "\xEF\x82\x8E"
#define ICON_FA_SIGN_IN "\xEF\x82\x90"
#define ICON_FA_TROPHY "\xEF\x82\x91"
#define ICON_FA_GITHUB_SQUARE "\xEF\x82\x92"
#define ICON_FA_UPLOAD "\xEF\x82\x93"
#define ICON_FA_LEMON_O "\xEF\x82\x94"
#define ICON_FA_PHONE "\xEF\x82\x95"
#define ICON_FA_SQUARE_O "\xEF\x82\x96"
#define ICON_FA_BOOKMARK_O "\xEF\x82\x97"
#define ICON_FA_PHONE_SQUARE "\xEF\x82\x98"
#define ICON_FA_TWITTER "\xEF\x82\x99"
#define ICON_FA_FACEBOOK "\xEF\x82\x9A"
#define ICON_FA_GITHUB "\xEF\x82\x9B"
#define ICON_FA_UNLOCK "\xEF\x82\x9C"
#define ICON_FA_CREDIT_CARD "\xEF\x82\x9D"
#define ICON_FA_RSS "\xEF\x82\x9E"
#define ICON_FA_HDD_O "\xEF\x82\xA0"
#define ICON_FA_BULLHORN "\xEF\x82\xA1"
#define ICON_FA_BELL "\xEF\x83\xB3"
#define ICON_FA_CERTIFICATE "\xEF\x82\xA3"
#define ICON_FA_HAND_O_RIGHT "\xEF\x82\xA4"
#define ICON_FA_HAND_O_LEFT "\xEF\x82\xA5"
#define ICON_FA_HAND_O_UP "\xEF\x82\xA6"
#define ICON_FA_HAND_O_DOWN "\xEF\x82\xA7"
#define ICON_FA_ARROW_CIRCLE_LEFT "\xEF\x82\xA8"
#define ICON_FA_ARROW_CIRCLE_RIGHT "\xEF\x82\xA9"
#define ICON_FA_ARROW_CIRCLE_UP "\xEF\x82\xAA"
#define ICON_FA_ARROW_CIRCLE_DOWN "\xEF\x82\xAB"
#define ICON_FA_GLOBE "\xEF\x82\xAC"
#define ICON_FA_WRENCH "\xEF\x82\xAD"
#define ICON_FA_TASKS "\xEF\x82\xAE"
#define ICON_FA_FILTER "\xEF\x82\xB0"
#define ICON_FA_BRIEFCASE "\xEF\x82\xB1"
#define ICON_FA_ARROWS_ALT "\xEF\x82\xB2"
#define ICON_FA_USERS "\xEF\x83\x80"
#define ICON_FA_LINK "\xEF\x83\x81"
#define ICON_FA_CLOUD "\xEF\x83\x82"
#define ICON_FA_FLASK "\xEF\x83\x83"
#define ICON_FA_SCISSORS "\xEF\x83\x84"
#define ICON_FA_FILES_O "\xEF\x83\x85"
#define ICON_FA_PAPERCLIP "\xEF\x83\x86"
#define ICON_FA_FLOPPY_O "\xEF\x83\x87"
#define ICON_FA_SQUARE "\xEF\x83\x88"
#define ICON_FA_BARS "\xEF\x83\x89"
#define ICON_FA_LIST_UL "\xEF\x83\x8A"
#define ICON_FA_LIST_OL "\xEF\x83\x8B"
#define ICON_FA_STRIKETHROUGH "\xEF\x83\x8C"
#define ICON_FA_UNDERLINE "\xEF\x83\x8D"
#define ICON_FA_TABLE "\xEF\x83\x8E"
#define ICON_FA_MAGIC "\xEF\x83\x90"
#define ICON_FA_TRUCK "\xEF\x83\x91"
#define ICON_FA_PINTEREST "\xEF\x83\x92"
#define ICON_FA_PINTEREST_SQUARE "\xEF\x83\x93"
#define ICON_FA_GOOGLE_PLUS_SQUARE "\xEF\x83\x94"
#define ICON_FA_GOOGLE_PLUS "\xEF\x83\x95"
#define ICON_FA_MONEY "\xEF\x83\x96"
#define ICON_FA_CARET_DOWN "\xEF\x83\x97"
#define ICON_FA_CARET_UP "\xEF\x83\x98"
#define ICON_FA_CARET_LEFT "\xEF\x83\x99"
#define ICON_FA_CARET_RIGHT "\xEF\x83\x9A"
#define ICON_FA_COLUMNS "\xEF\x83\x9B"
#define ICON_FA_SORT "\xEF\x83\x9C"
#define ICON_FA_SORT_DESC "\xEF\x83\x9D"
#define ICON_FA_SORT_ASC "\xEF\x83\x9E"
#define ICON_FA_ENVELOPE "\xEF\x83\xA0"
#define ICON_FA_LINKEDIN "\xEF\x83\xA1"
#define ICON_FA_UNDO "\xEF\x83\xA2"
#define ICON_FA_GAVEL "\xEF\x83\xA3"
#define ICON_FA_TACHOMETER "\xEF\x83\xA4"
#define ICON_FA_COMMENT_O "\xEF\x83\xA5"
#define ICON_FA_COMMENTS_O "\xEF\x83\xA6"
#define ICON_FA_BOLT "\xEF\x83\xA7"
#define ICON_FA_SITEMAP "\xEF\x83\xA8"
#define ICON_FA_UMBRELLA "\xEF\x83\xA9"
#define ICON_FA_CLIPBOARD "\xEF\x83\xAA"
#define ICON_FA_LIGHTBULB_O "\xEF\x83\xAB"
#define ICON_FA_EXCHANGE "\xEF\x83\xAC"
#define ICON_FA_CLOUD_DOWNLOAD "\xEF\x83\xAD"
#define ICON_FA_CLOUD_UPLOAD "\xEF\x83\xAE"
#define ICON_FA_USER_MD "\xEF\x83\xB0"
#define ICON_FA_STETHOSCOPE "\xEF\x83\xB1"
#define ICON_FA_SUITCASE "\xEF\x83\xB2"
#define ICON_FA_BELL_O "\xEF\x82\xA2"
#define ICON_FA_COFFEE "\xEF\x83\xB4"
#define ICON_FA_CUTLERY "\xEF\x83\xB5"
#define ICON_FA_FILE_TEXT_O "\xEF\x83\xB6"
#define ICON_FA_BUILDING_O "\xEF\x83\xB7"
#define ICON_FA_HOSPITAL_O "\xEF\x83\xB8"
#define ICON_FA_AMBULANCE "\xEF\x83\xB9"
#define ICON_FA_MEDKIT "\xEF\x83\xBA"
#define ICON_FA_FIGHTER_JET "\xEF\x83\xBB"
#define ICON_FA_BEER "\xEF\x83\xBC"
#define ICON_FA_H_SQUARE "\xEF\x83\xBD"
#define ICON_FA_PLUS_SQUARE "\xEF\x83\xBE"
#define ICON_FA_ANGLE_DOUBLE_LEFT "\xEF\x84\x80"
#define ICON_FA_ANGLE_DOUBLE_RIGHT "\xEF\x84\x81"
#define ICON_FA_ANGLE_DOUBLE_UP "\xEF\x84\x82"
#define ICON_FA_ANGLE_DOUBLE_DOWN "\xEF\x84\x83"
#define ICON_FA_ANGLE_LEFT "\xEF\x84\x84"
#define ICON_FA_ANGLE_RIGHT "\xEF\x84\x85"
#define ICON_FA_ANGLE_UP "\xEF\x84\x86"
#define ICON_FA_ANGLE_DOWN "\xEF\x84\x87"
#define ICON_FA_DESKTOP "\xEF\x84\x88"
#define ICON_FA_LAPTOP "\xEF\x84\x89"
#define ICON_FA_TABLET "\xEF\x84\x8A"
#define ICON_FA_MOBILE "\xEF\x84\x8B"
#define ICON_FA_CIRCLE_O "\xEF\x84\x8C"
#define ICON_FA_QUOTE_LEFT "\xEF\x84\x8D"
#define ICON_FA_QUOTE_RIGHT "\xEF\x84\x8E"
#define ICON_FA_SPINNER "\xEF\x84\x90"
#define ICON_FA_CIRCLE "\xEF\x84\x91"
#define ICON_FA_REPLY "\xEF\x84\x92"
#define ICON_FA_GITHUB_ALT "\xEF\x84\x93"
#define ICON_FA_FOLDER_O "\xEF\x84\x94"
#define ICON_FA_FOLDER_OPEN_O "\xEF\x84\x95"
#define ICON_FA_SMILE_O "\xEF\x84\x98"
#define ICON_FA_FROWN_O "\xEF\x84\x99"
#define ICON_FA_MEH_O "\xEF\x84\x9A"
#define ICON_FA_GAMEPAD "\xEF\x84\x9B"
#define ICON_FA_KEYBOARD_O "\xEF\x84\x9C"
#define ICON_FA_FLAG_O "\xEF\x84\x9D"
#define ICON_FA_FLAG_CHECKERED "\xEF\x84\x9E"
#define ICON_FA_TERMINAL "\xEF\x84\xA0"
#define ICON_FA_CODE "\xEF\x84\xA1"
#define ICON_FA_REPLY_ALL "\xEF\x84\xA2"
#define ICON_FA_STAR_HALF_O "\xEF\x84\xA3"
#define ICON_FA_LOCATION_ARROW "\xEF\x84\xA4"
#define ICON_FA_CROP "\xEF\x84\xA5"
#define ICON_FA_CODE_FORK "\xEF\x84\xA6"
#define ICON_FA_CHAIN_BROKEN "\xEF\x84\xA7"
#define ICON_FA_QUESTION "\xEF\x84\xA8"
#define ICON_FA_INFO "\xEF\x84\xA9"
#define ICON_FA_EXCLAMATION "\xEF\x84\xAA"
#define ICON_FA_SUPERSCRIPT "\xEF\x84\xAB"
#define ICON_FA_SUBSCRIPT "\xEF\x84\xAC"
#define ICON_FA_ERASER "\xEF\x84\xAD"
#define ICON_FA_PUZZLE_PIECE "\xEF\x84\xAE"
#define ICON_FA_MICROPHONE "\xEF\x84\xB0"
#define ICON_FA_MICROPHONE_SLASH "\xEF\x84\xB1"
#define ICON_FA_SHIELD "\xEF\x84\xB2"
#define ICON_FA_CALENDAR_O "\xEF\x84\xB3"
#define ICON_FA_FIRE_EXTINGUISHER "\xEF\x84\xB4"
#define ICON_FA_ROCKET "\xEF\x84\xB5"
#define ICON_FA_MAXCDN "\xEF\x84\xB6"
#define ICON_FA_CHEVRON_CIRCLE_LEFT "\xEF\x84\xB7"
#define ICON_FA_CHEVRON_CIRCLE_RIGHT "\xEF\x84\xB8"
#define ICON_FA_CHEVRON_CIRCLE_UP "\xEF\x84\xB9"
#define ICON_FA_CHEVRON_CIRCLE_DOWN "\xEF\x84\xBA"
#define ICON_FA_HTML5 "\xEF\x84\xBB"
#define ICON_FA_CSS3 "\xEF\x84\xBC"
#define ICON_FA_ANCHOR "\xEF\x84\xBD"
#define ICON_FA_UNLOCK_ALT "\xEF\x84\xBE"
#define ICON_FA_BULLSEYE "\xEF\x85\x80"
#define ICON_FA_ELLIPSIS_H "\xEF\x85\x81"
#define ICON_FA_ELLIPSIS_V "\xEF\x85\x82"
#define ICON_FA_RSS_SQUARE "\xEF\x85\x83"
#define ICON_FA_PLAY_CIRCLE "\xEF\x85\x84"
#define ICON_FA_TICKET "\xEF\x85\x85"
#define ICON_FA_MINUS_SQUARE "\xEF\x85\x86"
#define ICON_FA_MINUS_SQUARE_O "\xEF\x85\x87"
#define ICON_FA_LEVEL_UP "\xEF\x85\x88"
#define ICON_FA_LEVEL_DOWN "\xEF\x85\x89"
#define ICON_FA_CHECK_SQUARE "\xEF\x85\x8A"
#define ICON_FA_PENCIL_SQUARE "\xEF\x85\x8B"
#define ICON_FA_EXTERNAL_LINK_SQUARE "\xEF\x85\x8C"
#define ICON_FA_SHARE_SQUARE "\xEF\x85\x8D"
#define ICON_FA_COMPASS "\xEF\x85\x8E"
#define ICON_FA_CARET_SQUARE_O_DOWN "\xEF\x85\x90"
#define ICON_FA_CARET_SQUARE_O_UP "\xEF\x85\x91"
#define ICON_FA_CARET_SQUARE_O_RIGHT "\xEF\x85\x92"
#define ICON_FA_EUR "\xEF\x85\x93"
#define ICON_FA_GBP "\xEF\x85\x94"
#define ICON_FA_USD "\xEF\x85\x95"
#define ICON_FA_INR "\xEF\x85\x96"
#define ICON_FA_JPY "\xEF\x85\x97"
#define ICON_FA_RUB "\xEF\x85\x98"
#define ICON_FA_KRW "\xEF\x85\x99"
#define ICON_FA_BTC "\xEF\x85\x9A"
#define ICON_FA_FILE "\xEF\x85\x9B"
#define ICON_FA_FILE_TEXT "\xEF\x85\x9C"
#define ICON_FA_SORT_ALPHA_ASC "\xEF\x85\x9D"
#define ICON_FA_SORT_ALPHA_DESC "\xEF\x85\x9E"
#define ICON_FA_SORT_AMOUNT_ASC "\xEF\x85\xA0"
#define ICON_FA_SORT_AMOUNT_DESC "\xEF\x85\xA1"
#define ICON_FA_SORT_NUMERIC_ASC "\xEF\x85\xA2"
#define ICON_FA_SORT_NUMERIC_DESC "\xEF\x85\xA3"
#define ICON_FA_THUMBS_UP "\xEF\x85\xA4"
#define ICON_FA_THUMBS_DOWN "\xEF\x85\xA5"
#define ICON_FA_YOUTUBE_SQUARE "\xEF\x85\xA6"
#define ICON_FA_YOUTUBE "\xEF\x85\xA7"
#define ICON_FA_XING "\xEF\x85\xA8"
#define ICON_FA_XING_SQUARE "\xEF\x85\xA9"
#define ICON_FA_YOUTUBE_PLAY "\xEF\x85\xAA"
#define ICON_FA_DROPBOX "\xEF\x85\xAB"
#define ICON_FA_STACK_OVERFLOW "\xEF\x85\xAC"
#define ICON_FA_INSTAGRAM "\xEF\x85\xAD"
#define ICON_FA_FLICKR "\xEF\x85\xAE"
#define ICON_FA_ADN "\xEF\x85\xB0"
#define ICON_FA_BITBUCKET "\xEF\x85\xB1"
#define ICON_FA_BITBUCKET_SQUARE "\xEF\x85\xB2"
#define ICON_FA_TUMBLR "\xEF\x85\xB3"
#define ICON_FA_TUMBLR_SQUARE "\xEF\x85\xB4"
#define ICON_FA_LONG_ARROW_DOWN "\xEF\x85\xB5"
#define ICON_FA_LONG_ARROW_UP "\xEF\x85\xB6"
#define ICON_FA_LONG_ARROW_LEFT "\xEF\x85\xB7"
#define ICON_FA_LONG_ARROW_RIGHT "\xEF\x85\xB8"
#define ICON_FA_APPLE "\xEF\x85\xB9"
#define ICON_FA_WINDOWS "\xEF\x85\xBA"
#define ICON_FA_ANDROID "\xEF\x85\xBB"
#define ICON_FA_LINUX "\xEF\x85\xBC"
#define ICON_FA_DRIBBBLE "\xEF\x85\xBD"
#define ICON_FA_SKYPE "\xEF\x85\xBE"
#define ICON_FA_FOURSQUARE "\xEF\x86\x80"
#define ICON_FA_TRELLO "\xEF\x86\x81"
#define ICON_FA_FEMALE "\xEF\x86\x82"
#define ICON_FA_MALE "\xEF\x86\x83"
#define ICON_FA_GRATIPAY "\xEF\x86\x84"
#define ICON_FA_SUN_O "\xEF\x86\x85"
#define ICON_FA_MOON_O "\xEF\x86\x86"
#define ICON_FA_ARCHIVE "\xEF\x86\x87"
#define ICON_FA_BUG "\xEF\x86\x88"
#define ICON_FA_VK "\xEF\x86\x89"
#define ICON_FA_WEIBO "\xEF\x86\x8A"
#define ICON_FA_RENREN "\xEF\x86\x8B"
#define ICON_FA_PAGELINES "\xEF\x86\x8C"
#define ICON_FA_STACK_EXCHANGE "\xEF\x86\x8D"
#define ICON_FA_ARROW_CIRCLE_O_RIGHT "\xEF\x86\x8E"
#define ICON_FA_ARROW_CIRCLE_O_LEFT "\xEF\x86\x90"
#define ICON_FA_CARET_SQUARE_O_LEFT "\xEF\x86\x91"
#define ICON_FA_DOT_CIRCLE_O "\xEF\x86\x92"
#define ICON_FA_WHEELCHAIR "\xEF\x86\x93"
#define ICON_FA_VIMEO_SQUARE "\xEF\x86\x94"
#define ICON_FA_TRY "\xEF\x86\x95"
#define ICON_FA_PLUS_SQUARE_O "\xEF\x86\x96"
#define ICON_FA_SPACE_SHUTTLE "\xEF\x86\x97"
#define ICON_FA_SLACK "\xEF\x86\x98"
#define ICON_FA_ENVELOPE_SQUARE "\xEF\x86\x99"
#define ICON_FA_WORDPRESS "\xEF\x86\x9A"
#define ICON_FA_OPENID "\xEF\x86\x9B"
#define ICON_FA_UNIVERSITY "\xEF\x86\x9C"
#define ICON_FA_GRADUATION_CAP "\xEF\x86\x9D"
#define ICON_FA_YAHOO "\xEF\x86\x9E"
#define ICON_FA_GOOGLE "\xEF\x86\xA0"
#define ICON_FA_REDDIT "\xEF\x86\xA1"
#define ICON_FA_REDDIT_SQUARE "\xEF\x86\xA2"
#define ICON_FA_STUMBLEUPON_CIRCLE "\xEF\x86\xA3"
#define ICON_FA_STUMBLEUPON "\xEF\x86\xA4"
#define ICON_FA_DELICIOUS "\xEF\x86\xA5"
#define ICON_FA_DIGG "\xEF\x86\xA6"
#define ICON_FA_PIED_PIPER "\xEF\x86\xA7"
#define ICON_FA_PIED_PIPER_ALT "\xEF\x86\xA8"
#define ICON_FA_DRUPAL "\xEF\x86\xA9"
#define ICON_FA_JOOMLA "\xEF\x86\xAA"
#define ICON_FA_LANGUAGE "\xEF\x86\xAB"
#define ICON_FA_FAX "\xEF\x86\xAC"
#define ICON_FA_BUILDING "\xEF\x86\xAD"
#define ICON_FA_CHILD "\xEF\x86\xAE"
#define ICON_FA_PAW "\xEF\x86\xB0"
#define ICON_FA_SPOON "\xEF\x86\xB1"
#define ICON_FA_CUBE "\xEF\x86\xB2"
#define ICON_FA_CUBES "\xEF\x86\xB3"
#define ICON_FA_BEHANCE "\xEF\x86\xB4"
#define ICON_FA_BEHANCE_SQUARE "\xEF\x86\xB5"
#define ICON_FA_STEAM "\xEF\x86\xB6"
#define ICON_FA_STEAM_SQUARE "\xEF\x86\xB7"
#define ICON_FA_RECYCLE "\xEF\x86\xB8"
#define ICON_FA_CAR "\xEF\x86\xB9"
#define ICON_FA_TAXI "\xEF\x86\xBA"
#define ICON_FA_TREE "\xEF\x86\xBB"
#define ICON_FA_SPOTIFY "\xEF\x86\xBC"
#define ICON_FA_DEVIANTART "\xEF\x86\xBD"
#define ICON_FA_SOUNDCLOUD "\xEF\x86\xBE"
#define ICON_FA_DATABASE "\xEF\x87\x80"
#define ICON_FA_FILE_PDF_O "\xEF\x87\x81"
#define ICON_FA_FILE_WORD_O "\xEF\x87\x82"
#define ICON_FA_FILE_EXCEL_O "\xEF\x87\x83"
#define ICON_FA_FILE_POWERPOINT_O "\xEF\x87\x84"
#define ICON_FA_FILE_IMAGE_O "\xEF\x87\x85"
#define ICON_FA_FILE_ARCHIVE_O "\xEF\x87\x86"
#define ICON_FA_FILE_AUDIO_O "\xEF\x87\x87"
#define ICON_FA_FILE_VIDEO_O "\xEF\x87\x88"
#define ICON_FA_FILE_CODE_O "\xEF\x87\x89"
#define ICON_FA_VINE "\xEF\x87\x8A"
#define ICON_FA_CODEPEN "\xEF\x87\x8B"
#define ICON_FA_JSFIDDLE "\xEF\x87\x8C"
#define ICON_FA_LIFE_RING "\xEF\x87\x8D"
#define ICON_FA_CIRCLE_O_NOTCH "\xEF\x87\x8E"
#define ICON_FA_REBEL "\xEF\x87\x90"
#define ICON_FA_EMPIRE "\xEF\x87\x91"
#define ICON_FA_GIT_SQUARE "\xEF\x87\x92"
#define ICON_FA_GIT "\xEF\x87\x93"
#define ICON_FA_HACKER_NEWS "\xEF\x87\x94"
#define ICON_FA_TENCENT_WEIBO "\xEF\x87\x95"
#define ICON_FA_QQ "\xEF\x87\x96"
#define ICON_FA_WEIXIN "\xEF\x87\x97"
#define ICON_FA_PAPER_PLANE "\xEF\x87\x98"
#define ICON_FA_PAPER_PLANE_O "\xEF\x87\x99"
#define ICON_FA_HISTORY "\xEF\x87\x9A"
#define ICON_FA_CIRCLE_THIN "\xEF\x87\x9B"
#define ICON_FA_HEADER "\xEF\x87\x9C"
#define ICON_FA_PARAGRAPH "\xEF\x87\x9D"
#define ICON_FA_SLIDERS "\xEF\x87\x9E"
#define ICON_FA_SHARE_ALT "\xEF\x87\xA0"
#define ICON_FA_SHARE_ALT_SQUARE "\xEF\x87\xA1"
#define ICON_FA_BOMB "\xEF\x87\xA2"
#define ICON_FA_FUTBOL_O "\xEF\x87\xA3"
#define ICON_FA_TTY "\xEF\x87\xA4"
#define ICON_FA_BINOCULARS "\xEF\x87\xA5"
#define ICON_FA_PLUG "\xEF\x87\xA6"
#define ICON_FA_SLIDESHARE "\xEF\x87\xA7"
#define ICON_FA_TWITCH "\xEF\x87\xA8"
#define ICON_FA_YELP "\xEF\x87\xA9"
#define ICON_FA_NEWSPAPER_O "\xEF\x87\xAA"
#define ICON_FA_WIFI "\xEF\x87\xAB"
#define ICON_FA_CALCULATOR "\xEF\x87\xAC"
#define ICON_FA_PAYPAL "\xEF\x87\xAD"
#define ICON_FA_GOOGLE_WALLET "\xEF\x87\xAE"
#define ICON_FA_CC_VISA "\xEF\x87\xB0"
#define ICON_FA_CC_MASTERCARD "\xEF\x87\xB1"
#define ICON_FA_CC_DISCOVER "\xEF\x87\xB2"
#define ICON_FA_CC_AMEX "\xEF\x87\xB3"
#define ICON_FA_CC_PAYPAL "\xEF\x87\xB4"
#define ICON_FA_CC_STRIPE "\xEF\x87\xB5"
#define ICON_FA_BELL_SLASH "\xEF\x87\xB6"
#define ICON_FA_BELL_SLASH_O "\xEF\x87\xB7"
#define ICON_FA_TRASH "\xEF\x87\xB8"
#define ICON_FA_COPYRIGHT "\xEF\x87\xB9"
#define ICON_FA_AT "\xEF\x87\xBA"
#define ICON_FA_EYEDROPPER "\xEF\x87\xBB"
#define ICON_FA_PAINT_BRUSH "\xEF\x87\xBC"
#define ICON_FA_BIRTHDAY_CAKE "\xEF\x87\xBD"
#define ICON_FA_AREA_CHART "\xEF\x87\xBE"
#define ICON_FA_PIE_CHART "\xEF\x88\x80"
#define ICON_FA_LINE_CHART "\xEF\x88\x81"
#define ICON_FA_LASTFM "\xEF\x88\x82"
#define ICON_FA_LASTFM_SQUARE "\xEF\x88\x83"
#define ICON_FA_TOGGLE_OFF "\xEF\x88\x84"
#define ICON_FA_TOGGLE_ON "\xEF\x88\x85"
#define ICON_FA_BICYCLE "\xEF\x88\x86"
#define ICON_FA_BUS "\xEF\x88\x87"
#define ICON_FA_IOXHOST "\xEF\x88\x88"
#define ICON_FA_ANGELLIST "\xEF\x88\x89"
#define ICON_FA_CC "\xEF\x88\x8A"
#define ICON_FA_ILS "\xEF\x88\x8B"
#define ICON_FA_MEANPATH "\xEF\x88\x8C"
#define ICON_FA_BUYSELLADS "\xEF\x88\x8D"
#define ICON_FA_CONNECTDEVELOP "\xEF\x88\x8E"
#define ICON_FA_DASHCUBE "\xEF\x88\x90"
#define ICON_FA_FORUMBEE "\xEF\x88\x91"
#define ICON_FA_LEANPUB "\xEF\x88\x92"
#define ICON_FA_SELLSY "\xEF\x88\x93"
#define ICON_FA_SHIRTSINBULK "\xEF\x88\x94"
#define ICON_FA_SIMPLYBUILT "\xEF\x88\x95"
#define ICON_FA_SKYATLAS "\xEF\x88\x96"
#define ICON_FA_CART_PLUS "\xEF\x88\x97"
#define ICON_FA_CART_ARROW_DOWN "\xEF\x88\x98"
#define ICON_FA_DIAMOND "\xEF\x88\x99"
#define ICON_FA_SHIP "\xEF\x88\x9A"
#define ICON_FA_USER_SECRET "\xEF\x88\x9B"
#define ICON_FA_MOTORCYCLE "\xEF\x88\x9C"
#define ICON_FA_STREET_VIEW "\xEF\x88\x9D"
#define ICON_FA_HEARTBEAT "\xEF\x88\x9E"
#define ICON_FA_VENUS "\xEF\x88\xA1"
#define ICON_FA_MARS "\xEF\x88\xA2"
#define ICON_FA_MERCURY "\xEF\x88\xA3"
#define ICON_FA_TRANSGENDER "\xEF\x88\xA4"
#define ICON_FA_TRANSGENDER_ALT "\xEF\x88\xA5"
#define ICON_FA_VENUS_DOUBLE "\xEF\x88\xA6"
#define ICON_FA_MARS_DOUBLE "\xEF\x88\xA7"
#define ICON_FA_VENUS_MARS "\xEF\x88\xA8"
#define ICON_FA_MARS_STROKE "\xEF\x88\xA9"
#define ICON_FA_MARS_STROKE_V "\xEF\x88\xAA"
#define ICON_FA_MARS_STROKE_H "\xEF\x88\xAB"
#define ICON_FA_NEUTER "\xEF\x88\xAC"
#define ICON_FA_GENDERLESS "\xEF\x88\xAD"
#define ICON_FA_FACEBOOK_OFFICIAL "\xEF\x88\xB0"
#define ICON_FA_PINTEREST_P "\xEF\x88\xB1"
#define ICON_FA_WHATSAPP "\xEF\x88\xB2"
#define ICON_FA_SERVER "\xEF\x88\xB3"
#define ICON_FA_USER_PLUS "\xEF\x88\xB4"
#define ICON_FA_USER_TIMES "\xEF\x88\xB5"
#define ICON_FA_BED "\xEF\x88\xB6"
#define ICON_FA_VIACOIN "\xEF\x88\xB7"
#define ICON_FA_TRAIN "\xEF\x88\xB8"
#define ICON_FA_SUBWAY "\xEF\x88\xB9"
#define ICON_FA_MEDIUM "\xEF\x88\xBA"
#define ICON_FA_Y_COMBINATOR "\xEF\x88\xBB"
#define ICON_FA_OPTIN_MONSTER "\xEF\x88\xBC"
#define ICON_FA_OPENCART "\xEF\x88\xBD"
#define ICON_FA_EXPEDITEDSSL "\xEF\x88\xBE"
#define ICON_FA_BATTERY_FULL "\xEF\x89\x80"
#define ICON_FA_BATTERY_THREE_QUARTERS "\xEF\x89\x81"
#define ICON_FA_BATTERY_HALF "\xEF\x89\x82"
#define ICON_FA_BATTERY_QUARTER "\xEF\x89\x83"
#define ICON_FA_BATTERY_EMPTY "\xEF\x89\x84"
#define ICON_FA_MOUSE_POINTER "\xEF\x89\x85"
#define ICON_FA_I_CURSOR "\xEF\x89\x86"
#define ICON_FA_OBJECT_GROUP "\xEF\x89\x87"
#define ICON_FA_OBJECT_UNGROUP "\xEF\x89\x88"
#define ICON_FA_STICKY_NOTE "\xEF\x89\x89"
#define ICON_FA_STICKY_NOTE_O "\xEF\x89\x8A"
#define ICON_FA_CC_JCB "\xEF\x89\x8B"
#define ICON_FA_CC_DINERS_CLUB "\xEF\x89\x8C"
#define ICON_FA_CLONE "\xEF\x89\x8D"
#define ICON_FA_BALANCE_SCALE "\xEF\x89\x8E"
#define ICON_FA_HOURGLASS_O "\xEF\x89\x90"
#define ICON_FA_HOURGLASS_START "\xEF\x89\x91"
#define ICON_FA_HOURGLASS_HALF "\xEF\x89\x92"
#define ICON_FA_HOURGLASS_END "\xEF\x89\x93"
#define ICON_FA_HOURGLASS "\xEF\x89\x94"
#define ICON_FA_HAND_ROCK_O "\xEF\x89\x95"
#define ICON_FA_HAND_PAPER_O "\xEF\x89\x96"
#define ICON_FA_HAND_SCISSORS_O "\xEF\x89\x97"
#define ICON_FA_HAND_LIZARD_O "\xEF\x89\x98"
#define ICON_FA_HAND_SPOCK_O "\xEF\x89\x99"
#define ICON_FA_HAND_POINTER_O "\xEF\x89\x9A"
#define ICON_FA_HAND_PEACE_O "\xEF\x89\x9B"
#define ICON_FA_TRADEMARK "\xEF\x89\x9C"
#define ICON_FA_REGISTERED "\xEF\x89\x9D"
#define ICON_FA_CREATIVE_COMMONS "\xEF\x89\x9E"
#define ICON_FA_GG "\xEF\x89\xA0"
#define ICON_FA_GG_CIRCLE "\xEF\x89\xA1"
#define ICON_FA_TRIPADVISOR "\xEF\x89\xA2"
#define ICON_FA_ODNOKLASSNIKI "\xEF\x89\xA3"
#define ICON_FA_ODNOKLASSNIKI_SQUARE "\xEF\x89\xA4"
#define ICON_FA_GET_POCKET "\xEF\x89\xA5"
#define ICON_FA_WIKIPEDIA_W "\xEF\x89\xA6"
#define ICON_FA_SAFARI "\xEF\x89\xA7"
#define ICON_FA_CHROME "\xEF\x89\xA8"
#define ICON_FA_FIREFOX "\xEF\x89\xA9"
#define ICON_FA_OPERA "\xEF\x89\xAA"
#define ICON_FA_INTERNET_EXPLORER "\xEF\x89\xAB"
#define ICON_FA_TELEVISION "\xEF\x89\xAC"
#define ICON_FA_CONTAO "\xEF\x89\xAD"
#define ICON_FA_500PX "\xEF\x89\xAE"
#define ICON_FA_AMAZON "\xEF\x89\xB0"
#define ICON_FA_CALENDAR_PLUS_O "\xEF\x89\xB1"
#define ICON_FA_CALENDAR_MINUS_O "\xEF\x89\xB2"
#define ICON_FA_CALENDAR_TIMES_O "\xEF\x89\xB3"
#define ICON_FA_CALENDAR_CHECK_O "\xEF\x89\xB4"
#define ICON_FA_INDUSTRY "\xEF\x89\xB5"
#define ICON_FA_MAP_PIN "\xEF\x89\xB6"
#define ICON_FA_MAP_SIGNS "\xEF\x89\xB7"
#define ICON_FA_MAP_O "\xEF\x89\xB8"
#define ICON_FA_MAP "\xEF\x89\xB9"
#define ICON_FA_COMMENTING "\xEF\x89\xBA"
#define ICON_FA_COMMENTING_O "\xEF\x89\xBB"
#define ICON_FA_HOUZZ "\xEF\x89\xBC"
#define ICON_FA_VIMEO "\xEF\x89\xBD"
#define ICON_FA_BLACK_TIE "\xEF\x89\xBE"
#define ICON_FA_FONTICONS "\xEF\x8A\x80"
#define ICON_FA_REDDIT_ALIEN "\xEF\x8A\x81"
#define ICON_FA_EDGE "\xEF\x8A\x82"
#define ICON_FA_CREDIT_CARD_ALT "\xEF\x8A\x83"
#define ICON_FA_CODIEPIE "\xEF\x8A\x84"
#define ICON_FA_MODX "\xEF\x8A\x85"
#define ICON_FA_FORT_AWESOME "\xEF\x8A\x86"
#define ICON_FA_USB "\xEF\x8A\x87"
#define ICON_FA_PRODUCT_HUNT "\xEF\x8A\x88"
#define ICON_FA_MIXCLOUD "\xEF\x8A\x89"
#define ICON_FA_SCRIBD "\xEF\x8A\x8A"
#define ICON_FA_PAUSE_CIRCLE "\xEF\x8A\x8B"
#define ICON_FA_PAUSE_CIRCLE_O "\xEF\x8A\x8C"
#define ICON_FA_STOP_CIRCLE "\xEF\x8A\x8D"
#define ICON_FA_STOP_CIRCLE_O "\xEF\x8A\x8E"
#define ICON_FA_SHOPPING_BAG "\xEF\x8A\x90"
#define ICON_FA_SHOPPING_BASKET "\xEF\x8A\x91"
#define ICON_FA_HASHTAG "\xEF\x8A\x92"
#define ICON_FA_BLUETOOTH "\xEF\x8A\x93"
#define ICON_FA_BLUETOOTH_B "\xEF\x8A\x94"
#define ICON_FA_PERCENT "\xEF\x8A\x95"

View File

@ -0,0 +1,234 @@
// Generated by GenerateIconFontCppHeaders.py
// from https://raw.githubusercontent.com/SamBrishes/kenney-icon-font/master/css/kenney-icons.css
#pragma once
#define ICON_MIN_KI 0xe900
#define ICON_MAX_KI 0xe9e3
#define ICON_KI_HOME "\xEE\xA4\x80"
#define ICON_KI_ADJUST "\xEE\xA4\x81"
#define ICON_KI_WRENCH "\xEE\xA4\x82"
#define ICON_KI_COG "\xEE\xA4\x83"
#define ICON_KI_OFF "\xEE\xA4\x84"
#define ICON_KI_EXPAND "\xEE\xA4\x85"
#define ICON_KI_REDUCE "\xEE\xA4\x86"
#define ICON_KI_MOVIE "\xEE\xA4\x87"
#define ICON_KI_FLAP "\xEE\xA4\x88"
#define ICON_KI_SHOPPING_CART "\xEE\xA4\x89"
#define ICON_KI_SHOPPING_CASE "\xEE\xA4\x8A"
#define ICON_KI_EXTERNAL "\xEE\xA4\x8B"
#define ICON_KI_NETWORK "\xEE\xA4\x8C"
#define ICON_KI_CHECK "\xEE\xA4\x8D"
#define ICON_KI_TIMES "\xEE\xA4\x8E"
#define ICON_KI_TIMES_CIRCLE "\xEE\xA4\x8F"
#define ICON_KI_PLUS "\xEE\xA4\x90"
#define ICON_KI_PLUS_CIRCLE "\xEE\xA4\x91"
#define ICON_KI_MINUS "\xEE\xA4\x92"
#define ICON_KI_MINUS_CIRCLE "\xEE\xA4\x93"
#define ICON_KI_INFO "\xEE\xA4\x94"
#define ICON_KI_INFO_CIRCLE "\xEE\xA4\x95"
#define ICON_KI_QUESTION "\xEE\xA4\x96"
#define ICON_KI_QUESTION_CIRCLE "\xEE\xA4\x97"
#define ICON_KI_EXLAMATION "\xEE\xA4\x98"
#define ICON_KI_EXCLAMATION_CIRCLE "\xEE\xA4\x99"
#define ICON_KI_EXCLAMATION_TRIANGLE "\xEE\xA4\x9A"
#define ICON_KI_PAINT_BRUSH "\xEE\xA4\x9B"
#define ICON_KI_PENCIL "\xEE\xA4\x9C"
#define ICON_KI_CHECKBOX "\xEE\xA4\x9D"
#define ICON_KI_CHECKBOX_CHECKED "\xEE\xA4\x9E"
#define ICON_KI_RADIO "\xEE\xA4\x9F"
#define ICON_KI_RADIO_CHECKED "\xEE\xA4\xA0"
#define ICON_KI_SORT_VERTICAL "\xEE\xA4\xA1"
#define ICON_KI_SORT_HORIZONTAL "\xEE\xA4\xA2"
#define ICON_KI_GRID "\xEE\xA4\xA3"
#define ICON_KI_LIST "\xEE\xA4\xA4"
#define ICON_KI_ROWS "\xEE\xA4\xA5"
#define ICON_KI_CELLS "\xEE\xA4\xA6"
#define ICON_KI_SIGNAL_LOW "\xEE\xA4\xA7"
#define ICON_KI_SIGNAL_MEDIUM "\xEE\xA4\xA8"
#define ICON_KI_SIGNAL_HIGH "\xEE\xA4\xA9"
#define ICON_KI_TRASH "\xEE\xA4\xAA"
#define ICON_KI_TRASH_ALT "\xEE\xA4\xAB"
#define ICON_KI_RELOAD_INVERSE "\xEE\xA4\xAC"
#define ICON_KI_RELOAD "\xEE\xA4\xAD"
#define ICON_KI_TOP "\xEE\xA4\xAE"
#define ICON_KI_BOTTOM "\xEE\xA4\xAF"
#define ICON_KI_UPLOAD "\xEE\xA4\xB0"
#define ICON_KI_DOWNLOAD "\xEE\xA4\xB1"
#define ICON_KI_CLOUD "\xEE\xA4\xB2"
#define ICON_KI_CLOUD_UPLOAD "\xEE\xA4\xB3"
#define ICON_KI_CLOUD_DOWNLOAD "\xEE\xA4\xB4"
#define ICON_KI_SEARCH "\xEE\xA4\xB5"
#define ICON_KI_SEARCH_PLUS "\xEE\xA4\xB6"
#define ICON_KI_SEARCH_MINUS "\xEE\xA4\xB7"
#define ICON_KI_SEARCH_EQUAL "\xEE\xA4\xB8"
#define ICON_KI_LOCK "\xEE\xA4\xB9"
#define ICON_KI_UNLOCK "\xEE\xA4\xBA"
#define ICON_KI_USER "\xEE\xA4\xBB"
#define ICON_KI_USERS "\xEE\xA4\xBC"
#define ICON_KI_USERS_ALT "\xEE\xA4\xBD"
#define ICON_KI_SIGN_IN "\xEE\xA4\xBE"
#define ICON_KI_SIGN_IN_INVERSE "\xEE\xA4\xBF"
#define ICON_KI_SIGN_OUT "\xEE\xA5\x80"
#define ICON_KI_SIGN_OUT_INVERSE "\xEE\xA5\x81"
#define ICON_KI_ARROW_TOP "\xEE\xA5\x82"
#define ICON_KI_ARROW_RIGHT "\xEE\xA5\x83"
#define ICON_KI_ARROW_BOTTOM "\xEE\xA5\x84"
#define ICON_KI_ARROW_LEFT "\xEE\xA5\x85"
#define ICON_KI_ARROW_TOP_LEFT "\xEE\xA5\x86"
#define ICON_KI_ARROW_TOP_RIGHT "\xEE\xA5\x87"
#define ICON_KI_ARROW_BOTTOM_RIGHT "\xEE\xA5\x88"
#define ICON_KI_ARROW_BOTTOM_LEFT "\xEE\xA5\x89"
#define ICON_KI_CARET_TOP "\xEE\xA5\x8A"
#define ICON_KI_CARET_RIGHT "\xEE\xA5\x8B"
#define ICON_KI_CARET_BOTTOM "\xEE\xA5\x8C"
#define ICON_KI_CARET_LEFT "\xEE\xA5\x8D"
#define ICON_KI_NEXT_ALT "\xEE\xA5\x8E"
#define ICON_KI_NEXT "\xEE\xA5\x8F"
#define ICON_KI_PREVIOUS "\xEE\xA5\x90"
#define ICON_KI_PREVIOUS_ALT "\xEE\xA5\x91"
#define ICON_KI_FILL "\xEE\xA5\x92"
#define ICON_KI_ERASER "\xEE\xA5\x93"
#define ICON_KI_SAVE "\xEE\xA5\x94"
#define ICON_KI_STEP_BACKWARD "\xEE\xA5\x95"
#define ICON_KI_BACKWARD "\xEE\xA5\x96"
#define ICON_KI_PAUSE "\xEE\xA5\x97"
#define ICON_KI_FORWARD "\xEE\xA5\x98"
#define ICON_KI_STEP_FORWARD "\xEE\xA5\x99"
#define ICON_KI_STOP "\xEE\xA5\x9A"
#define ICON_KI_REC "\xEE\xA5\x9B"
#define ICON_KI_CURSOR "\xEE\xA5\x9C"
#define ICON_KI_POINTER "\xEE\xA5\x9D"
#define ICON_KI_EXIT "\xEE\xA5\x9E"
#define ICON_KI_FIGURE "\xEE\xA5\x9F"
#define ICON_KI_CAR "\xEE\xA5\xA0"
#define ICON_KI_COIN "\xEE\xA5\xA1"
#define ICON_KI_KEY "\xEE\xA5\xA2"
#define ICON_KI_CUB "\xEE\xA5\xA3"
#define ICON_KI_DIAMOND "\xEE\xA5\xA4"
#define ICON_KI_BADGE "\xEE\xA5\xA5"
#define ICON_KI_BADGE_ALT "\xEE\xA5\xA6"
#define ICON_KI_PODIUM "\xEE\xA5\xA7"
#define ICON_KI_PODIUM_ALT "\xEE\xA5\xA8"
#define ICON_KI_FLAG "\xEE\xA5\xA9"
#define ICON_KI_FIST "\xEE\xA5\xAA"
#define ICON_KI_FIST_CIRCLE "\xEE\xA5\xAB"
#define ICON_KI_HEART "\xEE\xA5\xAC"
#define ICON_KI_HEART_HALF "\xEE\xA5\xAD"
#define ICON_KI_HEART_HALF_O "\xEE\xA5\xAE"
#define ICON_KI_HEART_O "\xEE\xA5\xAF"
#define ICON_KI_STAR "\xEE\xA5\xB0"
#define ICON_KI_STAR_HALF "\xEE\xA5\xB1"
#define ICON_KI_STAR_HALF_O "\xEE\xA5\xB2"
#define ICON_KI_STAR_O "\xEE\xA5\xB3"
#define ICON_KI_BUTTON_B "\xEE\xA5\xB4"
#define ICON_KI_MUSIC_ON "\xEE\xA5\xB5"
#define ICON_KI_MUSIC_OFF "\xEE\xA5\xB6"
#define ICON_KI_SOUND_ON "\xEE\xA5\xB7"
#define ICON_KI_SOUND_OFF "\xEE\xA5\xB8"
#define ICON_KI_SOUND_OFF_ALT "\xEE\xA5\xB9"
#define ICON_KI_ROBOT "\xEE\xA5\xBA"
#define ICON_KI_COMPUTER "\xEE\xA5\xBB"
#define ICON_KI_TABLET "\xEE\xA5\xBC"
#define ICON_KI_SMARTPHONE "\xEE\xA5\xBD"
#define ICON_KI_DEVICE "\xEE\xA5\xBE"
#define ICON_KI_DEVICE_TILT_LEFT "\xEE\xA5\xBF"
#define ICON_KI_DEVICE_TILT_RIGHT "\xEE\xA6\x80"
#define ICON_KI_GAMEPAD "\xEE\xA6\x81"
#define ICON_KI_GAMEPAD_ALT "\xEE\xA6\x82"
#define ICON_KI_GAMEPAD_TILT_LEFT "\xEE\xA6\x83"
#define ICON_KI_GAMEPAD_TILT_RIGHT "\xEE\xA6\x84"
#define ICON_KI_PLAYER_ONE "\xEE\xA6\x85"
#define ICON_KI_PLAYER_TWO "\xEE\xA6\x86"
#define ICON_KI_PLAYER_THREE "\xEE\xA6\x87"
#define ICON_KI_PLAYER_FOUR "\xEE\xA6\x88"
#define ICON_KI_JOYSTICK "\xEE\xA6\x89"
#define ICON_KI_JOYSTICK_ALT "\xEE\xA6\x8A"
#define ICON_KI_JOYSTICK_LEFT "\xEE\xA6\x8B"
#define ICON_KI_JOYSTICK_RIGHT "\xEE\xA6\x8C"
#define ICON_KI_MOUSE_ALT "\xEE\xA6\x8D"
#define ICON_KI_MOUSE "\xEE\xA6\x8E"
#define ICON_KI_MOUSE_LEFT_BUTTON "\xEE\xA6\x8F"
#define ICON_KI_MOUSE_RIGHT_BUTTON "\xEE\xA6\x90"
#define ICON_KI_BUTTON_ONE "\xEE\xA6\x91"
#define ICON_KI_BUTTON_TWO "\xEE\xA6\x92"
#define ICON_KI_BUTTON_THREE "\xEE\xA6\x93"
#define ICON_KI_BUTTON_A "\xEE\xA6\x94"
#define ICON_KI_BUTTON_X "\xEE\xA6\x95"
#define ICON_KI_BUTON_Y "\xEE\xA6\x96"
#define ICON_KI_BUTTON_TIMES "\xEE\xA6\x97"
#define ICON_KI_BUTTON_SQUARE "\xEE\xA6\x98"
#define ICON_KI_BUTTON_CIRCLE "\xEE\xA6\x99"
#define ICON_KI_BUTTON_TRIANGLE "\xEE\xA6\x9A"
#define ICON_KI_BUTTON_LEFT "\xEE\xA6\x9B"
#define ICON_KI_BUTTON_L "\xEE\xA6\x9C"
#define ICON_KI_BUTTON_L1 "\xEE\xA6\x9D"
#define ICON_KI_BUTTON_L2 "\xEE\xA6\x9E"
#define ICON_KI_BUTTON_LB "\xEE\xA6\x9F"
#define ICON_KI_BUTTON_LT "\xEE\xA6\xA0"
#define ICON_KI_BUTTON_RT "\xEE\xA6\xA1"
#define ICON_KI_BUTTON_RB "\xEE\xA6\xA2"
#define ICON_KI_BUTTON_R2 "\xEE\xA6\xA3"
#define ICON_KI_BUTTON_R1 "\xEE\xA6\xA4"
#define ICON_KI_BUTTON_R "\xEE\xA6\xA5"
#define ICON_KI_BUTTON_RIGHT "\xEE\xA6\xA6"
#define ICON_KI_BUTTON_EMPTY "\xEE\xA6\xA7"
#define ICON_KI_BUTTON_START "\xEE\xA6\xA8"
#define ICON_KI_BUTTON_SELECT "\xEE\xA6\xA9"
#define ICON_KI_DPAD "\xEE\xA6\xAA"
#define ICON_KI_DPAD_ALT "\xEE\xA6\xAB"
#define ICON_KI_DPAD_TOP "\xEE\xA6\xAC"
#define ICON_KI_DPAD_RIGHT "\xEE\xA6\xAD"
#define ICON_KI_DPAD_BOTTOM "\xEE\xA6\xAE"
#define ICON_KI_DPAD_LEFT "\xEE\xA6\xAF"
#define ICON_KI_KEY_LARGE "\xEE\xA6\xB0"
#define ICON_KI_KEY_LARGE_3D "\xEE\xA6\xB1"
#define ICON_KI_KEY_SMALL "\xEE\xA6\xB2"
#define ICON_KI_KEY_SMALL_3D "\xEE\xA6\xB3"
#define ICON_KI_STICK_LEFT_TOP "\xEE\xA6\xB4"
#define ICON_KI_STICK_LEFT_SIDE "\xEE\xA6\xB5"
#define ICON_KI_STICK_RIGHT_SIDE "\xEE\xA6\xB6"
#define ICON_KI_STICK_RIGHT_TOP "\xEE\xA6\xB7"
#define ICON_KI_STICK_SIDE "\xEE\xA6\xB8"
#define ICON_KI_STICK_TILT_LEFT "\xEE\xA6\xB9"
#define ICON_KI_STICK_TILT_RIGHT "\xEE\xA6\xBA"
#define ICON_KI_MOVE_BL "\xEE\xA6\xBB"
#define ICON_KI_MOVE_BR "\xEE\xA6\xBC"
#define ICON_KI_MOVE_BT "\xEE\xA6\xBD"
#define ICON_KI_MOVE_BT_ALT "\xEE\xA6\xBE"
#define ICON_KI_MOVE_LB "\xEE\xA6\xBF"
#define ICON_KI_MOVE_LR "\xEE\xA7\x80"
#define ICON_KI_MOVE_LR_ALT "\xEE\xA7\x81"
#define ICON_KI_MOVE_LT "\xEE\xA7\x82"
#define ICON_KI_MOVE_RB "\xEE\xA7\x83"
#define ICON_KI_MOVE_RL "\xEE\xA7\x84"
#define ICON_KI_MOVE_RL_ALT "\xEE\xA7\x85"
#define ICON_KI_MOVE_RT "\xEE\xA7\x86"
#define ICON_KI_MOVE_TB "\xEE\xA7\x87"
#define ICON_KI_MOVE_TB_ALT "\xEE\xA7\x88"
#define ICON_KI_MOVE_TL "\xEE\xA7\x89"
#define ICON_KI_MOVE_TR "\xEE\xA7\x8A"
#define ICON_KI_STICK_MOVE_BL "\xEE\xA7\x8B"
#define ICON_KI_STICK_MOVE_BR "\xEE\xA7\x8C"
#define ICON_KI_STICK_MOVE_BT "\xEE\xA7\x8D"
#define ICON_KI_STICK_MOVE_BT_ALT "\xEE\xA7\x8E"
#define ICON_KI_STICK_MOVE_LB "\xEE\xA7\x8F"
#define ICON_KI_STICK_MOVE_LR "\xEE\xA7\x90"
#define ICON_KI_STICK_MOVE_LR_ALT "\xEE\xA7\x91"
#define ICON_KI_STICK_MOVE_LT "\xEE\xA7\x92"
#define ICON_KI_STICK_MOVE_RB "\xEE\xA7\x93"
#define ICON_KI_STICK_MOVE_RL "\xEE\xA7\x94"
#define ICON_KI_STICK_MOVE_RL_ALT "\xEE\xA7\x95"
#define ICON_KI_STICK_MOVE_RT "\xEE\xA7\x96"
#define ICON_KI_STICK_MOVE_TB "\xEE\xA7\x97"
#define ICON_KI_STICK_MOVE_TB_ALT "\xEE\xA7\x98"
#define ICON_KI_STICK_MOVE_TL "\xEE\xA7\x99"
#define ICON_KI_STICK_MOVE_TR "\xEE\xA7\x9A"
#define ICON_KI_GITHUB "\xEE\xA7\x9B"
#define ICON_KI_GITHUB_ALT "\xEE\xA7\x9C"
#define ICON_KI_TWITTER "\xEE\xA7\x9D"
#define ICON_KI_FACEBOOK "\xEE\xA7\x9E"
#define ICON_KI_GOOGLE_PLUS "\xEE\xA7\x9F"
#define ICON_KI_YOUTUBE "\xEE\xA7\xA2"
#define ICON_KI_WE_HEART "\xEE\xA7\xA3"
#define ICON_KI_WOLFCMS "\xEE\xA7\xA0"
#define ICON_KI_WOLFCMS_ALT "\xEE\xA7\xA1"

View File

@ -0,0 +1,938 @@
// Generated by GenerateIconFontCppHeaders.py
// from https://raw.githubusercontent.com/google/material-design-icons/master/iconfont/codepoints
#pragma once
#define ICON_MIN_MD 0xe000
#define ICON_MAX_MD 0xeb4c
#define ICON_MD_3D_ROTATION "\xEE\xA1\x8D"
#define ICON_MD_AC_UNIT "\xEE\xAC\xBB"
#define ICON_MD_ACCESS_ALARM "\xEE\x86\x90"
#define ICON_MD_ACCESS_ALARMS "\xEE\x86\x91"
#define ICON_MD_ACCESS_TIME "\xEE\x86\x92"
#define ICON_MD_ACCESSIBILITY "\xEE\xA1\x8E"
#define ICON_MD_ACCESSIBLE "\xEE\xA4\x94"
#define ICON_MD_ACCOUNT_BALANCE "\xEE\xA1\x8F"
#define ICON_MD_ACCOUNT_BALANCE_WALLET "\xEE\xA1\x90"
#define ICON_MD_ACCOUNT_BOX "\xEE\xA1\x91"
#define ICON_MD_ACCOUNT_CIRCLE "\xEE\xA1\x93"
#define ICON_MD_ADB "\xEE\x98\x8E"
#define ICON_MD_ADD "\xEE\x85\x85"
#define ICON_MD_ADD_A_PHOTO "\xEE\x90\xB9"
#define ICON_MD_ADD_ALARM "\xEE\x86\x93"
#define ICON_MD_ADD_ALERT "\xEE\x80\x83"
#define ICON_MD_ADD_BOX "\xEE\x85\x86"
#define ICON_MD_ADD_CIRCLE "\xEE\x85\x87"
#define ICON_MD_ADD_CIRCLE_OUTLINE "\xEE\x85\x88"
#define ICON_MD_ADD_LOCATION "\xEE\x95\xA7"
#define ICON_MD_ADD_SHOPPING_CART "\xEE\xA1\x94"
#define ICON_MD_ADD_TO_PHOTOS "\xEE\x8E\x9D"
#define ICON_MD_ADD_TO_QUEUE "\xEE\x81\x9C"
#define ICON_MD_ADJUST "\xEE\x8E\x9E"
#define ICON_MD_AIRLINE_SEAT_FLAT "\xEE\x98\xB0"
#define ICON_MD_AIRLINE_SEAT_FLAT_ANGLED "\xEE\x98\xB1"
#define ICON_MD_AIRLINE_SEAT_INDIVIDUAL_SUITE "\xEE\x98\xB2"
#define ICON_MD_AIRLINE_SEAT_LEGROOM_EXTRA "\xEE\x98\xB3"
#define ICON_MD_AIRLINE_SEAT_LEGROOM_NORMAL "\xEE\x98\xB4"
#define ICON_MD_AIRLINE_SEAT_LEGROOM_REDUCED "\xEE\x98\xB5"
#define ICON_MD_AIRLINE_SEAT_RECLINE_EXTRA "\xEE\x98\xB6"
#define ICON_MD_AIRLINE_SEAT_RECLINE_NORMAL "\xEE\x98\xB7"
#define ICON_MD_AIRPLANEMODE_ACTIVE "\xEE\x86\x95"
#define ICON_MD_AIRPLANEMODE_INACTIVE "\xEE\x86\x94"
#define ICON_MD_AIRPLAY "\xEE\x81\x95"
#define ICON_MD_AIRPORT_SHUTTLE "\xEE\xAC\xBC"
#define ICON_MD_ALARM "\xEE\xA1\x95"
#define ICON_MD_ALARM_ADD "\xEE\xA1\x96"
#define ICON_MD_ALARM_OFF "\xEE\xA1\x97"
#define ICON_MD_ALARM_ON "\xEE\xA1\x98"
#define ICON_MD_ALBUM "\xEE\x80\x99"
#define ICON_MD_ALL_INCLUSIVE "\xEE\xAC\xBD"
#define ICON_MD_ALL_OUT "\xEE\xA4\x8B"
#define ICON_MD_ANDROID "\xEE\xA1\x99"
#define ICON_MD_ANNOUNCEMENT "\xEE\xA1\x9A"
#define ICON_MD_APPS "\xEE\x97\x83"
#define ICON_MD_ARCHIVE "\xEE\x85\x89"
#define ICON_MD_ARROW_BACK "\xEE\x97\x84"
#define ICON_MD_ARROW_DOWNWARD "\xEE\x97\x9B"
#define ICON_MD_ARROW_DROP_DOWN "\xEE\x97\x85"
#define ICON_MD_ARROW_DROP_DOWN_CIRCLE "\xEE\x97\x86"
#define ICON_MD_ARROW_DROP_UP "\xEE\x97\x87"
#define ICON_MD_ARROW_FORWARD "\xEE\x97\x88"
#define ICON_MD_ARROW_UPWARD "\xEE\x97\x98"
#define ICON_MD_ART_TRACK "\xEE\x81\xA0"
#define ICON_MD_ASPECT_RATIO "\xEE\xA1\x9B"
#define ICON_MD_ASSESSMENT "\xEE\xA1\x9C"
#define ICON_MD_ASSIGNMENT "\xEE\xA1\x9D"
#define ICON_MD_ASSIGNMENT_IND "\xEE\xA1\x9E"
#define ICON_MD_ASSIGNMENT_LATE "\xEE\xA1\x9F"
#define ICON_MD_ASSIGNMENT_RETURN "\xEE\xA1\xA0"
#define ICON_MD_ASSIGNMENT_RETURNED "\xEE\xA1\xA1"
#define ICON_MD_ASSIGNMENT_TURNED_IN "\xEE\xA1\xA2"
#define ICON_MD_ASSISTANT "\xEE\x8E\x9F"
#define ICON_MD_ASSISTANT_PHOTO "\xEE\x8E\xA0"
#define ICON_MD_ATTACH_FILE "\xEE\x88\xA6"
#define ICON_MD_ATTACH_MONEY "\xEE\x88\xA7"
#define ICON_MD_ATTACHMENT "\xEE\x8A\xBC"
#define ICON_MD_AUDIOTRACK "\xEE\x8E\xA1"
#define ICON_MD_AUTORENEW "\xEE\xA1\xA3"
#define ICON_MD_AV_TIMER "\xEE\x80\x9B"
#define ICON_MD_BACKSPACE "\xEE\x85\x8A"
#define ICON_MD_BACKUP "\xEE\xA1\xA4"
#define ICON_MD_BATTERY_ALERT "\xEE\x86\x9C"
#define ICON_MD_BATTERY_CHARGING_FULL "\xEE\x86\xA3"
#define ICON_MD_BATTERY_FULL "\xEE\x86\xA4"
#define ICON_MD_BATTERY_STD "\xEE\x86\xA5"
#define ICON_MD_BATTERY_UNKNOWN "\xEE\x86\xA6"
#define ICON_MD_BEACH_ACCESS "\xEE\xAC\xBE"
#define ICON_MD_BEENHERE "\xEE\x94\xAD"
#define ICON_MD_BLOCK "\xEE\x85\x8B"
#define ICON_MD_BLUETOOTH "\xEE\x86\xA7"
#define ICON_MD_BLUETOOTH_AUDIO "\xEE\x98\x8F"
#define ICON_MD_BLUETOOTH_CONNECTED "\xEE\x86\xA8"
#define ICON_MD_BLUETOOTH_DISABLED "\xEE\x86\xA9"
#define ICON_MD_BLUETOOTH_SEARCHING "\xEE\x86\xAA"
#define ICON_MD_BLUR_CIRCULAR "\xEE\x8E\xA2"
#define ICON_MD_BLUR_LINEAR "\xEE\x8E\xA3"
#define ICON_MD_BLUR_OFF "\xEE\x8E\xA4"
#define ICON_MD_BLUR_ON "\xEE\x8E\xA5"
#define ICON_MD_BOOK "\xEE\xA1\xA5"
#define ICON_MD_BOOKMARK "\xEE\xA1\xA6"
#define ICON_MD_BOOKMARK_BORDER "\xEE\xA1\xA7"
#define ICON_MD_BORDER_ALL "\xEE\x88\xA8"
#define ICON_MD_BORDER_BOTTOM "\xEE\x88\xA9"
#define ICON_MD_BORDER_CLEAR "\xEE\x88\xAA"
#define ICON_MD_BORDER_COLOR "\xEE\x88\xAB"
#define ICON_MD_BORDER_HORIZONTAL "\xEE\x88\xAC"
#define ICON_MD_BORDER_INNER "\xEE\x88\xAD"
#define ICON_MD_BORDER_LEFT "\xEE\x88\xAE"
#define ICON_MD_BORDER_OUTER "\xEE\x88\xAF"
#define ICON_MD_BORDER_RIGHT "\xEE\x88\xB0"
#define ICON_MD_BORDER_STYLE "\xEE\x88\xB1"
#define ICON_MD_BORDER_TOP "\xEE\x88\xB2"
#define ICON_MD_BORDER_VERTICAL "\xEE\x88\xB3"
#define ICON_MD_BRANDING_WATERMARK "\xEE\x81\xAB"
#define ICON_MD_BRIGHTNESS_1 "\xEE\x8E\xA6"
#define ICON_MD_BRIGHTNESS_2 "\xEE\x8E\xA7"
#define ICON_MD_BRIGHTNESS_3 "\xEE\x8E\xA8"
#define ICON_MD_BRIGHTNESS_4 "\xEE\x8E\xA9"
#define ICON_MD_BRIGHTNESS_5 "\xEE\x8E\xAA"
#define ICON_MD_BRIGHTNESS_6 "\xEE\x8E\xAB"
#define ICON_MD_BRIGHTNESS_7 "\xEE\x8E\xAC"
#define ICON_MD_BRIGHTNESS_AUTO "\xEE\x86\xAB"
#define ICON_MD_BRIGHTNESS_HIGH "\xEE\x86\xAC"
#define ICON_MD_BRIGHTNESS_LOW "\xEE\x86\xAD"
#define ICON_MD_BRIGHTNESS_MEDIUM "\xEE\x86\xAE"
#define ICON_MD_BROKEN_IMAGE "\xEE\x8E\xAD"
#define ICON_MD_BRUSH "\xEE\x8E\xAE"
#define ICON_MD_BUBBLE_CHART "\xEE\x9B\x9D"
#define ICON_MD_BUG_REPORT "\xEE\xA1\xA8"
#define ICON_MD_BUILD "\xEE\xA1\xA9"
#define ICON_MD_BURST_MODE "\xEE\x90\xBC"
#define ICON_MD_BUSINESS "\xEE\x82\xAF"
#define ICON_MD_BUSINESS_CENTER "\xEE\xAC\xBF"
#define ICON_MD_CACHED "\xEE\xA1\xAA"
#define ICON_MD_CAKE "\xEE\x9F\xA9"
#define ICON_MD_CALL "\xEE\x82\xB0"
#define ICON_MD_CALL_END "\xEE\x82\xB1"
#define ICON_MD_CALL_MADE "\xEE\x82\xB2"
#define ICON_MD_CALL_MERGE "\xEE\x82\xB3"
#define ICON_MD_CALL_MISSED "\xEE\x82\xB4"
#define ICON_MD_CALL_MISSED_OUTGOING "\xEE\x83\xA4"
#define ICON_MD_CALL_RECEIVED "\xEE\x82\xB5"
#define ICON_MD_CALL_SPLIT "\xEE\x82\xB6"
#define ICON_MD_CALL_TO_ACTION "\xEE\x81\xAC"
#define ICON_MD_CAMERA "\xEE\x8E\xAF"
#define ICON_MD_CAMERA_ALT "\xEE\x8E\xB0"
#define ICON_MD_CAMERA_ENHANCE "\xEE\xA3\xBC"
#define ICON_MD_CAMERA_FRONT "\xEE\x8E\xB1"
#define ICON_MD_CAMERA_REAR "\xEE\x8E\xB2"
#define ICON_MD_CAMERA_ROLL "\xEE\x8E\xB3"
#define ICON_MD_CANCEL "\xEE\x97\x89"
#define ICON_MD_CARD_GIFTCARD "\xEE\xA3\xB6"
#define ICON_MD_CARD_MEMBERSHIP "\xEE\xA3\xB7"
#define ICON_MD_CARD_TRAVEL "\xEE\xA3\xB8"
#define ICON_MD_CASINO "\xEE\xAD\x80"
#define ICON_MD_CAST "\xEE\x8C\x87"
#define ICON_MD_CAST_CONNECTED "\xEE\x8C\x88"
#define ICON_MD_CENTER_FOCUS_STRONG "\xEE\x8E\xB4"
#define ICON_MD_CENTER_FOCUS_WEAK "\xEE\x8E\xB5"
#define ICON_MD_CHANGE_HISTORY "\xEE\xA1\xAB"
#define ICON_MD_CHAT "\xEE\x82\xB7"
#define ICON_MD_CHAT_BUBBLE "\xEE\x83\x8A"
#define ICON_MD_CHAT_BUBBLE_OUTLINE "\xEE\x83\x8B"
#define ICON_MD_CHECK "\xEE\x97\x8A"
#define ICON_MD_CHECK_BOX "\xEE\xA0\xB4"
#define ICON_MD_CHECK_BOX_OUTLINE_BLANK "\xEE\xA0\xB5"
#define ICON_MD_CHECK_CIRCLE "\xEE\xA1\xAC"
#define ICON_MD_CHEVRON_LEFT "\xEE\x97\x8B"
#define ICON_MD_CHEVRON_RIGHT "\xEE\x97\x8C"
#define ICON_MD_CHILD_CARE "\xEE\xAD\x81"
#define ICON_MD_CHILD_FRIENDLY "\xEE\xAD\x82"
#define ICON_MD_CHROME_READER_MODE "\xEE\xA1\xAD"
#define ICON_MD_CLASS "\xEE\xA1\xAE"
#define ICON_MD_CLEAR "\xEE\x85\x8C"
#define ICON_MD_CLEAR_ALL "\xEE\x82\xB8"
#define ICON_MD_CLOSE "\xEE\x97\x8D"
#define ICON_MD_CLOSED_CAPTION "\xEE\x80\x9C"
#define ICON_MD_CLOUD "\xEE\x8A\xBD"
#define ICON_MD_CLOUD_CIRCLE "\xEE\x8A\xBE"
#define ICON_MD_CLOUD_DONE "\xEE\x8A\xBF"
#define ICON_MD_CLOUD_DOWNLOAD "\xEE\x8B\x80"
#define ICON_MD_CLOUD_OFF "\xEE\x8B\x81"
#define ICON_MD_CLOUD_QUEUE "\xEE\x8B\x82"
#define ICON_MD_CLOUD_UPLOAD "\xEE\x8B\x83"
#define ICON_MD_CODE "\xEE\xA1\xAF"
#define ICON_MD_COLLECTIONS "\xEE\x8E\xB6"
#define ICON_MD_COLLECTIONS_BOOKMARK "\xEE\x90\xB1"
#define ICON_MD_COLOR_LENS "\xEE\x8E\xB7"
#define ICON_MD_COLORIZE "\xEE\x8E\xB8"
#define ICON_MD_COMMENT "\xEE\x82\xB9"
#define ICON_MD_COMPARE "\xEE\x8E\xB9"
#define ICON_MD_COMPARE_ARROWS "\xEE\xA4\x95"
#define ICON_MD_COMPUTER "\xEE\x8C\x8A"
#define ICON_MD_CONFIRMATION_NUMBER "\xEE\x98\xB8"
#define ICON_MD_CONTACT_MAIL "\xEE\x83\x90"
#define ICON_MD_CONTACT_PHONE "\xEE\x83\x8F"
#define ICON_MD_CONTACTS "\xEE\x82\xBA"
#define ICON_MD_CONTENT_COPY "\xEE\x85\x8D"
#define ICON_MD_CONTENT_CUT "\xEE\x85\x8E"
#define ICON_MD_CONTENT_PASTE "\xEE\x85\x8F"
#define ICON_MD_CONTROL_POINT "\xEE\x8E\xBA"
#define ICON_MD_CONTROL_POINT_DUPLICATE "\xEE\x8E\xBB"
#define ICON_MD_COPYRIGHT "\xEE\xA4\x8C"
#define ICON_MD_CREATE "\xEE\x85\x90"
#define ICON_MD_CREATE_NEW_FOLDER "\xEE\x8B\x8C"
#define ICON_MD_CREDIT_CARD "\xEE\xA1\xB0"
#define ICON_MD_CROP "\xEE\x8E\xBE"
#define ICON_MD_CROP_16_9 "\xEE\x8E\xBC"
#define ICON_MD_CROP_3_2 "\xEE\x8E\xBD"
#define ICON_MD_CROP_5_4 "\xEE\x8E\xBF"
#define ICON_MD_CROP_7_5 "\xEE\x8F\x80"
#define ICON_MD_CROP_DIN "\xEE\x8F\x81"
#define ICON_MD_CROP_FREE "\xEE\x8F\x82"
#define ICON_MD_CROP_LANDSCAPE "\xEE\x8F\x83"
#define ICON_MD_CROP_ORIGINAL "\xEE\x8F\x84"
#define ICON_MD_CROP_PORTRAIT "\xEE\x8F\x85"
#define ICON_MD_CROP_ROTATE "\xEE\x90\xB7"
#define ICON_MD_CROP_SQUARE "\xEE\x8F\x86"
#define ICON_MD_DASHBOARD "\xEE\xA1\xB1"
#define ICON_MD_DATA_USAGE "\xEE\x86\xAF"
#define ICON_MD_DATE_RANGE "\xEE\xA4\x96"
#define ICON_MD_DEHAZE "\xEE\x8F\x87"
#define ICON_MD_DELETE "\xEE\xA1\xB2"
#define ICON_MD_DELETE_FOREVER "\xEE\xA4\xAB"
#define ICON_MD_DELETE_SWEEP "\xEE\x85\xAC"
#define ICON_MD_DESCRIPTION "\xEE\xA1\xB3"
#define ICON_MD_DESKTOP_MAC "\xEE\x8C\x8B"
#define ICON_MD_DESKTOP_WINDOWS "\xEE\x8C\x8C"
#define ICON_MD_DETAILS "\xEE\x8F\x88"
#define ICON_MD_DEVELOPER_BOARD "\xEE\x8C\x8D"
#define ICON_MD_DEVELOPER_MODE "\xEE\x86\xB0"
#define ICON_MD_DEVICE_HUB "\xEE\x8C\xB5"
#define ICON_MD_DEVICES "\xEE\x86\xB1"
#define ICON_MD_DEVICES_OTHER "\xEE\x8C\xB7"
#define ICON_MD_DIALER_SIP "\xEE\x82\xBB"
#define ICON_MD_DIALPAD "\xEE\x82\xBC"
#define ICON_MD_DIRECTIONS "\xEE\x94\xAE"
#define ICON_MD_DIRECTIONS_BIKE "\xEE\x94\xAF"
#define ICON_MD_DIRECTIONS_BOAT "\xEE\x94\xB2"
#define ICON_MD_DIRECTIONS_BUS "\xEE\x94\xB0"
#define ICON_MD_DIRECTIONS_CAR "\xEE\x94\xB1"
#define ICON_MD_DIRECTIONS_RAILWAY "\xEE\x94\xB4"
#define ICON_MD_DIRECTIONS_RUN "\xEE\x95\xA6"
#define ICON_MD_DIRECTIONS_SUBWAY "\xEE\x94\xB3"
#define ICON_MD_DIRECTIONS_TRANSIT "\xEE\x94\xB5"
#define ICON_MD_DIRECTIONS_WALK "\xEE\x94\xB6"
#define ICON_MD_DISC_FULL "\xEE\x98\x90"
#define ICON_MD_DNS "\xEE\xA1\xB5"
#define ICON_MD_DO_NOT_DISTURB "\xEE\x98\x92"
#define ICON_MD_DO_NOT_DISTURB_ALT "\xEE\x98\x91"
#define ICON_MD_DO_NOT_DISTURB_OFF "\xEE\x99\x83"
#define ICON_MD_DO_NOT_DISTURB_ON "\xEE\x99\x84"
#define ICON_MD_DOCK "\xEE\x8C\x8E"
#define ICON_MD_DOMAIN "\xEE\x9F\xAE"
#define ICON_MD_DONE "\xEE\xA1\xB6"
#define ICON_MD_DONE_ALL "\xEE\xA1\xB7"
#define ICON_MD_DONUT_LARGE "\xEE\xA4\x97"
#define ICON_MD_DONUT_SMALL "\xEE\xA4\x98"
#define ICON_MD_DRAFTS "\xEE\x85\x91"
#define ICON_MD_DRAG_HANDLE "\xEE\x89\x9D"
#define ICON_MD_DRIVE_ETA "\xEE\x98\x93"
#define ICON_MD_DVR "\xEE\x86\xB2"
#define ICON_MD_EDIT "\xEE\x8F\x89"
#define ICON_MD_EDIT_LOCATION "\xEE\x95\xA8"
#define ICON_MD_EJECT "\xEE\xA3\xBB"
#define ICON_MD_EMAIL "\xEE\x82\xBE"
#define ICON_MD_ENHANCED_ENCRYPTION "\xEE\x98\xBF"
#define ICON_MD_EQUALIZER "\xEE\x80\x9D"
#define ICON_MD_ERROR "\xEE\x80\x80"
#define ICON_MD_ERROR_OUTLINE "\xEE\x80\x81"
#define ICON_MD_EURO_SYMBOL "\xEE\xA4\xA6"
#define ICON_MD_EV_STATION "\xEE\x95\xAD"
#define ICON_MD_EVENT "\xEE\xA1\xB8"
#define ICON_MD_EVENT_AVAILABLE "\xEE\x98\x94"
#define ICON_MD_EVENT_BUSY "\xEE\x98\x95"
#define ICON_MD_EVENT_NOTE "\xEE\x98\x96"
#define ICON_MD_EVENT_SEAT "\xEE\xA4\x83"
#define ICON_MD_EXIT_TO_APP "\xEE\xA1\xB9"
#define ICON_MD_EXPAND_LESS "\xEE\x97\x8E"
#define ICON_MD_EXPAND_MORE "\xEE\x97\x8F"
#define ICON_MD_EXPLICIT "\xEE\x80\x9E"
#define ICON_MD_EXPLORE "\xEE\xA1\xBA"
#define ICON_MD_EXPOSURE "\xEE\x8F\x8A"
#define ICON_MD_EXPOSURE_NEG_1 "\xEE\x8F\x8B"
#define ICON_MD_EXPOSURE_NEG_2 "\xEE\x8F\x8C"
#define ICON_MD_EXPOSURE_PLUS_1 "\xEE\x8F\x8D"
#define ICON_MD_EXPOSURE_PLUS_2 "\xEE\x8F\x8E"
#define ICON_MD_EXPOSURE_ZERO "\xEE\x8F\x8F"
#define ICON_MD_EXTENSION "\xEE\xA1\xBB"
#define ICON_MD_FACE "\xEE\xA1\xBC"
#define ICON_MD_FAST_FORWARD "\xEE\x80\x9F"
#define ICON_MD_FAST_REWIND "\xEE\x80\xA0"
#define ICON_MD_FAVORITE "\xEE\xA1\xBD"
#define ICON_MD_FAVORITE_BORDER "\xEE\xA1\xBE"
#define ICON_MD_FEATURED_PLAY_LIST "\xEE\x81\xAD"
#define ICON_MD_FEATURED_VIDEO "\xEE\x81\xAE"
#define ICON_MD_FEEDBACK "\xEE\xA1\xBF"
#define ICON_MD_FIBER_DVR "\xEE\x81\x9D"
#define ICON_MD_FIBER_MANUAL_RECORD "\xEE\x81\xA1"
#define ICON_MD_FIBER_NEW "\xEE\x81\x9E"
#define ICON_MD_FIBER_PIN "\xEE\x81\xAA"
#define ICON_MD_FIBER_SMART_RECORD "\xEE\x81\xA2"
#define ICON_MD_FILE_DOWNLOAD "\xEE\x8B\x84"
#define ICON_MD_FILE_UPLOAD "\xEE\x8B\x86"
#define ICON_MD_FILTER "\xEE\x8F\x93"
#define ICON_MD_FILTER_1 "\xEE\x8F\x90"
#define ICON_MD_FILTER_2 "\xEE\x8F\x91"
#define ICON_MD_FILTER_3 "\xEE\x8F\x92"
#define ICON_MD_FILTER_4 "\xEE\x8F\x94"
#define ICON_MD_FILTER_5 "\xEE\x8F\x95"
#define ICON_MD_FILTER_6 "\xEE\x8F\x96"
#define ICON_MD_FILTER_7 "\xEE\x8F\x97"
#define ICON_MD_FILTER_8 "\xEE\x8F\x98"
#define ICON_MD_FILTER_9 "\xEE\x8F\x99"
#define ICON_MD_FILTER_9_PLUS "\xEE\x8F\x9A"
#define ICON_MD_FILTER_B_AND_W "\xEE\x8F\x9B"
#define ICON_MD_FILTER_CENTER_FOCUS "\xEE\x8F\x9C"
#define ICON_MD_FILTER_DRAMA "\xEE\x8F\x9D"
#define ICON_MD_FILTER_FRAMES "\xEE\x8F\x9E"
#define ICON_MD_FILTER_HDR "\xEE\x8F\x9F"
#define ICON_MD_FILTER_LIST "\xEE\x85\x92"
#define ICON_MD_FILTER_NONE "\xEE\x8F\xA0"
#define ICON_MD_FILTER_TILT_SHIFT "\xEE\x8F\xA2"
#define ICON_MD_FILTER_VINTAGE "\xEE\x8F\xA3"
#define ICON_MD_FIND_IN_PAGE "\xEE\xA2\x80"
#define ICON_MD_FIND_REPLACE "\xEE\xA2\x81"
#define ICON_MD_FINGERPRINT "\xEE\xA4\x8D"
#define ICON_MD_FIRST_PAGE "\xEE\x97\x9C"
#define ICON_MD_FITNESS_CENTER "\xEE\xAD\x83"
#define ICON_MD_FLAG "\xEE\x85\x93"
#define ICON_MD_FLARE "\xEE\x8F\xA4"
#define ICON_MD_FLASH_AUTO "\xEE\x8F\xA5"
#define ICON_MD_FLASH_OFF "\xEE\x8F\xA6"
#define ICON_MD_FLASH_ON "\xEE\x8F\xA7"
#define ICON_MD_FLIGHT "\xEE\x94\xB9"
#define ICON_MD_FLIGHT_LAND "\xEE\xA4\x84"
#define ICON_MD_FLIGHT_TAKEOFF "\xEE\xA4\x85"
#define ICON_MD_FLIP "\xEE\x8F\xA8"
#define ICON_MD_FLIP_TO_BACK "\xEE\xA2\x82"
#define ICON_MD_FLIP_TO_FRONT "\xEE\xA2\x83"
#define ICON_MD_FOLDER "\xEE\x8B\x87"
#define ICON_MD_FOLDER_OPEN "\xEE\x8B\x88"
#define ICON_MD_FOLDER_SHARED "\xEE\x8B\x89"
#define ICON_MD_FOLDER_SPECIAL "\xEE\x98\x97"
#define ICON_MD_FONT_DOWNLOAD "\xEE\x85\xA7"
#define ICON_MD_FORMAT_ALIGN_CENTER "\xEE\x88\xB4"
#define ICON_MD_FORMAT_ALIGN_JUSTIFY "\xEE\x88\xB5"
#define ICON_MD_FORMAT_ALIGN_LEFT "\xEE\x88\xB6"
#define ICON_MD_FORMAT_ALIGN_RIGHT "\xEE\x88\xB7"
#define ICON_MD_FORMAT_BOLD "\xEE\x88\xB8"
#define ICON_MD_FORMAT_CLEAR "\xEE\x88\xB9"
#define ICON_MD_FORMAT_COLOR_FILL "\xEE\x88\xBA"
#define ICON_MD_FORMAT_COLOR_RESET "\xEE\x88\xBB"
#define ICON_MD_FORMAT_COLOR_TEXT "\xEE\x88\xBC"
#define ICON_MD_FORMAT_INDENT_DECREASE "\xEE\x88\xBD"
#define ICON_MD_FORMAT_INDENT_INCREASE "\xEE\x88\xBE"
#define ICON_MD_FORMAT_ITALIC "\xEE\x88\xBF"
#define ICON_MD_FORMAT_LINE_SPACING "\xEE\x89\x80"
#define ICON_MD_FORMAT_LIST_BULLETED "\xEE\x89\x81"
#define ICON_MD_FORMAT_LIST_NUMBERED "\xEE\x89\x82"
#define ICON_MD_FORMAT_PAINT "\xEE\x89\x83"
#define ICON_MD_FORMAT_QUOTE "\xEE\x89\x84"
#define ICON_MD_FORMAT_SHAPES "\xEE\x89\x9E"
#define ICON_MD_FORMAT_SIZE "\xEE\x89\x85"
#define ICON_MD_FORMAT_STRIKETHROUGH "\xEE\x89\x86"
#define ICON_MD_FORMAT_TEXTDIRECTION_L_TO_R "\xEE\x89\x87"
#define ICON_MD_FORMAT_TEXTDIRECTION_R_TO_L "\xEE\x89\x88"
#define ICON_MD_FORMAT_UNDERLINED "\xEE\x89\x89"
#define ICON_MD_FORUM "\xEE\x82\xBF"
#define ICON_MD_FORWARD "\xEE\x85\x94"
#define ICON_MD_FORWARD_10 "\xEE\x81\x96"
#define ICON_MD_FORWARD_30 "\xEE\x81\x97"
#define ICON_MD_FORWARD_5 "\xEE\x81\x98"
#define ICON_MD_FREE_BREAKFAST "\xEE\xAD\x84"
#define ICON_MD_FULLSCREEN "\xEE\x97\x90"
#define ICON_MD_FULLSCREEN_EXIT "\xEE\x97\x91"
#define ICON_MD_FUNCTIONS "\xEE\x89\x8A"
#define ICON_MD_G_TRANSLATE "\xEE\xA4\xA7"
#define ICON_MD_GAMEPAD "\xEE\x8C\x8F"
#define ICON_MD_GAMES "\xEE\x80\xA1"
#define ICON_MD_GAVEL "\xEE\xA4\x8E"
#define ICON_MD_GESTURE "\xEE\x85\x95"
#define ICON_MD_GET_APP "\xEE\xA2\x84"
#define ICON_MD_GIF "\xEE\xA4\x88"
#define ICON_MD_GOLF_COURSE "\xEE\xAD\x85"
#define ICON_MD_GPS_FIXED "\xEE\x86\xB3"
#define ICON_MD_GPS_NOT_FIXED "\xEE\x86\xB4"
#define ICON_MD_GPS_OFF "\xEE\x86\xB5"
#define ICON_MD_GRADE "\xEE\xA2\x85"
#define ICON_MD_GRADIENT "\xEE\x8F\xA9"
#define ICON_MD_GRAIN "\xEE\x8F\xAA"
#define ICON_MD_GRAPHIC_EQ "\xEE\x86\xB8"
#define ICON_MD_GRID_OFF "\xEE\x8F\xAB"
#define ICON_MD_GRID_ON "\xEE\x8F\xAC"
#define ICON_MD_GROUP "\xEE\x9F\xAF"
#define ICON_MD_GROUP_ADD "\xEE\x9F\xB0"
#define ICON_MD_GROUP_WORK "\xEE\xA2\x86"
#define ICON_MD_HD "\xEE\x81\x92"
#define ICON_MD_HDR_OFF "\xEE\x8F\xAD"
#define ICON_MD_HDR_ON "\xEE\x8F\xAE"
#define ICON_MD_HDR_STRONG "\xEE\x8F\xB1"
#define ICON_MD_HDR_WEAK "\xEE\x8F\xB2"
#define ICON_MD_HEADSET "\xEE\x8C\x90"
#define ICON_MD_HEADSET_MIC "\xEE\x8C\x91"
#define ICON_MD_HEALING "\xEE\x8F\xB3"
#define ICON_MD_HEARING "\xEE\x80\xA3"
#define ICON_MD_HELP "\xEE\xA2\x87"
#define ICON_MD_HELP_OUTLINE "\xEE\xA3\xBD"
#define ICON_MD_HIGH_QUALITY "\xEE\x80\xA4"
#define ICON_MD_HIGHLIGHT "\xEE\x89\x9F"
#define ICON_MD_HIGHLIGHT_OFF "\xEE\xA2\x88"
#define ICON_MD_HISTORY "\xEE\xA2\x89"
#define ICON_MD_HOME "\xEE\xA2\x8A"
#define ICON_MD_HOT_TUB "\xEE\xAD\x86"
#define ICON_MD_HOTEL "\xEE\x94\xBA"
#define ICON_MD_HOURGLASS_EMPTY "\xEE\xA2\x8B"
#define ICON_MD_HOURGLASS_FULL "\xEE\xA2\x8C"
#define ICON_MD_HTTP "\xEE\xA4\x82"
#define ICON_MD_HTTPS "\xEE\xA2\x8D"
#define ICON_MD_IMAGE "\xEE\x8F\xB4"
#define ICON_MD_IMAGE_ASPECT_RATIO "\xEE\x8F\xB5"
#define ICON_MD_IMPORT_CONTACTS "\xEE\x83\xA0"
#define ICON_MD_IMPORT_EXPORT "\xEE\x83\x83"
#define ICON_MD_IMPORTANT_DEVICES "\xEE\xA4\x92"
#define ICON_MD_INBOX "\xEE\x85\x96"
#define ICON_MD_INDETERMINATE_CHECK_BOX "\xEE\xA4\x89"
#define ICON_MD_INFO "\xEE\xA2\x8E"
#define ICON_MD_INFO_OUTLINE "\xEE\xA2\x8F"
#define ICON_MD_INPUT "\xEE\xA2\x90"
#define ICON_MD_INSERT_CHART "\xEE\x89\x8B"
#define ICON_MD_INSERT_COMMENT "\xEE\x89\x8C"
#define ICON_MD_INSERT_DRIVE_FILE "\xEE\x89\x8D"
#define ICON_MD_INSERT_EMOTICON "\xEE\x89\x8E"
#define ICON_MD_INSERT_INVITATION "\xEE\x89\x8F"
#define ICON_MD_INSERT_LINK "\xEE\x89\x90"
#define ICON_MD_INSERT_PHOTO "\xEE\x89\x91"
#define ICON_MD_INVERT_COLORS "\xEE\xA2\x91"
#define ICON_MD_INVERT_COLORS_OFF "\xEE\x83\x84"
#define ICON_MD_ISO "\xEE\x8F\xB6"
#define ICON_MD_KEYBOARD "\xEE\x8C\x92"
#define ICON_MD_KEYBOARD_ARROW_DOWN "\xEE\x8C\x93"
#define ICON_MD_KEYBOARD_ARROW_LEFT "\xEE\x8C\x94"
#define ICON_MD_KEYBOARD_ARROW_RIGHT "\xEE\x8C\x95"
#define ICON_MD_KEYBOARD_ARROW_UP "\xEE\x8C\x96"
#define ICON_MD_KEYBOARD_BACKSPACE "\xEE\x8C\x97"
#define ICON_MD_KEYBOARD_CAPSLOCK "\xEE\x8C\x98"
#define ICON_MD_KEYBOARD_HIDE "\xEE\x8C\x9A"
#define ICON_MD_KEYBOARD_RETURN "\xEE\x8C\x9B"
#define ICON_MD_KEYBOARD_TAB "\xEE\x8C\x9C"
#define ICON_MD_KEYBOARD_VOICE "\xEE\x8C\x9D"
#define ICON_MD_KITCHEN "\xEE\xAD\x87"
#define ICON_MD_LABEL "\xEE\xA2\x92"
#define ICON_MD_LABEL_OUTLINE "\xEE\xA2\x93"
#define ICON_MD_LANDSCAPE "\xEE\x8F\xB7"
#define ICON_MD_LANGUAGE "\xEE\xA2\x94"
#define ICON_MD_LAPTOP "\xEE\x8C\x9E"
#define ICON_MD_LAPTOP_CHROMEBOOK "\xEE\x8C\x9F"
#define ICON_MD_LAPTOP_MAC "\xEE\x8C\xA0"
#define ICON_MD_LAPTOP_WINDOWS "\xEE\x8C\xA1"
#define ICON_MD_LAST_PAGE "\xEE\x97\x9D"
#define ICON_MD_LAUNCH "\xEE\xA2\x95"
#define ICON_MD_LAYERS "\xEE\x94\xBB"
#define ICON_MD_LAYERS_CLEAR "\xEE\x94\xBC"
#define ICON_MD_LEAK_ADD "\xEE\x8F\xB8"
#define ICON_MD_LEAK_REMOVE "\xEE\x8F\xB9"
#define ICON_MD_LENS "\xEE\x8F\xBA"
#define ICON_MD_LIBRARY_ADD "\xEE\x80\xAE"
#define ICON_MD_LIBRARY_BOOKS "\xEE\x80\xAF"
#define ICON_MD_LIBRARY_MUSIC "\xEE\x80\xB0"
#define ICON_MD_LIGHTBULB_OUTLINE "\xEE\xA4\x8F"
#define ICON_MD_LINE_STYLE "\xEE\xA4\x99"
#define ICON_MD_LINE_WEIGHT "\xEE\xA4\x9A"
#define ICON_MD_LINEAR_SCALE "\xEE\x89\xA0"
#define ICON_MD_LINK "\xEE\x85\x97"
#define ICON_MD_LINKED_CAMERA "\xEE\x90\xB8"
#define ICON_MD_LIST "\xEE\xA2\x96"
#define ICON_MD_LIVE_HELP "\xEE\x83\x86"
#define ICON_MD_LIVE_TV "\xEE\x98\xB9"
#define ICON_MD_LOCAL_ACTIVITY "\xEE\x94\xBF"
#define ICON_MD_LOCAL_AIRPORT "\xEE\x94\xBD"
#define ICON_MD_LOCAL_ATM "\xEE\x94\xBE"
#define ICON_MD_LOCAL_BAR "\xEE\x95\x80"
#define ICON_MD_LOCAL_CAFE "\xEE\x95\x81"
#define ICON_MD_LOCAL_CAR_WASH "\xEE\x95\x82"
#define ICON_MD_LOCAL_CONVENIENCE_STORE "\xEE\x95\x83"
#define ICON_MD_LOCAL_DINING "\xEE\x95\x96"
#define ICON_MD_LOCAL_DRINK "\xEE\x95\x84"
#define ICON_MD_LOCAL_FLORIST "\xEE\x95\x85"
#define ICON_MD_LOCAL_GAS_STATION "\xEE\x95\x86"
#define ICON_MD_LOCAL_GROCERY_STORE "\xEE\x95\x87"
#define ICON_MD_LOCAL_HOSPITAL "\xEE\x95\x88"
#define ICON_MD_LOCAL_HOTEL "\xEE\x95\x89"
#define ICON_MD_LOCAL_LAUNDRY_SERVICE "\xEE\x95\x8A"
#define ICON_MD_LOCAL_LIBRARY "\xEE\x95\x8B"
#define ICON_MD_LOCAL_MALL "\xEE\x95\x8C"
#define ICON_MD_LOCAL_MOVIES "\xEE\x95\x8D"
#define ICON_MD_LOCAL_OFFER "\xEE\x95\x8E"
#define ICON_MD_LOCAL_PARKING "\xEE\x95\x8F"
#define ICON_MD_LOCAL_PHARMACY "\xEE\x95\x90"
#define ICON_MD_LOCAL_PHONE "\xEE\x95\x91"
#define ICON_MD_LOCAL_PIZZA "\xEE\x95\x92"
#define ICON_MD_LOCAL_PLAY "\xEE\x95\x93"
#define ICON_MD_LOCAL_POST_OFFICE "\xEE\x95\x94"
#define ICON_MD_LOCAL_PRINTSHOP "\xEE\x95\x95"
#define ICON_MD_LOCAL_SEE "\xEE\x95\x97"
#define ICON_MD_LOCAL_SHIPPING "\xEE\x95\x98"
#define ICON_MD_LOCAL_TAXI "\xEE\x95\x99"
#define ICON_MD_LOCATION_CITY "\xEE\x9F\xB1"
#define ICON_MD_LOCATION_DISABLED "\xEE\x86\xB6"
#define ICON_MD_LOCATION_OFF "\xEE\x83\x87"
#define ICON_MD_LOCATION_ON "\xEE\x83\x88"
#define ICON_MD_LOCATION_SEARCHING "\xEE\x86\xB7"
#define ICON_MD_LOCK "\xEE\xA2\x97"
#define ICON_MD_LOCK_OPEN "\xEE\xA2\x98"
#define ICON_MD_LOCK_OUTLINE "\xEE\xA2\x99"
#define ICON_MD_LOOKS "\xEE\x8F\xBC"
#define ICON_MD_LOOKS_3 "\xEE\x8F\xBB"
#define ICON_MD_LOOKS_4 "\xEE\x8F\xBD"
#define ICON_MD_LOOKS_5 "\xEE\x8F\xBE"
#define ICON_MD_LOOKS_6 "\xEE\x8F\xBF"
#define ICON_MD_LOOKS_ONE "\xEE\x90\x80"
#define ICON_MD_LOOKS_TWO "\xEE\x90\x81"
#define ICON_MD_LOOP "\xEE\x80\xA8"
#define ICON_MD_LOUPE "\xEE\x90\x82"
#define ICON_MD_LOW_PRIORITY "\xEE\x85\xAD"
#define ICON_MD_LOYALTY "\xEE\xA2\x9A"
#define ICON_MD_MAIL "\xEE\x85\x98"
#define ICON_MD_MAIL_OUTLINE "\xEE\x83\xA1"
#define ICON_MD_MAP "\xEE\x95\x9B"
#define ICON_MD_MARKUNREAD "\xEE\x85\x99"
#define ICON_MD_MARKUNREAD_MAILBOX "\xEE\xA2\x9B"
#define ICON_MD_MEMORY "\xEE\x8C\xA2"
#define ICON_MD_MENU "\xEE\x97\x92"
#define ICON_MD_MERGE_TYPE "\xEE\x89\x92"
#define ICON_MD_MESSAGE "\xEE\x83\x89"
#define ICON_MD_MIC "\xEE\x80\xA9"
#define ICON_MD_MIC_NONE "\xEE\x80\xAA"
#define ICON_MD_MIC_OFF "\xEE\x80\xAB"
#define ICON_MD_MMS "\xEE\x98\x98"
#define ICON_MD_MODE_COMMENT "\xEE\x89\x93"
#define ICON_MD_MODE_EDIT "\xEE\x89\x94"
#define ICON_MD_MONETIZATION_ON "\xEE\x89\xA3"
#define ICON_MD_MONEY_OFF "\xEE\x89\x9C"
#define ICON_MD_MONOCHROME_PHOTOS "\xEE\x90\x83"
#define ICON_MD_MOOD "\xEE\x9F\xB2"
#define ICON_MD_MOOD_BAD "\xEE\x9F\xB3"
#define ICON_MD_MORE "\xEE\x98\x99"
#define ICON_MD_MORE_HORIZ "\xEE\x97\x93"
#define ICON_MD_MORE_VERT "\xEE\x97\x94"
#define ICON_MD_MOTORCYCLE "\xEE\xA4\x9B"
#define ICON_MD_MOUSE "\xEE\x8C\xA3"
#define ICON_MD_MOVE_TO_INBOX "\xEE\x85\xA8"
#define ICON_MD_MOVIE "\xEE\x80\xAC"
#define ICON_MD_MOVIE_CREATION "\xEE\x90\x84"
#define ICON_MD_MOVIE_FILTER "\xEE\x90\xBA"
#define ICON_MD_MULTILINE_CHART "\xEE\x9B\x9F"
#define ICON_MD_MUSIC_NOTE "\xEE\x90\x85"
#define ICON_MD_MUSIC_VIDEO "\xEE\x81\xA3"
#define ICON_MD_MY_LOCATION "\xEE\x95\x9C"
#define ICON_MD_NATURE "\xEE\x90\x86"
#define ICON_MD_NATURE_PEOPLE "\xEE\x90\x87"
#define ICON_MD_NAVIGATE_BEFORE "\xEE\x90\x88"
#define ICON_MD_NAVIGATE_NEXT "\xEE\x90\x89"
#define ICON_MD_NAVIGATION "\xEE\x95\x9D"
#define ICON_MD_NEAR_ME "\xEE\x95\xA9"
#define ICON_MD_NETWORK_CELL "\xEE\x86\xB9"
#define ICON_MD_NETWORK_CHECK "\xEE\x99\x80"
#define ICON_MD_NETWORK_LOCKED "\xEE\x98\x9A"
#define ICON_MD_NETWORK_WIFI "\xEE\x86\xBA"
#define ICON_MD_NEW_RELEASES "\xEE\x80\xB1"
#define ICON_MD_NEXT_WEEK "\xEE\x85\xAA"
#define ICON_MD_NFC "\xEE\x86\xBB"
#define ICON_MD_NO_ENCRYPTION "\xEE\x99\x81"
#define ICON_MD_NO_SIM "\xEE\x83\x8C"
#define ICON_MD_NOT_INTERESTED "\xEE\x80\xB3"
#define ICON_MD_NOTE "\xEE\x81\xAF"
#define ICON_MD_NOTE_ADD "\xEE\xA2\x9C"
#define ICON_MD_NOTIFICATIONS "\xEE\x9F\xB4"
#define ICON_MD_NOTIFICATIONS_ACTIVE "\xEE\x9F\xB7"
#define ICON_MD_NOTIFICATIONS_NONE "\xEE\x9F\xB5"
#define ICON_MD_NOTIFICATIONS_OFF "\xEE\x9F\xB6"
#define ICON_MD_NOTIFICATIONS_PAUSED "\xEE\x9F\xB8"
#define ICON_MD_OFFLINE_PIN "\xEE\xA4\x8A"
#define ICON_MD_ONDEMAND_VIDEO "\xEE\x98\xBA"
#define ICON_MD_OPACITY "\xEE\xA4\x9C"
#define ICON_MD_OPEN_IN_BROWSER "\xEE\xA2\x9D"
#define ICON_MD_OPEN_IN_NEW "\xEE\xA2\x9E"
#define ICON_MD_OPEN_WITH "\xEE\xA2\x9F"
#define ICON_MD_PAGES "\xEE\x9F\xB9"
#define ICON_MD_PAGEVIEW "\xEE\xA2\xA0"
#define ICON_MD_PALETTE "\xEE\x90\x8A"
#define ICON_MD_PAN_TOOL "\xEE\xA4\xA5"
#define ICON_MD_PANORAMA "\xEE\x90\x8B"
#define ICON_MD_PANORAMA_FISH_EYE "\xEE\x90\x8C"
#define ICON_MD_PANORAMA_HORIZONTAL "\xEE\x90\x8D"
#define ICON_MD_PANORAMA_VERTICAL "\xEE\x90\x8E"
#define ICON_MD_PANORAMA_WIDE_ANGLE "\xEE\x90\x8F"
#define ICON_MD_PARTY_MODE "\xEE\x9F\xBA"
#define ICON_MD_PAUSE "\xEE\x80\xB4"
#define ICON_MD_PAUSE_CIRCLE_FILLED "\xEE\x80\xB5"
#define ICON_MD_PAUSE_CIRCLE_OUTLINE "\xEE\x80\xB6"
#define ICON_MD_PAYMENT "\xEE\xA2\xA1"
#define ICON_MD_PEOPLE "\xEE\x9F\xBB"
#define ICON_MD_PEOPLE_OUTLINE "\xEE\x9F\xBC"
#define ICON_MD_PERM_CAMERA_MIC "\xEE\xA2\xA2"
#define ICON_MD_PERM_CONTACT_CALENDAR "\xEE\xA2\xA3"
#define ICON_MD_PERM_DATA_SETTING "\xEE\xA2\xA4"
#define ICON_MD_PERM_DEVICE_INFORMATION "\xEE\xA2\xA5"
#define ICON_MD_PERM_IDENTITY "\xEE\xA2\xA6"
#define ICON_MD_PERM_MEDIA "\xEE\xA2\xA7"
#define ICON_MD_PERM_PHONE_MSG "\xEE\xA2\xA8"
#define ICON_MD_PERM_SCAN_WIFI "\xEE\xA2\xA9"
#define ICON_MD_PERSON "\xEE\x9F\xBD"
#define ICON_MD_PERSON_ADD "\xEE\x9F\xBE"
#define ICON_MD_PERSON_OUTLINE "\xEE\x9F\xBF"
#define ICON_MD_PERSON_PIN "\xEE\x95\x9A"
#define ICON_MD_PERSON_PIN_CIRCLE "\xEE\x95\xAA"
#define ICON_MD_PERSONAL_VIDEO "\xEE\x98\xBB"
#define ICON_MD_PETS "\xEE\xA4\x9D"
#define ICON_MD_PHONE "\xEE\x83\x8D"
#define ICON_MD_PHONE_ANDROID "\xEE\x8C\xA4"
#define ICON_MD_PHONE_BLUETOOTH_SPEAKER "\xEE\x98\x9B"
#define ICON_MD_PHONE_FORWARDED "\xEE\x98\x9C"
#define ICON_MD_PHONE_IN_TALK "\xEE\x98\x9D"
#define ICON_MD_PHONE_IPHONE "\xEE\x8C\xA5"
#define ICON_MD_PHONE_LOCKED "\xEE\x98\x9E"
#define ICON_MD_PHONE_MISSED "\xEE\x98\x9F"
#define ICON_MD_PHONE_PAUSED "\xEE\x98\xA0"
#define ICON_MD_PHONELINK "\xEE\x8C\xA6"
#define ICON_MD_PHONELINK_ERASE "\xEE\x83\x9B"
#define ICON_MD_PHONELINK_LOCK "\xEE\x83\x9C"
#define ICON_MD_PHONELINK_OFF "\xEE\x8C\xA7"
#define ICON_MD_PHONELINK_RING "\xEE\x83\x9D"
#define ICON_MD_PHONELINK_SETUP "\xEE\x83\x9E"
#define ICON_MD_PHOTO "\xEE\x90\x90"
#define ICON_MD_PHOTO_ALBUM "\xEE\x90\x91"
#define ICON_MD_PHOTO_CAMERA "\xEE\x90\x92"
#define ICON_MD_PHOTO_FILTER "\xEE\x90\xBB"
#define ICON_MD_PHOTO_LIBRARY "\xEE\x90\x93"
#define ICON_MD_PHOTO_SIZE_SELECT_ACTUAL "\xEE\x90\xB2"
#define ICON_MD_PHOTO_SIZE_SELECT_LARGE "\xEE\x90\xB3"
#define ICON_MD_PHOTO_SIZE_SELECT_SMALL "\xEE\x90\xB4"
#define ICON_MD_PICTURE_AS_PDF "\xEE\x90\x95"
#define ICON_MD_PICTURE_IN_PICTURE "\xEE\xA2\xAA"
#define ICON_MD_PICTURE_IN_PICTURE_ALT "\xEE\xA4\x91"
#define ICON_MD_PIE_CHART "\xEE\x9B\x84"
#define ICON_MD_PIE_CHART_OUTLINED "\xEE\x9B\x85"
#define ICON_MD_PIN_DROP "\xEE\x95\x9E"
#define ICON_MD_PLACE "\xEE\x95\x9F"
#define ICON_MD_PLAY_ARROW "\xEE\x80\xB7"
#define ICON_MD_PLAY_CIRCLE_FILLED "\xEE\x80\xB8"
#define ICON_MD_PLAY_CIRCLE_OUTLINE "\xEE\x80\xB9"
#define ICON_MD_PLAY_FOR_WORK "\xEE\xA4\x86"
#define ICON_MD_PLAYLIST_ADD "\xEE\x80\xBB"
#define ICON_MD_PLAYLIST_ADD_CHECK "\xEE\x81\xA5"
#define ICON_MD_PLAYLIST_PLAY "\xEE\x81\x9F"
#define ICON_MD_PLUS_ONE "\xEE\xA0\x80"
#define ICON_MD_POLL "\xEE\xA0\x81"
#define ICON_MD_POLYMER "\xEE\xA2\xAB"
#define ICON_MD_POOL "\xEE\xAD\x88"
#define ICON_MD_PORTABLE_WIFI_OFF "\xEE\x83\x8E"
#define ICON_MD_PORTRAIT "\xEE\x90\x96"
#define ICON_MD_POWER "\xEE\x98\xBC"
#define ICON_MD_POWER_INPUT "\xEE\x8C\xB6"
#define ICON_MD_POWER_SETTINGS_NEW "\xEE\xA2\xAC"
#define ICON_MD_PREGNANT_WOMAN "\xEE\xA4\x9E"
#define ICON_MD_PRESENT_TO_ALL "\xEE\x83\x9F"
#define ICON_MD_PRINT "\xEE\xA2\xAD"
#define ICON_MD_PRIORITY_HIGH "\xEE\x99\x85"
#define ICON_MD_PUBLIC "\xEE\xA0\x8B"
#define ICON_MD_PUBLISH "\xEE\x89\x95"
#define ICON_MD_QUERY_BUILDER "\xEE\xA2\xAE"
#define ICON_MD_QUESTION_ANSWER "\xEE\xA2\xAF"
#define ICON_MD_QUEUE "\xEE\x80\xBC"
#define ICON_MD_QUEUE_MUSIC "\xEE\x80\xBD"
#define ICON_MD_QUEUE_PLAY_NEXT "\xEE\x81\xA6"
#define ICON_MD_RADIO "\xEE\x80\xBE"
#define ICON_MD_RADIO_BUTTON_CHECKED "\xEE\xA0\xB7"
#define ICON_MD_RADIO_BUTTON_UNCHECKED "\xEE\xA0\xB6"
#define ICON_MD_RATE_REVIEW "\xEE\x95\xA0"
#define ICON_MD_RECEIPT "\xEE\xA2\xB0"
#define ICON_MD_RECENT_ACTORS "\xEE\x80\xBF"
#define ICON_MD_RECORD_VOICE_OVER "\xEE\xA4\x9F"
#define ICON_MD_REDEEM "\xEE\xA2\xB1"
#define ICON_MD_REDO "\xEE\x85\x9A"
#define ICON_MD_REFRESH "\xEE\x97\x95"
#define ICON_MD_REMOVE "\xEE\x85\x9B"
#define ICON_MD_REMOVE_CIRCLE "\xEE\x85\x9C"
#define ICON_MD_REMOVE_CIRCLE_OUTLINE "\xEE\x85\x9D"
#define ICON_MD_REMOVE_FROM_QUEUE "\xEE\x81\xA7"
#define ICON_MD_REMOVE_RED_EYE "\xEE\x90\x97"
#define ICON_MD_REMOVE_SHOPPING_CART "\xEE\xA4\xA8"
#define ICON_MD_REORDER "\xEE\xA3\xBE"
#define ICON_MD_REPEAT "\xEE\x81\x80"
#define ICON_MD_REPEAT_ONE "\xEE\x81\x81"
#define ICON_MD_REPLAY "\xEE\x81\x82"
#define ICON_MD_REPLAY_10 "\xEE\x81\x99"
#define ICON_MD_REPLAY_30 "\xEE\x81\x9A"
#define ICON_MD_REPLAY_5 "\xEE\x81\x9B"
#define ICON_MD_REPLY "\xEE\x85\x9E"
#define ICON_MD_REPLY_ALL "\xEE\x85\x9F"
#define ICON_MD_REPORT "\xEE\x85\xA0"
#define ICON_MD_REPORT_PROBLEM "\xEE\xA2\xB2"
#define ICON_MD_RESTAURANT "\xEE\x95\xAC"
#define ICON_MD_RESTAURANT_MENU "\xEE\x95\xA1"
#define ICON_MD_RESTORE "\xEE\xA2\xB3"
#define ICON_MD_RESTORE_PAGE "\xEE\xA4\xA9"
#define ICON_MD_RING_VOLUME "\xEE\x83\x91"
#define ICON_MD_ROOM "\xEE\xA2\xB4"
#define ICON_MD_ROOM_SERVICE "\xEE\xAD\x89"
#define ICON_MD_ROTATE_90_DEGREES_CCW "\xEE\x90\x98"
#define ICON_MD_ROTATE_LEFT "\xEE\x90\x99"
#define ICON_MD_ROTATE_RIGHT "\xEE\x90\x9A"
#define ICON_MD_ROUNDED_CORNER "\xEE\xA4\xA0"
#define ICON_MD_ROUTER "\xEE\x8C\xA8"
#define ICON_MD_ROWING "\xEE\xA4\xA1"
#define ICON_MD_RSS_FEED "\xEE\x83\xA5"
#define ICON_MD_RV_HOOKUP "\xEE\x99\x82"
#define ICON_MD_SATELLITE "\xEE\x95\xA2"
#define ICON_MD_SAVE "\xEE\x85\xA1"
#define ICON_MD_SCANNER "\xEE\x8C\xA9"
#define ICON_MD_SCHEDULE "\xEE\xA2\xB5"
#define ICON_MD_SCHOOL "\xEE\xA0\x8C"
#define ICON_MD_SCREEN_LOCK_LANDSCAPE "\xEE\x86\xBE"
#define ICON_MD_SCREEN_LOCK_PORTRAIT "\xEE\x86\xBF"
#define ICON_MD_SCREEN_LOCK_ROTATION "\xEE\x87\x80"
#define ICON_MD_SCREEN_ROTATION "\xEE\x87\x81"
#define ICON_MD_SCREEN_SHARE "\xEE\x83\xA2"
#define ICON_MD_SD_CARD "\xEE\x98\xA3"
#define ICON_MD_SD_STORAGE "\xEE\x87\x82"
#define ICON_MD_SEARCH "\xEE\xA2\xB6"
#define ICON_MD_SECURITY "\xEE\x8C\xAA"
#define ICON_MD_SELECT_ALL "\xEE\x85\xA2"
#define ICON_MD_SEND "\xEE\x85\xA3"
#define ICON_MD_SENTIMENT_DISSATISFIED "\xEE\xA0\x91"
#define ICON_MD_SENTIMENT_NEUTRAL "\xEE\xA0\x92"
#define ICON_MD_SENTIMENT_SATISFIED "\xEE\xA0\x93"
#define ICON_MD_SENTIMENT_VERY_DISSATISFIED "\xEE\xA0\x94"
#define ICON_MD_SENTIMENT_VERY_SATISFIED "\xEE\xA0\x95"
#define ICON_MD_SETTINGS "\xEE\xA2\xB8"
#define ICON_MD_SETTINGS_APPLICATIONS "\xEE\xA2\xB9"
#define ICON_MD_SETTINGS_BACKUP_RESTORE "\xEE\xA2\xBA"
#define ICON_MD_SETTINGS_BLUETOOTH "\xEE\xA2\xBB"
#define ICON_MD_SETTINGS_BRIGHTNESS "\xEE\xA2\xBD"
#define ICON_MD_SETTINGS_CELL "\xEE\xA2\xBC"
#define ICON_MD_SETTINGS_ETHERNET "\xEE\xA2\xBE"
#define ICON_MD_SETTINGS_INPUT_ANTENNA "\xEE\xA2\xBF"
#define ICON_MD_SETTINGS_INPUT_COMPONENT "\xEE\xA3\x80"
#define ICON_MD_SETTINGS_INPUT_COMPOSITE "\xEE\xA3\x81"
#define ICON_MD_SETTINGS_INPUT_HDMI "\xEE\xA3\x82"
#define ICON_MD_SETTINGS_INPUT_SVIDEO "\xEE\xA3\x83"
#define ICON_MD_SETTINGS_OVERSCAN "\xEE\xA3\x84"
#define ICON_MD_SETTINGS_PHONE "\xEE\xA3\x85"
#define ICON_MD_SETTINGS_POWER "\xEE\xA3\x86"
#define ICON_MD_SETTINGS_REMOTE "\xEE\xA3\x87"
#define ICON_MD_SETTINGS_SYSTEM_DAYDREAM "\xEE\x87\x83"
#define ICON_MD_SETTINGS_VOICE "\xEE\xA3\x88"
#define ICON_MD_SHARE "\xEE\xA0\x8D"
#define ICON_MD_SHOP "\xEE\xA3\x89"
#define ICON_MD_SHOP_TWO "\xEE\xA3\x8A"
#define ICON_MD_SHOPPING_BASKET "\xEE\xA3\x8B"
#define ICON_MD_SHOPPING_CART "\xEE\xA3\x8C"
#define ICON_MD_SHORT_TEXT "\xEE\x89\xA1"
#define ICON_MD_SHOW_CHART "\xEE\x9B\xA1"
#define ICON_MD_SHUFFLE "\xEE\x81\x83"
#define ICON_MD_SIGNAL_CELLULAR_4_BAR "\xEE\x87\x88"
#define ICON_MD_SIGNAL_CELLULAR_CONNECTED_NO_INTERNET_4_BAR "\xEE\x87\x8D"
#define ICON_MD_SIGNAL_CELLULAR_NO_SIM "\xEE\x87\x8E"
#define ICON_MD_SIGNAL_CELLULAR_NULL "\xEE\x87\x8F"
#define ICON_MD_SIGNAL_CELLULAR_OFF "\xEE\x87\x90"
#define ICON_MD_SIGNAL_WIFI_4_BAR "\xEE\x87\x98"
#define ICON_MD_SIGNAL_WIFI_4_BAR_LOCK "\xEE\x87\x99"
#define ICON_MD_SIGNAL_WIFI_OFF "\xEE\x87\x9A"
#define ICON_MD_SIM_CARD "\xEE\x8C\xAB"
#define ICON_MD_SIM_CARD_ALERT "\xEE\x98\xA4"
#define ICON_MD_SKIP_NEXT "\xEE\x81\x84"
#define ICON_MD_SKIP_PREVIOUS "\xEE\x81\x85"
#define ICON_MD_SLIDESHOW "\xEE\x90\x9B"
#define ICON_MD_SLOW_MOTION_VIDEO "\xEE\x81\xA8"
#define ICON_MD_SMARTPHONE "\xEE\x8C\xAC"
#define ICON_MD_SMOKE_FREE "\xEE\xAD\x8A"
#define ICON_MD_SMOKING_ROOMS "\xEE\xAD\x8B"
#define ICON_MD_SMS "\xEE\x98\xA5"
#define ICON_MD_SMS_FAILED "\xEE\x98\xA6"
#define ICON_MD_SNOOZE "\xEE\x81\x86"
#define ICON_MD_SORT "\xEE\x85\xA4"
#define ICON_MD_SORT_BY_ALPHA "\xEE\x81\x93"
#define ICON_MD_SPA "\xEE\xAD\x8C"
#define ICON_MD_SPACE_BAR "\xEE\x89\x96"
#define ICON_MD_SPEAKER "\xEE\x8C\xAD"
#define ICON_MD_SPEAKER_GROUP "\xEE\x8C\xAE"
#define ICON_MD_SPEAKER_NOTES "\xEE\xA3\x8D"
#define ICON_MD_SPEAKER_NOTES_OFF "\xEE\xA4\xAA"
#define ICON_MD_SPEAKER_PHONE "\xEE\x83\x92"
#define ICON_MD_SPELLCHECK "\xEE\xA3\x8E"
#define ICON_MD_STAR "\xEE\xA0\xB8"
#define ICON_MD_STAR_BORDER "\xEE\xA0\xBA"
#define ICON_MD_STAR_HALF "\xEE\xA0\xB9"
#define ICON_MD_STARS "\xEE\xA3\x90"
#define ICON_MD_STAY_CURRENT_LANDSCAPE "\xEE\x83\x93"
#define ICON_MD_STAY_CURRENT_PORTRAIT "\xEE\x83\x94"
#define ICON_MD_STAY_PRIMARY_LANDSCAPE "\xEE\x83\x95"
#define ICON_MD_STAY_PRIMARY_PORTRAIT "\xEE\x83\x96"
#define ICON_MD_STOP "\xEE\x81\x87"
#define ICON_MD_STOP_SCREEN_SHARE "\xEE\x83\xA3"
#define ICON_MD_STORAGE "\xEE\x87\x9B"
#define ICON_MD_STORE "\xEE\xA3\x91"
#define ICON_MD_STORE_MALL_DIRECTORY "\xEE\x95\xA3"
#define ICON_MD_STRAIGHTEN "\xEE\x90\x9C"
#define ICON_MD_STREETVIEW "\xEE\x95\xAE"
#define ICON_MD_STRIKETHROUGH_S "\xEE\x89\x97"
#define ICON_MD_STYLE "\xEE\x90\x9D"
#define ICON_MD_SUBDIRECTORY_ARROW_LEFT "\xEE\x97\x99"
#define ICON_MD_SUBDIRECTORY_ARROW_RIGHT "\xEE\x97\x9A"
#define ICON_MD_SUBJECT "\xEE\xA3\x92"
#define ICON_MD_SUBSCRIPTIONS "\xEE\x81\xA4"
#define ICON_MD_SUBTITLES "\xEE\x81\x88"
#define ICON_MD_SUBWAY "\xEE\x95\xAF"
#define ICON_MD_SUPERVISOR_ACCOUNT "\xEE\xA3\x93"
#define ICON_MD_SURROUND_SOUND "\xEE\x81\x89"
#define ICON_MD_SWAP_CALLS "\xEE\x83\x97"
#define ICON_MD_SWAP_HORIZ "\xEE\xA3\x94"
#define ICON_MD_SWAP_VERT "\xEE\xA3\x95"
#define ICON_MD_SWAP_VERTICAL_CIRCLE "\xEE\xA3\x96"
#define ICON_MD_SWITCH_CAMERA "\xEE\x90\x9E"
#define ICON_MD_SWITCH_VIDEO "\xEE\x90\x9F"
#define ICON_MD_SYNC "\xEE\x98\xA7"
#define ICON_MD_SYNC_DISABLED "\xEE\x98\xA8"
#define ICON_MD_SYNC_PROBLEM "\xEE\x98\xA9"
#define ICON_MD_SYSTEM_UPDATE "\xEE\x98\xAA"
#define ICON_MD_SYSTEM_UPDATE_ALT "\xEE\xA3\x97"
#define ICON_MD_TAB "\xEE\xA3\x98"
#define ICON_MD_TAB_UNSELECTED "\xEE\xA3\x99"
#define ICON_MD_TABLET "\xEE\x8C\xAF"
#define ICON_MD_TABLET_ANDROID "\xEE\x8C\xB0"
#define ICON_MD_TABLET_MAC "\xEE\x8C\xB1"
#define ICON_MD_TAG_FACES "\xEE\x90\xA0"
#define ICON_MD_TAP_AND_PLAY "\xEE\x98\xAB"
#define ICON_MD_TERRAIN "\xEE\x95\xA4"
#define ICON_MD_TEXT_FIELDS "\xEE\x89\xA2"
#define ICON_MD_TEXT_FORMAT "\xEE\x85\xA5"
#define ICON_MD_TEXTSMS "\xEE\x83\x98"
#define ICON_MD_TEXTURE "\xEE\x90\xA1"
#define ICON_MD_THEATERS "\xEE\xA3\x9A"
#define ICON_MD_THUMB_DOWN "\xEE\xA3\x9B"
#define ICON_MD_THUMB_UP "\xEE\xA3\x9C"
#define ICON_MD_THUMBS_UP_DOWN "\xEE\xA3\x9D"
#define ICON_MD_TIME_TO_LEAVE "\xEE\x98\xAC"
#define ICON_MD_TIMELAPSE "\xEE\x90\xA2"
#define ICON_MD_TIMELINE "\xEE\xA4\xA2"
#define ICON_MD_TIMER "\xEE\x90\xA5"
#define ICON_MD_TIMER_10 "\xEE\x90\xA3"
#define ICON_MD_TIMER_3 "\xEE\x90\xA4"
#define ICON_MD_TIMER_OFF "\xEE\x90\xA6"
#define ICON_MD_TITLE "\xEE\x89\xA4"
#define ICON_MD_TOC "\xEE\xA3\x9E"
#define ICON_MD_TODAY "\xEE\xA3\x9F"
#define ICON_MD_TOLL "\xEE\xA3\xA0"
#define ICON_MD_TONALITY "\xEE\x90\xA7"
#define ICON_MD_TOUCH_APP "\xEE\xA4\x93"
#define ICON_MD_TOYS "\xEE\x8C\xB2"
#define ICON_MD_TRACK_CHANGES "\xEE\xA3\xA1"
#define ICON_MD_TRAFFIC "\xEE\x95\xA5"
#define ICON_MD_TRAIN "\xEE\x95\xB0"
#define ICON_MD_TRAM "\xEE\x95\xB1"
#define ICON_MD_TRANSFER_WITHIN_A_STATION "\xEE\x95\xB2"
#define ICON_MD_TRANSFORM "\xEE\x90\xA8"
#define ICON_MD_TRANSLATE "\xEE\xA3\xA2"
#define ICON_MD_TRENDING_DOWN "\xEE\xA3\xA3"
#define ICON_MD_TRENDING_FLAT "\xEE\xA3\xA4"
#define ICON_MD_TRENDING_UP "\xEE\xA3\xA5"
#define ICON_MD_TUNE "\xEE\x90\xA9"
#define ICON_MD_TURNED_IN "\xEE\xA3\xA6"
#define ICON_MD_TURNED_IN_NOT "\xEE\xA3\xA7"
#define ICON_MD_TV "\xEE\x8C\xB3"
#define ICON_MD_UNARCHIVE "\xEE\x85\xA9"
#define ICON_MD_UNDO "\xEE\x85\xA6"
#define ICON_MD_UNFOLD_LESS "\xEE\x97\x96"
#define ICON_MD_UNFOLD_MORE "\xEE\x97\x97"
#define ICON_MD_UPDATE "\xEE\xA4\xA3"
#define ICON_MD_USB "\xEE\x87\xA0"
#define ICON_MD_VERIFIED_USER "\xEE\xA3\xA8"
#define ICON_MD_VERTICAL_ALIGN_BOTTOM "\xEE\x89\x98"
#define ICON_MD_VERTICAL_ALIGN_CENTER "\xEE\x89\x99"
#define ICON_MD_VERTICAL_ALIGN_TOP "\xEE\x89\x9A"
#define ICON_MD_VIBRATION "\xEE\x98\xAD"
#define ICON_MD_VIDEO_CALL "\xEE\x81\xB0"
#define ICON_MD_VIDEO_LABEL "\xEE\x81\xB1"
#define ICON_MD_VIDEO_LIBRARY "\xEE\x81\x8A"
#define ICON_MD_VIDEOCAM "\xEE\x81\x8B"
#define ICON_MD_VIDEOCAM_OFF "\xEE\x81\x8C"
#define ICON_MD_VIDEOGAME_ASSET "\xEE\x8C\xB8"
#define ICON_MD_VIEW_AGENDA "\xEE\xA3\xA9"
#define ICON_MD_VIEW_ARRAY "\xEE\xA3\xAA"
#define ICON_MD_VIEW_CAROUSEL "\xEE\xA3\xAB"
#define ICON_MD_VIEW_COLUMN "\xEE\xA3\xAC"
#define ICON_MD_VIEW_COMFY "\xEE\x90\xAA"
#define ICON_MD_VIEW_COMPACT "\xEE\x90\xAB"
#define ICON_MD_VIEW_DAY "\xEE\xA3\xAD"
#define ICON_MD_VIEW_HEADLINE "\xEE\xA3\xAE"
#define ICON_MD_VIEW_LIST "\xEE\xA3\xAF"
#define ICON_MD_VIEW_MODULE "\xEE\xA3\xB0"
#define ICON_MD_VIEW_QUILT "\xEE\xA3\xB1"
#define ICON_MD_VIEW_STREAM "\xEE\xA3\xB2"
#define ICON_MD_VIEW_WEEK "\xEE\xA3\xB3"
#define ICON_MD_VIGNETTE "\xEE\x90\xB5"
#define ICON_MD_VISIBILITY "\xEE\xA3\xB4"
#define ICON_MD_VISIBILITY_OFF "\xEE\xA3\xB5"
#define ICON_MD_VOICE_CHAT "\xEE\x98\xAE"
#define ICON_MD_VOICEMAIL "\xEE\x83\x99"
#define ICON_MD_VOLUME_DOWN "\xEE\x81\x8D"
#define ICON_MD_VOLUME_MUTE "\xEE\x81\x8E"
#define ICON_MD_VOLUME_OFF "\xEE\x81\x8F"
#define ICON_MD_VOLUME_UP "\xEE\x81\x90"
#define ICON_MD_VPN_KEY "\xEE\x83\x9A"
#define ICON_MD_VPN_LOCK "\xEE\x98\xAF"
#define ICON_MD_WALLPAPER "\xEE\x86\xBC"
#define ICON_MD_WARNING "\xEE\x80\x82"
#define ICON_MD_WATCH "\xEE\x8C\xB4"
#define ICON_MD_WATCH_LATER "\xEE\xA4\xA4"
#define ICON_MD_WB_AUTO "\xEE\x90\xAC"
#define ICON_MD_WB_CLOUDY "\xEE\x90\xAD"
#define ICON_MD_WB_INCANDESCENT "\xEE\x90\xAE"
#define ICON_MD_WB_IRIDESCENT "\xEE\x90\xB6"
#define ICON_MD_WB_SUNNY "\xEE\x90\xB0"
#define ICON_MD_WC "\xEE\x98\xBD"
#define ICON_MD_WEB "\xEE\x81\x91"
#define ICON_MD_WEB_ASSET "\xEE\x81\xA9"
#define ICON_MD_WEEKEND "\xEE\x85\xAB"
#define ICON_MD_WHATSHOT "\xEE\xA0\x8E"
#define ICON_MD_WIDGETS "\xEE\x86\xBD"
#define ICON_MD_WIFI "\xEE\x98\xBE"
#define ICON_MD_WIFI_LOCK "\xEE\x87\xA1"
#define ICON_MD_WIFI_TETHERING "\xEE\x87\xA2"
#define ICON_MD_WORK "\xEE\xA3\xB9"
#define ICON_MD_WRAP_TEXT "\xEE\x89\x9B"
#define ICON_MD_YOUTUBE_SEARCHED_FOR "\xEE\xA3\xBA"
#define ICON_MD_ZOOM_IN "\xEE\xA3\xBF"
#define ICON_MD_ZOOM_OUT "\xEE\xA4\x80"
#define ICON_MD_ZOOM_OUT_MAP "\xEE\x95\xAB"

View File

@ -830,10 +830,9 @@ int ImStrnicmp(const char* str1, const char* str2, int count)
char* ImStrdup(const char *str)
{
char *buff = (char*)ImGui::MemAlloc(strlen(str) + 1);
IM_ASSERT(buff);
strcpy(buff, str);
return buff;
size_t len = strlen(str) + 1;
void* buff = ImGui::MemAlloc(len);
return (char*)memcpy(buff, (const void*)str, len);
}
int ImStrlenW(const ImWchar* str)

View File

@ -1894,6 +1894,11 @@ struct ExampleAppConsole
free(History[i]);
}
// Portable helpers
static int Stricmp(const char* str1, const char* str2) { int d; while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } return d; }
static int Strnicmp(const char* str1, const char* str2, int n) { int d = 0; while (n > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; n--; } return d; }
static char* Strdup(const char *str) { size_t len = strlen(str) + 1; void* buff = ImGui::MemAlloc(len); return (char*)memcpy(buff, (const void*)str, len); }
void ClearLog()
{
for (int i = 0; i < Items.Size; i++)
@ -1910,7 +1915,7 @@ struct ExampleAppConsole
vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args);
buf[IM_ARRAYSIZE(buf)-1] = 0;
va_end(args);
Items.push_back(strdup(buf));
Items.push_back(Strdup(buf));
ScrollToBottom = true;
}
@ -1987,9 +1992,6 @@ struct ExampleAppConsole
ImGui::End();
}
static int Stricmp(const char* str1, const char* str2) { int d; while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } return d; }
static int Strnicmp(const char* str1, const char* str2, int count) { int d = 0; while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } return d; }
void ExecCommand(const char* command_line)
{
AddLog("# %s\n", command_line);
@ -2003,7 +2005,7 @@ struct ExampleAppConsole
History.erase(History.begin() + i);
break;
}
History.push_back(strdup(command_line));
History.push_back(Strdup(command_line));
// Process command
if (Stricmp(command_line, "CLEAR") == 0)

View File

@ -37,6 +37,7 @@ Supported platforms:
* Native Client (PPAPI 37+, ARM, x86, x64, PNaCl)
* OSX (10.9+)
* RaspberryPi
* SteamLink
* Windows (XP, Vista, 7, 8, 10)
* WinRT (WinPhone 8.0+)
@ -99,7 +100,7 @@ deployment model of web with the performance of native code and GPU acceleration
https://github.com/nem0/LumixEngine LumixEngine is a MIT licensed 3D engine.
The main goal is performance and Unity-like usability.
![LumixEngine screenshot](https://cloud.githubusercontent.com/assets/153526/10109455/450c51be-63c7-11e5-9c87-96d9d00efe02.png)
![LumixEngine screenshot](https://cloud.githubusercontent.com/assets/153526/12904252/3fcf130e-cece-11e5-878b-c9fe24c1b11a.png)
https://github.com/podgorskiy/KeplerOrbits KeplerOrbits - Tool that calculates
positions of celestial bodies using their orbital elements. [Web Demo](http://podgorskiy.com/KeplerOrbits/KeplerOrbits.html)

View File

@ -14,6 +14,9 @@
#include "font/text_buffer_manager.h"
#include "entry/input.h"
#include <iconfontheaders/icons_font_awesome.h>
#include <iconfontheaders/icons_kenney.h>
#include <stdio.h>
#include <wchar.h>
@ -105,10 +108,12 @@ int _main_(int _argc, char** _argv)
}
TrueTypeHandle fontAwesomeTtf = loadTtf(fontManager, "font/fontawesome-webfont.ttf");
TrueTypeHandle fontKenneyTtf = loadTtf(fontManager, "font/kenney-icon-font.ttf");
// This font doesn't have any preloaded glyph's but the truetype file
// is loaded so glyph will be generated as needed.
FontHandle fontAwesome72 = fontManager->createFontByPixelSize(fontAwesomeTtf, 0, 72);
FontHandle fontKenney64 = fontManager->createFontByPixelSize(fontKenneyTtf, 0, 64);
TrueTypeHandle visitorTtf = loadTtf(fontManager, "font/visitor1.ttf");
@ -160,7 +165,24 @@ int _main_(int _argc, char** _argv)
textBufferManager->appendText(staticText, fonts[0], L"dog\n");
textBufferManager->setStyle(staticText, STYLE_NORMAL);
textBufferManager->appendText(staticText, fontAwesome72, L"\xf011 \xf02e \xf061 \xf087 \xf0d9 \xf099 \xf05c \xf021 \xf113\n");
textBufferManager->appendText(staticText, fontAwesome72,
" " ICON_FA_POWER_OFF
" " ICON_FA_TWITTER_SQUARE
" " ICON_FA_CERTIFICATE
" " ICON_FA_FLOPPY_O
" " ICON_FA_GITHUB
" " ICON_FA_GITHUB_ALT
"\n"
);
textBufferManager->appendText(staticText, fontKenney64,
" " ICON_KI_COMPUTER
" " ICON_KI_JOYSTICK
" " ICON_KI_EXLAMATION
" " ICON_KI_STAR
" " ICON_KI_BUTTON_START
" " ICON_KI_DOWNLOAD
"\n"
);
// Create a transient buffer for real-time data.
TextBufferHandle transientText = textBufferManager->createTextBuffer(FONT_TYPE_ALPHA, BufferType::Transient);
@ -242,10 +264,12 @@ int _main_(int _argc, char** _argv)
bgfx::frame();
}
fontManager->destroyTtf(fontKenneyTtf);
fontManager->destroyTtf(fontAwesomeTtf);
fontManager->destroyTtf(visitorTtf);
// Destroy the fonts.
fontManager->destroyFont(fontKenney64);
fontManager->destroyFont(fontAwesome72);
fontManager->destroyFont(visitor10);
for (uint32_t ii = 0; ii < numFonts; ++ii)

View File

@ -277,6 +277,102 @@ void calcMinBoundingSphere(Sphere& _sphere, const void* _vertices, uint32_t _num
_sphere.m_radius = bx::fsqrt(maxDistSq);
}
void buildFrustumPlanes(Plane* _result, const float* _viewProj)
{
const float xw = _viewProj[ 3];
const float yw = _viewProj[ 7];
const float zw = _viewProj[11];
const float ww = _viewProj[15];
const float xz = _viewProj[ 2];
const float yz = _viewProj[ 6];
const float zz = _viewProj[10];
const float wz = _viewProj[14];
Plane& near = _result[0];
Plane& far = _result[1];
Plane& left = _result[2];
Plane& right = _result[3];
Plane& top = _result[4];
Plane& bottom = _result[5];
near.m_normal[0] = xw - xz;
near.m_normal[1] = yw - yz;
near.m_normal[2] = zw - zz;
near.m_dist = ww - wz;
far.m_normal[0] = xw + xz;
far.m_normal[1] = yw + yz;
far.m_normal[2] = zw + zz;
far.m_dist = ww + wz;
const float xx = _viewProj[ 0];
const float yx = _viewProj[ 4];
const float zx = _viewProj[ 8];
const float wx = _viewProj[12];
left.m_normal[0] = xw - xx;
left.m_normal[1] = yw - yx;
left.m_normal[2] = zw - zx;
left.m_dist = ww - wx;
right.m_normal[0] = xw + xx;
right.m_normal[1] = yw + yx;
right.m_normal[2] = zw + zx;
right.m_dist = ww + wx;
const float xy = _viewProj[ 1];
const float yy = _viewProj[ 5];
const float zy = _viewProj[ 9];
const float wy = _viewProj[13];
top.m_normal[0] = xw + xy;
top.m_normal[1] = yw + yy;
top.m_normal[2] = zw + zy;
top.m_dist = ww + wy;
bottom.m_normal[0] = xw - xy;
bottom.m_normal[1] = yw - yy;
bottom.m_normal[2] = zw - zy;
bottom.m_dist = ww - wy;
Plane* plane = _result;
for (uint32_t ii = 0; ii < 6; ++ii)
{
float invLen = 1.0f / bx::vec3Norm(plane->m_normal, plane->m_normal);
plane->m_dist *= invLen;
++plane;
}
}
void intersectPlanes(float _result[3], const Plane& _pa, const Plane& _pb, const Plane& _pc)
{
float axb[3];
bx::vec3Cross(axb, _pa.m_normal, _pb.m_normal);
float bxc[3];
bx::vec3Cross(bxc, _pb.m_normal, _pc.m_normal);
float cxa[3];
bx::vec3Cross(cxa, _pc.m_normal, _pa.m_normal);
float tmp0[3];
bx::vec3Mul(tmp0, bxc, _pa.m_dist);
float tmp1[3];
bx::vec3Mul(tmp1, cxa, _pb.m_dist);
float tmp2[3];
bx::vec3Mul(tmp2, axb, _pc.m_dist);
float tmp[3];
bx::vec3Add(tmp, tmp0, tmp1);
bx::vec3Add(tmp0, tmp, tmp2);
float denom = bx::vec3Dot(_pa.m_normal, bxc);
bx::vec3Mul(_result, tmp0, -1.0f/denom);
}
Ray makeRay(float _x, float _y, const float* _invVp)
{
Ray ray;

View File

@ -94,6 +94,12 @@ void calcMaxBoundingSphere(Sphere& _sphere, const void* _vertices, uint32_t _num
/// Calculate minimum bounding sphere.
void calcMinBoundingSphere(Sphere& _sphere, const void* _vertices, uint32_t _numVertices, uint32_t _stride, float _step = 0.01f);
/// Returns 6 (near, far, left, right, top, bottom) planes representing frustum planes.
void buildFrustumPlanes(Plane* _planes, const float* _viewProj);
/// Returns point from 3 intersecting planes.
void intersectPlanes(float _result[3], const Plane& _pa, const Plane& _pb, const Plane& _pc);
/// Make screen space ray from x, y coordinate and inverse view-projection matrix.
Ray makeRay(float _x, float _y, const float* _invVp);

View File

@ -218,6 +218,8 @@ namespace entry
return wmi.info.cocoa.window;
# elif BX_PLATFORM_WINDOWS
return wmi.info.win.window;
# elif BX_PLATFORM_STEAMLINK
return wmi.info.vivante.window;
# endif // BX_PLATFORM_
}

View File

@ -3572,3 +3572,10 @@ bool imguiMouseOverArea()
{
return s_imgui.m_insideArea;
}
bgfx::ProgramHandle imguiGetImageProgram(uint8_t _mip)
{
const float lodEnabled[4] = { float(_mip), 1.0f, 0.0f, 0.0f };
bgfx::setUniform(s_imgui.u_imageLodEnabled, lodEnabled);
return s_imgui.m_imageProgram;
}

View File

@ -208,12 +208,13 @@ bool imguiMouseOverArea();
namespace ImGui
{
#define IMGUI_FLAGS_NONE UINT16_C(0x0000)
#define IMGUI_FLAGS_ALPHA_BLEND UINT16_C(0x0001)
#define IMGUI_FLAGS_NONE UINT8_C(0x00)
#define IMGUI_FLAGS_ALPHA_BLEND UINT8_C(0x01)
// Helper function for passing bgfx::TextureHandle to ImGui::Image.
inline void Image(bgfx::TextureHandle _handle
, uint16_t _flags
, uint8_t _flags
, uint8_t _mip
, const ImVec2& _size
, const ImVec2& _uv0 = ImVec2(0.0f, 0.0f)
, const ImVec2& _uv1 = ImVec2(1.0f, 1.0f)
@ -221,9 +222,10 @@ namespace ImGui
, const ImVec4& _borderCol = ImVec4(0.0f, 0.0f, 0.0f, 0.0f)
)
{
union { struct { uint16_t flags; bgfx::TextureHandle handle; } s; ImTextureID ptr; } texture;
texture.s.flags = _flags;
union { struct { bgfx::TextureHandle handle; uint8_t flags; uint8_t mip; } s; ImTextureID ptr; } texture;
texture.s.handle = _handle;
texture.s.flags = _flags;
texture.s.mip = _mip;
Image(texture.ptr, _size, _uv0, _uv1, _tintCol, _borderCol);
}
@ -236,12 +238,13 @@ namespace ImGui
, const ImVec4& _borderCol = ImVec4(0.0f, 0.0f, 0.0f, 0.0f)
)
{
Image(_handle, IMGUI_FLAGS_ALPHA_BLEND, _size, _uv0, _uv1, _tintCol, _borderCol);
Image(_handle, IMGUI_FLAGS_ALPHA_BLEND, 0, _size, _uv0, _uv1, _tintCol, _borderCol);
}
// Helper function for passing bgfx::TextureHandle to ImGui::ImageButton.
inline bool ImageButton(bgfx::TextureHandle _handle
, uint16_t _flags
, uint8_t _flags
, uint8_t _mip
, const ImVec2& _size
, const ImVec2& _uv0 = ImVec2(0.0f, 0.0f)
, const ImVec2& _uv1 = ImVec2(1.0f, 1.0f)
@ -250,9 +253,10 @@ namespace ImGui
, const ImVec4& _tintCol = ImVec4(1.0f, 1.0f, 1.0f, 1.0f)
)
{
union { struct { uint16_t flags; bgfx::TextureHandle handle; } s; ImTextureID ptr; } texture;
texture.s.flags = _flags;
union { struct { bgfx::TextureHandle handle; uint8_t flags; uint8_t mip; } s; ImTextureID ptr; } texture;
texture.s.handle = _handle;
texture.s.flags = _flags;
texture.s.mip = _mip;
return ImageButton(texture.ptr, _size, _uv0, _uv1, _framePadding, _bgCol, _tintCol);
}
@ -266,7 +270,7 @@ namespace ImGui
, const ImVec4& _tintCol = ImVec4(1.0f, 1.0f, 1.0f, 1.0f)
)
{
return ImageButton(_handle, IMGUI_FLAGS_ALPHA_BLEND, _size, _uv0, _uv1, _framePadding, _bgCol, _tintCol);
return ImageButton(_handle, IMGUI_FLAGS_ALPHA_BLEND, 0, _size, _uv0, _uv1, _framePadding, _bgCol, _tintCol);
}
} // namespace ImGui

View File

@ -305,15 +305,21 @@ struct OcornutImguiContext
;
bgfx::TextureHandle th = m_texture;
bgfx::ProgramHandle program = m_program;
if (NULL != cmd->TextureId)
{
union { ImTextureID ptr; struct { uint16_t flags; bgfx::TextureHandle handle; } s; } texture = { cmd->TextureId };
union { ImTextureID ptr; struct { bgfx::TextureHandle handle; uint8_t flags; uint8_t mip; } s; } texture = { cmd->TextureId };
state |= 0 != (IMGUI_FLAGS_ALPHA_BLEND & texture.s.flags)
? BGFX_STATE_BLEND_FUNC(BGFX_STATE_BLEND_SRC_ALPHA, BGFX_STATE_BLEND_INV_SRC_ALPHA)
: BGFX_STATE_NONE
;
th = texture.s.handle;
if (0 != texture.s.mip)
{
extern bgfx::ProgramHandle imguiGetImageProgram(uint8_t _mip);
program = imguiGetImageProgram(texture.s.mip);
}
}
else
{
@ -331,7 +337,7 @@ struct OcornutImguiContext
bgfx::setTexture(0, s_tex, th);
bgfx::setVertexBuffer(&tvb, 0, numVertices);
bgfx::setIndexBuffer(&tib, offset, cmd->ElemCount);
bgfx::submit(cmd->ViewId, m_program);
bgfx::submit(cmd->ViewId, program);
}
offset += cmd->ElemCount;

Binary file not shown.

View File

@ -532,6 +532,14 @@ namespace bgfx
bool cubeMap; //!< Texture is cubemap.
};
///
struct Attachment
{
TextureHandle handle; //!< Texture handle.
uint16_t mip; //!< Mip level.
uint16_t layer; //!< Cubemap side or depth layer/slice.
};
/// Transform data.
///
/// @attention C99 equivalent is `bgfx_transform_t`.
@ -1362,8 +1370,8 @@ namespace bgfx
/// Update Cube texture.
///
/// @param[in] _handle Texture handle.
/// @param[in] _side Cubemap side, where 0 is +X, 1 is -X, 2 is +Y, 3 is
/// -Y, 4 is +Z, and 5 is -Z.
/// @param[in] _side Cubemap side `BGFX_CUBE_MAP_<POSITIVE or NEGATIVE>_<X, Y or Z>`,
/// where 0 is +X, 1 is -X, 2 is +Y, 3 is -Y, 4 is +Z, and 5 is -Z.
///
/// +----------+
/// |-z 2|
@ -1470,6 +1478,17 @@ namespace bgfx
///
FrameBufferHandle createFrameBuffer(uint8_t _num, const TextureHandle* _handles, bool _destroyTextures = false);
/// Create frame buffer.
///
/// @param[in] _num Number of texture attachments.
/// @param[in] _attachment Attachment info. See: `Attachment`.
/// @param[in] _destroyTextures If true, textures will be destroyed when
/// frame buffer is destroyed.
///
/// @attention C99 equivalent is `bgfx_create_frame_buffer_from_handles`.
///
FrameBufferHandle createFrameBuffer(uint8_t _num, const Attachment* _attachment, bool _destroyTextures = false);
/// Create frame buffer for multiple window rendering.
///
/// @param[in] _nwh OS' target native window handle.

View File

@ -6,7 +6,7 @@
#ifndef BGFX_DEFINES_H_HEADER_GUARD
#define BGFX_DEFINES_H_HEADER_GUARD
#define BGFX_API_VERSION UINT32_C(7)
#define BGFX_API_VERSION UINT32_C(9)
///
#define BGFX_STATE_RGB_WRITE UINT64_C(0x0000000000000001) //!< Enable RGB write.
@ -422,4 +422,12 @@
#define BGFX_HMD_DEVICE_RESOLUTION UINT8_C(0x01) //!< Has HMD native resolution.
#define BGFX_HMD_RENDERING UINT8_C(0x02) //!< Rendering to HMD.
///
#define BGFX_CUBE_MAP_POSITIVE_X UINT8_C(0x00) //!< Cubemap +x.
#define BGFX_CUBE_MAP_NEGATIVE_X UINT8_C(0x01) //!< Cubemap -x.
#define BGFX_CUBE_MAP_POSITIVE_Y UINT8_C(0x02) //!< Cubemap +y.
#define BGFX_CUBE_MAP_NEGATIVE_Y UINT8_C(0x03) //!< Cubemap -y.
#define BGFX_CUBE_MAP_POSITIVE_Z UINT8_C(0x04) //!< Cubemap +z.
#define BGFX_CUBE_MAP_NEGATIVE_Z UINT8_C(0x05) //!< Cubemap -z.
#endif // BGFX_DEFINES_H_HEADER_GUARD

View File

@ -279,6 +279,9 @@ namespace bgfx
# elif BX_PLATFORM_WINDOWS
pd.ndt = NULL;
pd.nwh = wmi.info.win.window;
# elif BX_PLATFORM_STEAMLINK
pd.ndt = wmi.info.vivante.display;
pd.nwh = wmi.info.vivante.window;
# endif // BX_PLATFORM_
pd.context = NULL;
pd.backBuffer = NULL;

View File

@ -349,6 +349,15 @@ typedef struct bgfx_texture_info
} bgfx_texture_info_t;
/**/
typedef struct bgfx_attachment
{
bgfx_texture_handle_t handle;
uint16_t mip;
uint16_t layer;
} bgfx_attachment_t;
/**/
typedef struct bgfx_caps_gpu
{
@ -639,7 +648,7 @@ BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer(uint16_t _width,
BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_scaled(bgfx_backbuffer_ratio_t _ratio, bgfx_texture_format_t _format, uint32_t _textureFlags);
/**/
BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_from_handles(uint8_t _num, const bgfx_texture_handle_t* _handles, bool _destroyTextures);
BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_from_attachment(uint8_t _num, const bgfx_attachment_t* _attachment, bool _destroyTextures);
/**/
BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_from_nwh(void* _nwh, uint16_t _width, uint16_t _height, bgfx_texture_format_t _depthFormat);

View File

@ -137,7 +137,7 @@ typedef struct bgfx_interface_vtbl
void (*destroy_texture)(bgfx_texture_handle_t _handle);
bgfx_frame_buffer_handle_t (*create_frame_buffer)(uint16_t _width, uint16_t _height, bgfx_texture_format_t _format, uint32_t _textureFlags);
bgfx_frame_buffer_handle_t (*create_frame_buffer_scaled)(bgfx_backbuffer_ratio_t _ratio, bgfx_texture_format_t _format, uint32_t _textureFlags);
bgfx_frame_buffer_handle_t (*create_frame_buffer_from_handles)(uint8_t _num, const bgfx_texture_handle_t* _handles, bool _destroyTextures);
bgfx_frame_buffer_handle_t (*create_frame_buffer_from_attachment)(uint8_t _num, const bgfx_attachment_t* _attachment, bool _destroyTextures);
bgfx_frame_buffer_handle_t (*create_frame_buffer_from_nwh)(void* _nwh, uint16_t _width, uint16_t _height, bgfx_texture_format_t _depthFormat);
void (*destroy_frame_buffer)(bgfx_frame_buffer_handle_t _handle);
bgfx_uniform_handle_t (*create_uniform)(const char* _name, bgfx_uniform_type_t _type, uint16_t _num);

View File

@ -88,12 +88,18 @@ function bgfxProject(_name, _kind, _defines)
"-weak_framework Metal",
}
configuration { "not nacl" }
configuration { "not nacl", "not linux-steamlink" }
includedirs {
--nacl has GLES2 headers modified...
--steamlink has EGL headers modified...
path.join(BGFX_DIR, "3rdparty/khronos"),
}
configuration { "linux-steamlink" }
defines {
"EGL_API_FB",
}
configuration {}
includedirs {

View File

@ -60,6 +60,11 @@ project ("example-common")
"ENTRY_CONFIG_USE_GLFW=1",
}
end
configuration { "linux-steamlink" }
defines {
"EGL_API_FB",
}
configuration { "osx or ios* or tvos*" }
files {

View File

@ -304,13 +304,21 @@ function exampleProject(_name)
kind "ConsoleApp"
targetextension ".bc"
configuration { "linux-* or freebsd" }
configuration { "linux-* or freebsd", "not linux-steamlink" }
links {
"X11",
"GL",
"pthread",
}
configuration { "linux-steamlink" }
links {
"EGL",
"GLESv2",
"SDL2",
"pthread",
}
configuration { "rpi" }
links {
"X11",

View File

@ -2259,13 +2259,10 @@ again:
uint8_t num;
_cmdbuf.read(num);
TextureHandle textureHandles[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
for (uint32_t ii = 0; ii < num; ++ii)
{
_cmdbuf.read(textureHandles[ii]);
}
Attachment attachment[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
_cmdbuf.read(attachment, sizeof(Attachment) * num);
m_renderCtx->createFrameBuffer(handle, num, textureHandles);
m_renderCtx->createFrameBuffer(handle, num, attachment);
}
}
break;
@ -3111,6 +3108,19 @@ again:
}
FrameBufferHandle createFrameBuffer(uint8_t _num, const TextureHandle* _handles, bool _destroyTextures)
{
Attachment attachment[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
for (uint8_t ii = 0; ii < _num; ++ii)
{
Attachment& at = attachment[ii];
at.handle = _handles[ii];
at.mip = 0;
at.layer = 0;
}
return createFrameBuffer(_num, attachment, _destroyTextures);
}
FrameBufferHandle createFrameBuffer(uint8_t _num, const Attachment* _attachment, bool _destroyTextures)
{
BGFX_CHECK_MAIN_THREAD();
BX_CHECK(_num != 0, "Number of frame buffer attachments can't be 0.");
@ -3118,8 +3128,8 @@ again:
, _num
, BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS
);
BX_CHECK(NULL != _handles, "_handles can't be NULL");
return s_ctx->createFrameBuffer(_num, _handles, _destroyTextures);
BX_CHECK(NULL != _attachment, "_attachment can't be NULL");
return s_ctx->createFrameBuffer(_num, _attachment, _destroyTextures);
}
FrameBufferHandle createFrameBuffer(void* _nwh, uint16_t _width, uint16_t _height, TextureFormat::Enum _depthFormat)
@ -4114,10 +4124,10 @@ BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_scaled(bgfx_backb
return handle.c;
}
BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_from_handles(uint8_t _num, const bgfx_texture_handle_t* _handles, bool _destroyTextures)
BGFX_C_API bgfx_frame_buffer_handle_t bgfx_create_frame_buffer_from_attachment(uint8_t _num, const bgfx_attachment_t* _attachment, bool _destroyTextures)
{
union { bgfx_frame_buffer_handle_t c; bgfx::FrameBufferHandle cpp; } handle;
handle.cpp = bgfx::createFrameBuffer(_num, (const bgfx::TextureHandle*)_handles, _destroyTextures);
handle.cpp = bgfx::createFrameBuffer(_num, (const bgfx::Attachment*)_attachment, _destroyTextures);
return handle.c;
}
@ -4560,7 +4570,7 @@ BGFX_C_API bgfx_interface_vtbl_t* bgfx_get_interface(uint32_t _version)
BGFX_IMPORT_FUNC(destroy_texture) \
BGFX_IMPORT_FUNC(create_frame_buffer) \
BGFX_IMPORT_FUNC(create_frame_buffer_scaled) \
BGFX_IMPORT_FUNC(create_frame_buffer_from_handles) \
BGFX_IMPORT_FUNC(create_frame_buffer_from_attachment) \
BGFX_IMPORT_FUNC(create_frame_buffer_from_nwh) \
BGFX_IMPORT_FUNC(destroy_frame_buffer) \
BGFX_IMPORT_FUNC(create_uniform) \

View File

@ -573,8 +573,14 @@ namespace bgfx
const char* getPredefinedUniformName(PredefinedUniform::Enum _enum);
PredefinedUniform::Enum nameToPredefinedUniformEnum(const char* _name);
struct CommandBuffer
class CommandBuffer
{
BX_CLASS(CommandBuffer
, NO_COPY
, NO_ASSIGNMENT
);
public:
CommandBuffer()
: m_pos(0)
, m_size(BGFX_CONFIG_MAX_COMMAND_BUFFER_SIZE)
@ -690,10 +696,6 @@ namespace bgfx
uint32_t m_pos;
uint32_t m_size;
uint8_t m_buffer[BGFX_CONFIG_MAX_COMMAND_BUFFER_SIZE];
private:
CommandBuffer(const CommandBuffer&);
void operator=(const CommandBuffer&);
};
#define SORT_KEY_NUM_BITS_TRANS 2
@ -2050,7 +2052,7 @@ namespace bgfx
virtual void overrideInternal(TextureHandle _handle, uintptr_t _ptr) = 0;
virtual uintptr_t getInternal(TextureHandle _handle) = 0;
virtual void destroyTexture(TextureHandle _handle) = 0;
virtual void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const TextureHandle* _textureHandles) = 0;
virtual void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const Attachment* _attachment) = 0;
virtual void createFrameBuffer(FrameBufferHandle _handle, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat) = 0;
virtual void destroyFrameBuffer(FrameBufferHandle _handle) = 0;
virtual void createUniform(UniformHandle _handle, UniformType::Enum _type, uint16_t _num, const char* _name) = 0;
@ -3182,14 +3184,14 @@ namespace bgfx
cmdbuf.write(_mem);
}
bool checkFrameBuffer(uint8_t _num, const TextureHandle* _handles) const
bool checkFrameBuffer(uint8_t _num, const Attachment* _attachment) const
{
uint8_t color = 0;
uint8_t depth = 0;
for (uint32_t ii = 0; ii < _num; ++ii)
{
TextureHandle texHandle = _handles[ii];
TextureHandle texHandle = _attachment[ii].handle;
if (isDepth(TextureFormat::Enum(m_textureRef[texHandle.idx].m_format)))
{
++depth;
@ -3205,9 +3207,9 @@ namespace bgfx
;
}
BGFX_API_FUNC(FrameBufferHandle createFrameBuffer(uint8_t _num, const TextureHandle* _handles, bool _destroyTextures) )
BGFX_API_FUNC(FrameBufferHandle createFrameBuffer(uint8_t _num, const Attachment* _attachment, bool _destroyTextures) )
{
BX_CHECK(checkFrameBuffer(_num, _handles)
BX_CHECK(checkFrameBuffer(_num, _attachment)
, "Too many frame buffer attachments (num attachments: %d, max color attachments %d)!"
, _num
, g_caps.maxFBAttachments
@ -3226,26 +3228,26 @@ namespace bgfx
FrameBufferRef& ref = m_frameBufferRef[handle.idx];
ref.m_window = false;
memset(ref.un.m_th, 0xff, sizeof(ref.un.m_th) );
BackbufferRatio::Enum bbRatio = BackbufferRatio::Enum(m_textureRef[_handles[0].idx].m_bbRatio);
BackbufferRatio::Enum bbRatio = BackbufferRatio::Enum(m_textureRef[_attachment[0].handle.idx].m_bbRatio);
for (uint32_t ii = 0; ii < _num; ++ii)
{
TextureHandle texHandle = _handles[ii];
TextureHandle texHandle = _attachment[ii].handle;
BGFX_CHECK_HANDLE("createFrameBuffer texture handle", m_textureHandle, texHandle);
BX_CHECK(bbRatio == m_textureRef[texHandle.idx].m_bbRatio, "Mismatch in texture back-buffer ratio.");
BX_UNUSED(bbRatio);
cmdbuf.write(texHandle);
ref.un.m_th[ii] = texHandle;
textureIncRef(texHandle);
}
cmdbuf.write(_attachment, sizeof(Attachment) * _num);
}
if (_destroyTextures)
{
for (uint32_t ii = 0; ii < _num; ++ii)
{
textureTakeOwnership(_handles[ii]);
textureTakeOwnership(_attachment[ii].handle);
}
}

View File

@ -4,8 +4,6 @@
*/
#include "bgfx_p.h"
#include <math.h> // powf, sqrtf
#include "image.h"
namespace bgfx
@ -345,30 +343,30 @@ namespace bgfx
const uint8_t* rgba = src;
for (uint32_t xx = 0; xx < dstwidth; ++xx, rgba += 8, dst += 4)
{
float rr = powf(rgba[ 0], 2.2f);
float gg = powf(rgba[ 1], 2.2f);
float bb = powf(rgba[ 2], 2.2f);
float aa = rgba[ 3];
rr += powf(rgba[ 4], 2.2f);
gg += powf(rgba[ 5], 2.2f);
bb += powf(rgba[ 6], 2.2f);
aa += rgba[ 7];
rr += powf(rgba[_pitch+0], 2.2f);
gg += powf(rgba[_pitch+1], 2.2f);
bb += powf(rgba[_pitch+2], 2.2f);
aa += rgba[_pitch+3];
rr += powf(rgba[_pitch+4], 2.2f);
gg += powf(rgba[_pitch+5], 2.2f);
bb += powf(rgba[_pitch+6], 2.2f);
aa += rgba[_pitch+7];
float rr = bx::fpow(rgba[ 0], 2.2f);
float gg = bx::fpow(rgba[ 1], 2.2f);
float bb = bx::fpow(rgba[ 2], 2.2f);
float aa = rgba[ 3];
rr += bx::fpow(rgba[ 4], 2.2f);
gg += bx::fpow(rgba[ 5], 2.2f);
bb += bx::fpow(rgba[ 6], 2.2f);
aa += rgba[ 7];
rr += bx::fpow(rgba[_pitch+0], 2.2f);
gg += bx::fpow(rgba[_pitch+1], 2.2f);
bb += bx::fpow(rgba[_pitch+2], 2.2f);
aa += rgba[_pitch+3];
rr += bx::fpow(rgba[_pitch+4], 2.2f);
gg += bx::fpow(rgba[_pitch+5], 2.2f);
bb += bx::fpow(rgba[_pitch+6], 2.2f);
aa += rgba[_pitch+7];
rr *= 0.25f;
gg *= 0.25f;
bb *= 0.25f;
aa *= 0.25f;
rr = powf(rr, 1.0f/2.2f);
gg = powf(gg, 1.0f/2.2f);
bb = powf(bb, 1.0f/2.2f);
rr = bx::fpow(rr, 1.0f/2.2f);
gg = bx::fpow(gg, 1.0f/2.2f);
bb = bx::fpow(bb, 1.0f/2.2f);
dst[0] = (uint8_t)rr;
dst[1] = (uint8_t)gg;
dst[2] = (uint8_t)bb;
@ -3176,7 +3174,7 @@ namespace bgfx
{
float nx = temp[ii*4+2]*2.0f/255.0f - 1.0f;
float ny = temp[ii*4+1]*2.0f/255.0f - 1.0f;
float nz = sqrtf(1.0f - nx*nx - ny*ny);
float nz = bx::fsqrt(1.0f - nx*nx - ny*ny);
temp[ii*4+0] = uint8_t( (nz + 1.0f)*255.0f/2.0f);
temp[ii*4+3] = 0;
}
@ -3323,10 +3321,10 @@ namespace bgfx
const uint8_t* rgba = src;
for (uint32_t xx = 0; xx < dstwidth; ++xx, rgba += 4, dst += 4)
{
dst[0] = powf(rgba[ 0], 2.2f);
dst[1] = powf(rgba[ 1], 2.2f);
dst[2] = powf(rgba[ 2], 2.2f);
dst[3] = rgba[ 3];
dst[0] = bx::fpow(rgba[0], 2.2f);
dst[1] = bx::fpow(rgba[1], 2.2f);
dst[2] = bx::fpow(rgba[2], 2.2f);
dst[3] = rgba[3];
}
}
}
@ -3395,7 +3393,7 @@ namespace bgfx
{
float nx = temp[ii*4+2]*2.0f/255.0f - 1.0f;
float ny = temp[ii*4+1]*2.0f/255.0f - 1.0f;
float nz = sqrtf(1.0f - nx*nx - ny*ny);
float nz = bx::fsqrt(1.0f - nx*nx - ny*ny);
const uint32_t offset = (yy*4 + ii/4)*_width*16 + (xx*4 + ii%4)*16;
float* block = (float*)&dst[offset];

View File

@ -1778,9 +1778,9 @@ BX_PRAGMA_DIAGNOSTIC_POP();
m_textures[_handle.idx].destroy();
}
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const TextureHandle* _textureHandles) BX_OVERRIDE
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const Attachment* _attachment) BX_OVERRIDE
{
m_frameBuffers[_handle.idx].create(_num, _textureHandles);
m_frameBuffers[_handle.idx].create(_num, _attachment);
}
void createFrameBuffer(FrameBufferHandle _handle, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat) BX_OVERRIDE
@ -4252,7 +4252,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
return handle;
}
void FrameBufferD3D11::create(uint8_t _num, const TextureHandle* _handles)
void FrameBufferD3D11::create(uint8_t _num, const Attachment* _attachment)
{
for (uint32_t ii = 0; ii < BX_COUNTOF(m_rtv); ++ii)
{
@ -4262,7 +4262,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
m_swapChain = NULL;
m_numTh = _num;
memcpy(m_th, _handles, _num*sizeof(TextureHandle) );
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
postReset();
}
@ -4355,7 +4355,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
m_num = 0;
for (uint32_t ii = 0; ii < m_numTh; ++ii)
{
TextureHandle handle = m_th[ii];
TextureHandle handle = m_attachment[ii].handle;
if (isValid(handle) )
{
const TextureD3D11& texture = s_renderD3D11->m_textures[handle.idx];
@ -4404,7 +4404,7 @@ BX_PRAGMA_DIAGNOSTIC_POP();
: D3D11_DSV_DIMENSION_TEXTURE2D
;
dsvDesc.Flags = 0;
dsvDesc.Texture2D.MipSlice = 0;
dsvDesc.Texture2D.MipSlice = m_attachment[ii].mip;
DX_CHECK(s_renderD3D11->m_device->CreateDepthStencilView(texture.m_ptr, &dsvDesc, &m_dsv) );
}
break;
@ -4417,14 +4417,14 @@ BX_PRAGMA_DIAGNOSTIC_POP();
{
dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY;
dsvDesc.Texture2DMSArray.ArraySize = 1;
dsvDesc.Texture2DMSArray.FirstArraySlice = 0;
dsvDesc.Texture2DMSArray.FirstArraySlice = m_attachment[ii].layer;
}
else
{
dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DARRAY;
dsvDesc.Texture2DArray.ArraySize = 1;
dsvDesc.Texture2DArray.FirstArraySlice = 0;
dsvDesc.Texture2DArray.MipSlice = 0;
dsvDesc.Texture2DArray.FirstArraySlice = m_attachment[ii].layer;
dsvDesc.Texture2DArray.MipSlice = m_attachment[ii].mip;
}
dsvDesc.Flags = 0;
DX_CHECK(s_renderD3D11->m_device->CreateDepthStencilView(texture.m_ptr, &dsvDesc, &m_dsv) );
@ -4438,7 +4438,20 @@ BX_PRAGMA_DIAGNOSTIC_POP();
{
default:
case TextureD3D11::Texture2D:
DX_CHECK(s_renderD3D11->m_device->CreateRenderTargetView(texture.m_ptr, NULL, &m_rtv[m_num]) );
{
D3D11_RENDER_TARGET_VIEW_DESC desc;
desc.Format = s_textureFormat[texture.m_textureFormat].m_fmt;
if (1 < msaa.Count)
{
desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMS;
}
else
{
desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
desc.Texture2D.MipSlice = m_attachment[ii].mip;
}
DX_CHECK(s_renderD3D11->m_device->CreateRenderTargetView(texture.m_ptr, &desc, &m_rtv[m_num]) );
}
break;
case TextureD3D11::TextureCube:
@ -4449,14 +4462,14 @@ BX_PRAGMA_DIAGNOSTIC_POP();
{
desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY;
desc.Texture2DMSArray.ArraySize = 1;
desc.Texture2DMSArray.FirstArraySlice = 0;
desc.Texture2DMSArray.FirstArraySlice = m_attachment[ii].layer;
}
else
{
desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY;
desc.Texture2DArray.ArraySize = 1;
desc.Texture2DArray.FirstArraySlice = 0;
desc.Texture2DArray.MipSlice = 0;
desc.Texture2DArray.FirstArraySlice = m_attachment[ii].layer;
desc.Texture2DArray.MipSlice = m_attachment[ii].mip;
}
DX_CHECK(s_renderD3D11->m_device->CreateRenderTargetView(texture.m_ptr, &desc, &m_rtv[m_num]) );
}
@ -4467,9 +4480,9 @@ BX_PRAGMA_DIAGNOSTIC_POP();
D3D11_RENDER_TARGET_VIEW_DESC desc;
desc.Format = s_textureFormat[texture.m_textureFormat].m_fmt;
desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE3D;
desc.Texture3D.MipSlice = 0;
desc.Texture3D.MipSlice = m_attachment[ii].mip;
desc.Texture3D.WSize = 1;
desc.Texture3D.FirstWSlice = 0;
desc.Texture3D.FirstWSlice = m_attachment[ii].layer;
DX_CHECK(s_renderD3D11->m_device->CreateRenderTargetView(texture.m_ptr, &desc, &m_rtv[m_num]) );
}
break;

View File

@ -261,7 +261,7 @@ namespace bgfx { namespace d3d11
{
}
void create(uint8_t _num, const TextureHandle* _handles);
void create(uint8_t _num, const Attachment* _attachment);
void create(uint16_t _denseIdx, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat);
uint16_t destroy();
void preReset(bool _force = false);
@ -278,7 +278,7 @@ namespace bgfx { namespace d3d11
uint16_t m_denseIdx;
uint8_t m_num;
uint8_t m_numTh;
TextureHandle m_th[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
Attachment m_attachment[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
};
struct TimerQueryD3D11

View File

@ -1388,9 +1388,9 @@ namespace bgfx { namespace d3d12
m_textures[_handle.idx].destroy();
}
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const TextureHandle* _textureHandles) BX_OVERRIDE
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const Attachment* _attachment) BX_OVERRIDE
{
m_frameBuffers[_handle.idx].create(_num, _textureHandles);
m_frameBuffers[_handle.idx].create(_num, _attachment);
}
void createFrameBuffer(FrameBufferHandle _handle, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat) BX_OVERRIDE
@ -4184,10 +4184,10 @@ data.NumQualityLevels = 0;
return _state;
}
void FrameBufferD3D12::create(uint8_t _num, const TextureHandle* _handles)
void FrameBufferD3D12::create(uint8_t _num, const Attachment* _attachment)
{
m_numTh = _num;
memcpy(m_th, _handles, _num*sizeof(TextureHandle) );
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
postReset();
}
@ -4217,7 +4217,7 @@ data.NumQualityLevels = 0;
m_num = 0;
for (uint32_t ii = 0; ii < m_numTh; ++ii)
{
TextureHandle handle = m_th[ii];
TextureHandle handle = m_attachment[ii].handle;
if (isValid(handle) )
{
const TextureD3D12& texture = s_renderD3D12->m_textures[handle.idx];

View File

@ -295,7 +295,7 @@ namespace bgfx { namespace d3d12
m_depth.idx = bgfx::invalidHandle;
}
void create(uint8_t _num, const TextureHandle* _handles);
void create(uint8_t _num, const Attachment* _attachment);
void create(uint16_t _denseIdx, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat);
uint16_t destroy();
void preReset();
@ -311,7 +311,7 @@ namespace bgfx { namespace d3d12
uint16_t m_denseIdx;
uint8_t m_num;
uint8_t m_numTh;
TextureHandle m_th[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
Attachment m_attachment[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
};
struct CommandQueueD3D12

View File

@ -1018,9 +1018,9 @@ namespace bgfx { namespace d3d9
m_textures[_handle.idx].destroy();
}
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const TextureHandle* _textureHandles) BX_OVERRIDE
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const Attachment* _attachment) BX_OVERRIDE
{
m_frameBuffers[_handle.idx].create(_num, _textureHandles);
m_frameBuffers[_handle.idx].create(_num, _attachment);
}
void createFrameBuffer(FrameBufferHandle _handle, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat) BX_OVERRIDE
@ -3062,7 +3062,7 @@ namespace bgfx { namespace d3d9
}
}
void FrameBufferD3D9::create(uint8_t _num, const TextureHandle* _handles)
void FrameBufferD3D9::create(uint8_t _num, const Attachment* _attachment)
{
for (uint32_t ii = 0; ii < BX_COUNTOF(m_color); ++ii)
{
@ -3074,7 +3074,7 @@ namespace bgfx { namespace d3d9
m_needResolve = false;
for (uint32_t ii = 0; ii < _num; ++ii)
{
TextureHandle handle = _handles[ii];
TextureHandle handle = _attachment[ii].handle;
if (isValid(handle) )
{
const TextureD3D9& texture = s_renderD3D9->m_textures[handle.idx];
@ -3102,7 +3102,7 @@ namespace bgfx { namespace d3d9
}
else
{
m_color[m_num] = texture.getSurface();
m_color[m_num] = texture.getSurface(uint8_t(_attachment[ii].layer) );
}
m_num++;
}

View File

@ -389,7 +389,7 @@ namespace bgfx { namespace d3d9
m_depthHandle.idx = invalidHandle;
}
void create(uint8_t _num, const TextureHandle* _handles);
void create(uint8_t _num, const Attachment* _attachment);
void create(uint16_t _denseIdx, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat);
uint16_t destroy();
HRESULT present();

View File

@ -2243,9 +2243,9 @@ namespace bgfx { namespace gl
m_textures[_handle.idx].destroy();
}
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const TextureHandle* _textureHandles) BX_OVERRIDE
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const Attachment* _attachment) BX_OVERRIDE
{
m_frameBuffers[_handle.idx].create(_num, _textureHandles);
m_frameBuffers[_handle.idx].create(_num, _attachment);
}
void createFrameBuffer(FrameBufferHandle _handle, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat) BX_OVERRIDE
@ -5017,12 +5017,12 @@ namespace bgfx { namespace gl
BX_UNUSED(complete);
}
void FrameBufferGL::create(uint8_t _num, const TextureHandle* _handles)
void FrameBufferGL::create(uint8_t _num, const Attachment* _attachment)
{
GL_CHECK(glGenFramebuffers(1, &m_fbo[0]) );
m_numTh = _num;
memcpy(m_th, _handles, _num*sizeof(TextureHandle) );
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
postReset();
}
@ -5040,15 +5040,15 @@ namespace bgfx { namespace gl
uint32_t colorIdx = 0;
for (uint32_t ii = 0; ii < m_numTh; ++ii)
{
TextureHandle handle = m_th[ii];
TextureHandle handle = m_attachment[ii].handle;
if (isValid(handle) )
{
const TextureGL& texture = s_renderGL->m_textures[handle.idx];
if (0 == colorIdx)
{
m_width = texture.m_width;
m_height = texture.m_height;
m_width = bx::uint32_max(texture.m_width >> m_attachment[ii].mip, 1);
m_height = bx::uint32_max(texture.m_height >> m_attachment[ii].mip, 1);
}
GLenum attachment = GL_COLOR_ATTACHMENT0 + colorIdx;
@ -5086,7 +5086,7 @@ namespace bgfx { namespace gl
else
{
GLenum target = GL_TEXTURE_CUBE_MAP == texture.m_target
? GL_TEXTURE_CUBE_MAP_POSITIVE_X
? GL_TEXTURE_CUBE_MAP_POSITIVE_X + m_attachment[ii].layer
: texture.m_target
;
@ -5094,7 +5094,7 @@ namespace bgfx { namespace gl
, attachment
, target
, texture.m_id
, 0
, m_attachment[ii].mip
) );
}
@ -5134,7 +5134,7 @@ namespace bgfx { namespace gl
colorIdx = 0;
for (uint32_t ii = 0; ii < m_numTh; ++ii)
{
TextureHandle handle = m_th[ii];
TextureHandle handle = m_attachment[ii].handle;
if (isValid(handle) )
{
const TextureGL& texture = s_renderGL->m_textures[handle.idx];
@ -5145,11 +5145,17 @@ namespace bgfx { namespace gl
if (!isDepth( (TextureFormat::Enum)texture.m_textureFormat) )
{
++colorIdx;
GLenum target = GL_TEXTURE_CUBE_MAP == texture.m_target
? GL_TEXTURE_CUBE_MAP_POSITIVE_X + m_attachment[ii].layer
: texture.m_target
;
GL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER
, attachment
, texture.m_target
, target
, texture.m_id
, 0
, m_attachment[ii].mip
) );
}
}

View File

@ -13,6 +13,7 @@
|| BX_PLATFORM_BSD \
|| BX_PLATFORM_QNX \
|| BX_PLATFORM_RPI \
|| BX_PLATFORM_STEAMLINK \
|| BX_PLATFORM_WINDOWS \
) )
@ -1169,7 +1170,7 @@ namespace bgfx { namespace gl
memset(m_fbo, 0, sizeof(m_fbo) );
}
void create(uint8_t _num, const TextureHandle* _handles);
void create(uint8_t _num, const Attachment* _attachment);
void create(uint16_t _denseIdx, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat);
void postReset();
uint16_t destroy();
@ -1183,7 +1184,7 @@ namespace bgfx { namespace gl
uint16_t m_denseIdx;
uint8_t m_num;
uint8_t m_numTh;
TextureHandle m_th[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
Attachment m_attachment[BGFX_CONFIG_MAX_FRAME_BUFFER_ATTACHMENTS];
};
struct ProgramGL

View File

@ -694,7 +694,7 @@ namespace bgfx { namespace mtl
m_depthHandle.idx = invalidHandle;
}
void create(uint8_t _num, const TextureHandle* _handles);
void create(uint8_t _num, const Attachment* _attachment);
void create(uint16_t _denseIdx, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat);
void postReset();
uint16_t destroy();

View File

@ -694,9 +694,9 @@ namespace bgfx { namespace mtl
m_textures[_handle.idx].destroy();
}
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const TextureHandle* _textureHandles) BX_OVERRIDE
void createFrameBuffer(FrameBufferHandle _handle, uint8_t _num, const Attachment* _attachment) BX_OVERRIDE
{
m_frameBuffers[_handle.idx].create(_num, _textureHandles);
m_frameBuffers[_handle.idx].create(_num, _attachment);
}
void createFrameBuffer(FrameBufferHandle _handle, void* _nwh, uint32_t _width, uint32_t _height, TextureFormat::Enum _depthFormat) BX_OVERRIDE
@ -2079,12 +2079,12 @@ namespace bgfx { namespace mtl
: m_sampler, _stage);
}
void FrameBufferMtl::create(uint8_t _num, const TextureHandle* _handles)
void FrameBufferMtl::create(uint8_t _num, const Attachment* _attachment)
{
m_num = 0;
for (uint32_t ii = 0; ii < _num; ++ii)
{
TextureHandle handle = _handles[ii];
TextureHandle handle = _attachment[ii].handle;
if (isValid(handle) )
{
const TextureMtl& texture = s_renderMtl->m_textures[handle.idx];

View File

@ -134,7 +134,7 @@ namespace bgfx { namespace noop
{
}
void createFrameBuffer(FrameBufferHandle /*_handle*/, uint8_t /*_num*/, const TextureHandle* /*_textureHandles*/) BX_OVERRIDE
void createFrameBuffer(FrameBufferHandle /*_handle*/, uint8_t /*_num*/, const Attachment* /*_attachment*/) BX_OVERRIDE
{
}

View File

@ -811,7 +811,7 @@ int main(int _argc, const char* _argv[])
PrimitiveArray primitives;
bx::CrtFileWriter writer;
if (bx::open(&writer, outFilePath) )
if (!bx::open(&writer, outFilePath) )
{
printf("Unable to open output file '%s'.", outFilePath);
exit(EXIT_FAILURE);

View File

@ -149,6 +149,11 @@ namespace bx
return _a - floorf(_a);
}
inline float fmod(float _a, float _b)
{
return fmodf(_a, _b);
}
inline bool fequal(float _a, float _b, float _epsilon)
{
// http://realtimecollisiondetection.net/blog/?p=89
@ -169,7 +174,7 @@ namespace bx
inline float fwrap(float _a, float _wrap)
{
const float mod = fmodf(_a, _wrap);
const float mod = fmod(_a, _wrap);
const float result = mod < 0.0f ? _wrap + mod : mod;
return result;
}
@ -422,8 +427,8 @@ namespace bx
inline void quatRotateAxis(float* __restrict _result, const float* _axis, float _angle)
{
const float ha = _angle * 0.5f;
const float ca = cosf(ha);
const float sa = sinf(ha);
const float ca = fcos(ha);
const float sa = fsin(ha);
_result[0] = _axis[0] * sa;
_result[1] = _axis[1] * sa;
_result[2] = _axis[2] * sa;
@ -433,8 +438,8 @@ namespace bx
inline void quatRotateX(float* _result, float _ax)
{
const float hx = _ax * 0.5f;
const float cx = cosf(hx);
const float sx = sinf(hx);
const float cx = fcos(hx);
const float sx = fsin(hx);
_result[0] = sx;
_result[1] = 0.0f;
_result[2] = 0.0f;
@ -444,8 +449,8 @@ namespace bx
inline void quatRotateY(float* _result, float _ay)
{
const float hy = _ay * 0.5f;
const float cy = cosf(hy);
const float sy = sinf(hy);
const float cy = fcos(hy);
const float sy = fsin(hy);
_result[0] = 0.0f;
_result[1] = sy;
_result[2] = 0.0f;
@ -455,8 +460,8 @@ namespace bx
inline void quatRotateZ(float* _result, float _az)
{
const float hz = _az * 0.5f;
const float cz = cosf(hz);
const float sz = sinf(hz);
const float cz = fcos(hz);
const float sz = fsin(hz);
_result[0] = 0.0f;
_result[1] = 0.0f;
_result[2] = sz;
@ -736,8 +741,8 @@ namespace bx
inline void mtxRotateX(float* _result, float _ax)
{
const float sx = sinf(_ax);
const float cx = cosf(_ax);
const float sx = fsin(_ax);
const float cx = fcos(_ax);
memset(_result, 0, sizeof(float)*16);
_result[ 0] = 1.0f;
@ -750,8 +755,8 @@ namespace bx
inline void mtxRotateY(float* _result, float _ay)
{
const float sy = sinf(_ay);
const float cy = cosf(_ay);
const float sy = fsin(_ay);
const float cy = fcos(_ay);
memset(_result, 0, sizeof(float)*16);
_result[ 0] = cy;
@ -764,8 +769,8 @@ namespace bx
inline void mtxRotateZ(float* _result, float _az)
{
const float sz = sinf(_az);
const float cz = cosf(_az);
const float sz = fsin(_az);
const float cz = fcos(_az);
memset(_result, 0, sizeof(float)*16);
_result[ 0] = cz;
@ -778,10 +783,10 @@ namespace bx
inline void mtxRotateXY(float* _result, float _ax, float _ay)
{
const float sx = sinf(_ax);
const float cx = cosf(_ax);
const float sy = sinf(_ay);
const float cy = cosf(_ay);
const float sx = fsin(_ax);
const float cx = fcos(_ax);
const float sy = fsin(_ay);
const float cy = fcos(_ay);
memset(_result, 0, sizeof(float)*16);
_result[ 0] = cy;
@ -797,12 +802,12 @@ namespace bx
inline void mtxRotateXYZ(float* _result, float _ax, float _ay, float _az)
{
const float sx = sinf(_ax);
const float cx = cosf(_ax);
const float sy = sinf(_ay);
const float cy = cosf(_ay);
const float sz = sinf(_az);
const float cz = cosf(_az);
const float sx = fsin(_ax);
const float cx = fcos(_ax);
const float sy = fsin(_ay);
const float cy = fcos(_ay);
const float sz = fsin(_az);
const float cz = fcos(_az);
memset(_result, 0, sizeof(float)*16);
_result[ 0] = cy*cz;
@ -819,12 +824,12 @@ namespace bx
inline void mtxRotateZYX(float* _result, float _ax, float _ay, float _az)
{
const float sx = sinf(_ax);
const float cx = cosf(_ax);
const float sy = sinf(_ay);
const float cy = cosf(_ay);
const float sz = sinf(_az);
const float cz = cosf(_az);
const float sx = fsin(_ax);
const float cx = fcos(_ax);
const float sy = fsin(_ay);
const float cy = fcos(_ay);
const float sz = fsin(_az);
const float cz = fcos(_az);
memset(_result, 0, sizeof(float)*16);
_result[ 0] = cy*cz;
@ -841,12 +846,12 @@ namespace bx
inline void mtxSRT(float* _result, float _sx, float _sy, float _sz, float _ax, float _ay, float _az, float _tx, float _ty, float _tz)
{
const float sx = sinf(_ax);
const float cx = cosf(_ax);
const float sy = sinf(_ay);
const float cy = cosf(_ay);
const float sz = sinf(_az);
const float cz = cosf(_az);
const float sx = fsin(_ax);
const float cx = fcos(_ax);
const float sy = fsin(_ay);
const float cy = fcos(_ay);
const float sz = fsin(_az);
const float cz = fcos(_az);
const float sxsz = sx*sz;
const float cycz = cy*cz;

View File

@ -103,7 +103,7 @@ namespace bx
static void readUnaligned(const void* _data, uint32_t& _out)
{
const uint8_t* data = (const uint8_t*)_data;
if (BX_ENABLED(BX_CPU_ENDIAN_LITTLE) )
if (BX_ENABLED(BX_CPU_ENDIAN_BIG) )
{
_out = 0
| data[0]<<24

View File

@ -1126,7 +1126,13 @@ function strip()
"$(SILENT) $(ANDROID_NDK_X86)/bin/i686-linux-android-strip -s \"$(TARGET)\""
}
configuration { "linux-* or rpi", "Release" }
configuration { "linux-steamlink", "Release" }
postbuildcommands {
"$(SILENT) echo Stripping symbols.",
"$(SILENT) $(MARVELL_SDK_PATH)/toolchain/bin/armv7a-cros-linux-gnueabi-strip -s \"$(TARGET)\""
}
configuration { "linux-* or rpi", "not linux-steamlink", "Release" }
postbuildcommands {
"$(SILENT) echo Stripping symbols.",
"$(SILENT) strip -s \"$(TARGET)\""

Binary file not shown.

Binary file not shown.

Binary file not shown.