Practical Tools for Simple Design
Loading...
Searching...
No Matches
Util Namespace Reference

Useful tools for development. More...

Classes

class  Animation
 Class representing an animation with frames. More...
 
class  AssetStore
 A class template for managing assets. More...
 
class  BGM
 Class for handling background music. More...
 
class  Color
 A class representing a color. More...
 
class  GameObject
 A class representing a game object. More...
 
class  Image
 A class representing an image. More...
 
class  Input
 The Input class provides access to keyboard and mouse input. More...
 
struct  PTSDPosition
 A class representing a position in a Cartesian coordinates. More...
 
class  Renderer
 A class handling GameObjects' Draw() More...
 
struct  SDLPosition
 A class representing a position in screen coordinates. More...
 
class  SFX
 Class for handling sound effects. More...
 
class  Text
 A class representing a text. More...
 
class  Time
 A singleton class that provides time-related functionalities. More...
 
struct  Transform
 A struct representing a transformation in 2D space. More...
 

Typedefs

using sdl_count_t = Uint64
 
using second_t = float
 
using ms_t = float
 

Enumerations

enum class  Colors : Uint32 {
  ALICE_BLUE = 0xF0F8FF , ANTIQUE_WHITE = 0xFAEBD7 , AQUA = 0x00FFFF , AQUAMARINE = 0x7FFFD4 ,
  AZURE = 0xF0FFFF , BEIGE = 0xF5F5DC , BISQUE = 0xFFE4C4 , BLACK = 0x000000 ,
  BLANCHED_ALMOND = 0xFFEBCD , BLUE = 0x0000FF , BLUE_VIOLET = 0x8A2BE2 , BROWN = 0xA52A2A ,
  BURLY_WOOD = 0xDEB887 , CADET_BLUE = 0x5F9EA0 , CHARTREUSE = 0x7FFF00 , CHOCOLATE = 0xD2691E ,
  CORAL = 0xFF7F50 , CORNFLOWER_BLUE = 0x6495ED , CORNSILK = 0xFFF8DC , CRIMSON = 0xDC143C ,
  CYAN = 0x00FFFF , DARK_BLUE = 0x00008B , DARK_CYAN = 0x008B8B , DARK_GOLDENROD = 0xB8860B ,
  DARK_GRAY = 0xA9A9A9 , DARK_GREEN = 0x006400 , DARK_KHAKI = 0xBDB76B , DARK_MAGENTA = 0x8B008B ,
  DARK_OLIVE_GREEN = 0x556B2F , DARK_ORANGE = 0xFF8C00 , DARK_ORCHID = 0x9932CC , DARK_RED = 0x8B0000 ,
  DARK_SALMON = 0xE9967A , DARK_SEA_GREEN = 0x8FBC8F , DARK_SLATE_BLUE = 0x483D8B , DARK_SLATE_GRAY = 0x2F4F4F ,
  DARK_TURQUOISE = 0x00CED1 , DARK_VIOLET = 0x9400D3 , DEEP_PINK = 0xFF1493 , DEEP_SKY_BLUE = 0x00BFFF ,
  DIM_GRAY = 0x696969 , DODGER_BLUE = 0x1E90FF , FIREBRICK = 0xB22222 , FLORAL_WHITE = 0xFFFAF0 ,
  FOREST_GREEN = 0x228B22 , FUCHSIA = 0xFF00FF , GAINSBORO = 0xDCDCDC , GHOST_WHITE = 0xF8F8FF ,
  GOLD = 0xFFD700 , GOLDENROD = 0xDAA520 , GRAY = 0x808080 , GREEN = 0x008000 ,
  GREEN_YELLOW = 0xADFF2F , HONEYDEW = 0xF0FFF0 , HOT_PINK = 0xFF69B4 , INDIAN_RED = 0xCD5C5C ,
  INDIGO = 0x4B0082 , IVORY = 0xFFFFF0 , KHAKI = 0xF0E68C , LAVENDER = 0xE6E6FA ,
  LAVENDER_BLUSH = 0xFFF0F5 , LAWN_GREEN = 0x7CFC00 , LEMON_CHIFFON = 0xFFFACD , LIGHT_BLUE = 0xADD8E6 ,
  LIGHT_CORAL = 0xF08080 , LIGHT_CYAN = 0xE0FFFF , LIGHT_GOLDENROD_YELLOW = 0xFAFAD2 , LIGHT_GRAY = 0xD3D3D3 ,
  LIGHT_GREEN = 0x90EE90 , LIGHT_PINK = 0xFFB6C1 , LIGHT_SALMON = 0xFFA07A , LIGHT_SEA_GREEN = 0x20B2AA ,
  LIGHT_SKY_BLUE = 0x87CEFA , LIGHT_SLATE_GRAY = 0x778899 , LIGHT_STEEL_BLUE = 0xB0C4DE , LIGHT_YELLOW = 0xFFFFE0 ,
  LIME = 0x00FF00 , LIME_GREEN = 0x32CD32 , LINEN = 0xFAF0E6 , MAGENTA = 0xFF00FF ,
  MAROON = 0x800000 , MEDIUM_AQUAMARINE = 0x66CDAA , MEDIUM_BLUE = 0x0000CD , MEDIUM_ORCHID = 0xBA55D3 ,
  MEDIUM_PURPLE = 0x9370DB , MEDIUM_SEA_GREEN = 0x3CB371 , MEDIUM_SLATE_BLUE = 0x7B68EE , MEDIUM_SPRING_GREEN = 0x00FA9A ,
  MEDIUM_TURQUOISE = 0x48D1CC , MEDIUM_VIOLET_RED = 0xC71585 , MIDNIGHT_BLUE = 0x191970 , MINT_CREAM = 0xF5FFFA ,
  MISTY_ROSE = 0xFFE4E1 , MOCCASIN = 0xFFE4B5 , NAVAJO_WHITE = 0xFFDEAD , NAVY = 0x000080 ,
  OLD_LACE = 0xFDF5E6 , OLIVE = 0x808000 , OLIVE_DRAB = 0x6B8E23 , ORANGE = 0xFFA500 ,
  ORANGE_RED = 0xFF4500 , ORCHID = 0xDA70D6 , PALE_GOLDENROD = 0xEEE8AA , PALE_GREEN = 0x98FB98 ,
  PALE_TURQUOISE = 0xAFEEEE , PALE_VIOLET_RED = 0xDB7093 , PAPAYA_WHIP = 0xFFEFD5 , PEACH_PUFF = 0xFFDAB9 ,
  PERU = 0xCD853F , PINK = 0xFFC0CB , PLUM = 0xDDA0DD , POWDER_BLUE = 0xB0E0E6 ,
  PURPLE = 0x800080 , REBECCA_PURPLE = 0x663399 , RED = 0xFF0000 , ROSY_BROWN = 0xBC8F8F ,
  ROYAL_BLUE = 0x4169E1 , SADDLE_BROWN = 0x8B4513 , SALMON = 0xFA8072 , SANDY_BROWN = 0xF4A460 ,
  SEA_GREEN = 0x2E8B57 , SEASHELL = 0xFFF5EE , SIENNA = 0xA0522D , SILVER = 0xC0C0C0 ,
  SKY_BLUE = 0x87CEEB , SLATE_BLUE = 0x6A5ACD , SLATE_GRAY = 0x708090 , SNOW = 0xFFFAFA ,
  SPRING_GREEN = 0x00FF7F , STEEL_BLUE = 0x4682B4 , TAN = 0xD2B48C , TEAL = 0x008080 ,
  THISTLE = 0xD8BFD8 , TOMATO = 0xFF6347 , TURQUOISE = 0x40E0D0 , VIOLET = 0xEE82EE ,
  WHEAT = 0xF5DEB3 , WHITE = 0xFFFFFF , WHITE_SMOKE = 0xF5F5F5 , YELLOW = 0xFFFF00 ,
  YELLOW_GREEN = 0x9ACD32
}
 A enum class that includes common colors.
 
enum class  Keycode {
  UNKNOWN = 0 , Usage page 0x07 , A = SDL_SCANCODE_A , B = SDL_SCANCODE_B ,
  C = SDL_SCANCODE_C , D = SDL_SCANCODE_D , E = SDL_SCANCODE_E , F = SDL_SCANCODE_F ,
  G = SDL_SCANCODE_G , H = SDL_SCANCODE_H , I = SDL_SCANCODE_I , J = SDL_SCANCODE_J ,
  K = SDL_SCANCODE_K , L = SDL_SCANCODE_L , M = SDL_SCANCODE_M , N = SDL_SCANCODE_N ,
  O = SDL_SCANCODE_O , P = SDL_SCANCODE_P , Q = SDL_SCANCODE_Q , R = SDL_SCANCODE_R ,
  S = SDL_SCANCODE_S , T = SDL_SCANCODE_T , U = SDL_SCANCODE_U , V = SDL_SCANCODE_V ,
  W = SDL_SCANCODE_W , X = SDL_SCANCODE_X , Y = SDL_SCANCODE_Y , Z = SDL_SCANCODE_Z ,
  NUM_1 = SDL_SCANCODE_1 , NUM_2 = SDL_SCANCODE_2 , NUM_3 = SDL_SCANCODE_3 , NUM_4 = SDL_SCANCODE_4 ,
  NUM_5 = SDL_SCANCODE_5 , NUM_6 = SDL_SCANCODE_6 , NUM_7 = SDL_SCANCODE_7 , NUM_8 = SDL_SCANCODE_8 ,
  NUM_9 = SDL_SCANCODE_9 , NUM_0 = SDL_SCANCODE_0 , RETURN = SDL_SCANCODE_RETURN , ESCAPE = SDL_SCANCODE_ESCAPE ,
  BACKSPACE = SDL_SCANCODE_BACKSPACE , TAB = SDL_SCANCODE_TAB , SPACE = SDL_SCANCODE_SPACE , MINUS = SDL_SCANCODE_MINUS ,
  EQUALS = SDL_SCANCODE_EQUALS , LEFTBRACKET = SDL_SCANCODE_LEFTBRACKET , RIGHTBRACKET = SDL_SCANCODE_RIGHTBRACKET , BACKSLASH = SDL_SCANCODE_BACKSLASH ,
  NONUSHASH = SDL_SCANCODE_NONUSHASH , SEMICOLON = SDL_SCANCODE_SEMICOLON , APOSTROPHE = SDL_SCANCODE_APOSTROPHE , GRAVE = SDL_SCANCODE_GRAVE ,
  COMMA = SDL_SCANCODE_COMMA , PERIOD = SDL_SCANCODE_PERIOD , SLASH = SDL_SCANCODE_SLASH , CAPSLOCK = SDL_SCANCODE_CAPSLOCK ,
  F1 = SDL_SCANCODE_F1 , F2 = SDL_SCANCODE_F2 , F3 = SDL_SCANCODE_F3 , F4 = SDL_SCANCODE_F4 ,
  F5 = SDL_SCANCODE_F5 , F6 = SDL_SCANCODE_F6 , F7 = SDL_SCANCODE_F7 , F8 = SDL_SCANCODE_F8 ,
  F9 = SDL_SCANCODE_F9 , F10 = SDL_SCANCODE_F10 , F11 = SDL_SCANCODE_F11 , F12 = SDL_SCANCODE_F12 ,
  PRINTSCREEN = SDL_SCANCODE_PRINTSCREEN , SCROLLLOCK = SDL_SCANCODE_SCROLLLOCK , PAUSE = SDL_SCANCODE_PAUSE , INSERT = SDL_SCANCODE_INSERT ,
  HOME = SDL_SCANCODE_HOME , PAGEUP = SDL_SCANCODE_PAGEUP , DELETE = SDL_SCANCODE_DELETE , END = SDL_SCANCODE_END ,
  PAGEDOWN = SDL_SCANCODE_PAGEDOWN , RIGHT = SDL_SCANCODE_RIGHT , LEFT = SDL_SCANCODE_LEFT , DOWN = SDL_SCANCODE_DOWN ,
  UP = SDL_SCANCODE_UP , NUMLOCKCLEAR = SDL_SCANCODE_NUMLOCKCLEAR , KP_DIVIDE = SDL_SCANCODE_KP_DIVIDE , KP_MULTIPLY = SDL_SCANCODE_KP_MULTIPLY ,
  KP_MINUS = SDL_SCANCODE_KP_MINUS , KP_PLUS = SDL_SCANCODE_KP_PLUS , KP_ENTER = SDL_SCANCODE_KP_ENTER , KP_1 = SDL_SCANCODE_KP_1 ,
  KP_2 = SDL_SCANCODE_KP_2 , KP_3 = SDL_SCANCODE_KP_3 , KP_4 = SDL_SCANCODE_KP_4 , KP_5 = SDL_SCANCODE_KP_5 ,
  KP_6 = SDL_SCANCODE_KP_6 , KP_7 = SDL_SCANCODE_KP_7 , KP_8 = SDL_SCANCODE_KP_8 , KP_9 = SDL_SCANCODE_KP_9 ,
  KP_0 = SDL_SCANCODE_KP_0 , KP_PERIOD = SDL_SCANCODE_KP_PERIOD , NONUSBACKSLASH = SDL_SCANCODE_NONUSBACKSLASH , APPLICATION = SDL_SCANCODE_APPLICATION ,
  POWER = SDL_SCANCODE_POWER , KP_EQUALS = SDL_SCANCODE_KP_EQUALS , F13 = SDL_SCANCODE_F13 , F14 = SDL_SCANCODE_F14 ,
  F15 = SDL_SCANCODE_F15 , F16 = SDL_SCANCODE_F16 , F17 = SDL_SCANCODE_F17 , F18 = SDL_SCANCODE_F18 ,
  F19 = SDL_SCANCODE_F19 , F20 = SDL_SCANCODE_F20 , F21 = SDL_SCANCODE_F21 , F22 = SDL_SCANCODE_F22 ,
  F23 = SDL_SCANCODE_F23 , F24 = SDL_SCANCODE_F24 , EXECUTE = SDL_SCANCODE_EXECUTE , HELP = SDL_SCANCODE_HELP ,
  MENU = SDL_SCANCODE_MENU , SELECT = SDL_SCANCODE_SELECT , STOP = SDL_SCANCODE_STOP , AGAIN = SDL_SCANCODE_AGAIN ,
  UNDO = SDL_SCANCODE_UNDO , CUT = SDL_SCANCODE_CUT , COPY = SDL_SCANCODE_COPY , PASTE = SDL_SCANCODE_PASTE ,
  FIND = SDL_SCANCODE_FIND , MUTE = SDL_SCANCODE_MUTE , VOLUMEUP = SDL_SCANCODE_VOLUMEUP , VOLUMEDOWN = SDL_SCANCODE_VOLUMEDOWN ,
  KP_COMMA = SDL_SCANCODE_KP_COMMA , KP_EQUALSAS400 = SDL_SCANCODE_KP_EQUALSAS400 , INTERNATIONAL1 = SDL_SCANCODE_INTERNATIONAL1 , INTERNATIONAL2 = SDL_SCANCODE_INTERNATIONAL2 ,
  INTERNATIONAL3 = SDL_SCANCODE_INTERNATIONAL3 , INTERNATIONAL4 = SDL_SCANCODE_INTERNATIONAL4 , INTERNATIONAL5 = SDL_SCANCODE_INTERNATIONAL5 , INTERNATIONAL6 = SDL_SCANCODE_INTERNATIONAL6 ,
  INTERNATIONAL7 = SDL_SCANCODE_INTERNATIONAL7 , INTERNATIONAL8 = SDL_SCANCODE_INTERNATIONAL8 , INTERNATIONAL9 = SDL_SCANCODE_INTERNATIONAL9 , LANG1 = SDL_SCANCODE_LANG1 ,
  LANG2 = SDL_SCANCODE_LANG2 , LANG3 = SDL_SCANCODE_LANG3 , LANG4 = SDL_SCANCODE_LANG4 , LANG5 = SDL_SCANCODE_LANG5 ,
  LANG6 = SDL_SCANCODE_LANG6 , LANG7 = SDL_SCANCODE_LANG7 , LANG8 = SDL_SCANCODE_LANG8 , LANG9 = SDL_SCANCODE_LANG9 ,
  ALTERASE = SDL_SCANCODE_ALTERASE , SYSREQ = SDL_SCANCODE_SYSREQ , CANCEL = SDL_SCANCODE_CANCEL , CLEAR = SDL_SCANCODE_CLEAR ,
  PRIOR = SDL_SCANCODE_PRIOR , RETURN2 = SDL_SCANCODE_RETURN2 , SEPARATOR = SDL_SCANCODE_SEPARATOR , OUT = SDL_SCANCODE_OUT ,
  OPER = SDL_SCANCODE_OPER , CLEARAGAIN = SDL_SCANCODE_CLEARAGAIN , CRSEL = SDL_SCANCODE_CRSEL , EXSEL = SDL_SCANCODE_EXSEL ,
  KP_00 = SDL_SCANCODE_KP_00 , KP_000 = SDL_SCANCODE_KP_000 , THOUSANDSSEPARATOR = SDL_SCANCODE_THOUSANDSSEPARATOR , DECIMALSEPARATOR = SDL_SCANCODE_DECIMALSEPARATOR ,
  CURRENCYUNIT = SDL_SCANCODE_CURRENCYUNIT , CURRENCYSUBUNIT = SDL_SCANCODE_CURRENCYSUBUNIT , KP_LEFTPAREN = SDL_SCANCODE_KP_LEFTPAREN , KP_RIGHTPAREN = SDL_SCANCODE_KP_RIGHTPAREN ,
  KP_LEFTBRACE = SDL_SCANCODE_KP_LEFTBRACE , KP_RIGHTBRACE = SDL_SCANCODE_KP_RIGHTBRACE , KP_TAB = SDL_SCANCODE_KP_TAB , KP_BACKSPACE = SDL_SCANCODE_KP_BACKSPACE ,
  KP_A = SDL_SCANCODE_KP_A , KP_B = SDL_SCANCODE_KP_B , KP_C = SDL_SCANCODE_KP_C , KP_D = SDL_SCANCODE_KP_D ,
  KP_E = SDL_SCANCODE_KP_E , KP_F = SDL_SCANCODE_KP_F , KP_XOR = SDL_SCANCODE_KP_XOR , KP_POWER = SDL_SCANCODE_KP_POWER ,
  KP_PERCENT = SDL_SCANCODE_KP_PERCENT , KP_LESS = SDL_SCANCODE_KP_LESS , KP_GREATER = SDL_SCANCODE_KP_GREATER , KP_AMPERSAND = SDL_SCANCODE_KP_AMPERSAND ,
  KP_DBLAMPERSAND = SDL_SCANCODE_KP_DBLAMPERSAND , KP_VERTICALBAR = SDL_SCANCODE_KP_VERTICALBAR , KP_DBLVERTICALBAR = SDL_SCANCODE_KP_DBLVERTICALBAR , KP_COLON = SDL_SCANCODE_KP_COLON ,
  KP_HASH = SDL_SCANCODE_KP_HASH , KP_SPACE = SDL_SCANCODE_KP_SPACE , KP_AT = SDL_SCANCODE_KP_AT , KP_EXCLAM = SDL_SCANCODE_KP_EXCLAM ,
  KP_MEMSTORE = SDL_SCANCODE_KP_MEMSTORE , KP_MEMRECALL = SDL_SCANCODE_KP_MEMRECALL , KP_MEMCLEAR = SDL_SCANCODE_KP_MEMCLEAR , KP_MEMADD = SDL_SCANCODE_KP_MEMADD ,
  KP_MEMSUBTRACT = SDL_SCANCODE_KP_MEMSUBTRACT , KP_MEMMULTIPLY = SDL_SCANCODE_KP_MEMMULTIPLY , KP_MEMDIVIDE = SDL_SCANCODE_KP_MEMDIVIDE , KP_PLUSMINUS = SDL_SCANCODE_KP_PLUSMINUS ,
  KP_CLEAR = SDL_SCANCODE_KP_CLEAR , KP_CLEARENTRY = SDL_SCANCODE_KP_CLEARENTRY , KP_BINARY = SDL_SCANCODE_KP_BINARY , KP_OCTAL = SDL_SCANCODE_KP_OCTAL ,
  KP_DECIMAL = SDL_SCANCODE_KP_DECIMAL , KP_HEXADECIMAL = SDL_SCANCODE_KP_HEXADECIMAL , LCTRL = SDL_SCANCODE_LCTRL , LSHIFT = SDL_SCANCODE_LSHIFT ,
  LALT = SDL_SCANCODE_LALT , LGUI = SDL_SCANCODE_LGUI , RCTRL = SDL_SCANCODE_RCTRL , RSHIFT = SDL_SCANCODE_RSHIFT ,
  RALT = SDL_SCANCODE_RALT , RGUI = SDL_SCANCODE_RGUI , MODE = SDL_SCANCODE_MODE , Usage page 0x0C ,
  AUDIONEXT = SDL_SCANCODE_AUDIONEXT , AUDIOPREV = SDL_SCANCODE_AUDIOPREV , AUDIOSTOP = SDL_SCANCODE_AUDIOSTOP , AUDIOPLAY = SDL_SCANCODE_AUDIOPLAY ,
  AUDIOMUTE = SDL_SCANCODE_AUDIOMUTE , MEDIASELECT = SDL_SCANCODE_MEDIASELECT , WWW = SDL_SCANCODE_WWW , MAIL = SDL_SCANCODE_MAIL ,
  CALCULATOR = SDL_SCANCODE_CALCULATOR , COMPUTER = SDL_SCANCODE_COMPUTER , AC_SEARCH = SDL_SCANCODE_AC_SEARCH , AC_HOME = SDL_SCANCODE_AC_HOME ,
  AC_BACK = SDL_SCANCODE_AC_BACK , AC_FORWARD = SDL_SCANCODE_AC_FORWARD , AC_STOP = SDL_SCANCODE_AC_STOP , AC_REFRESH = SDL_SCANCODE_AC_REFRESH ,
  AC_BOOKMARKS = SDL_SCANCODE_AC_BOOKMARKS , Walther keys , BRIGHTNESSDOWN = SDL_SCANCODE_BRIGHTNESSDOWN , BRIGHTNESSUP = SDL_SCANCODE_BRIGHTNESSUP ,
  DISPLAYSWITCH = SDL_SCANCODE_DISPLAYSWITCH , KBDILLUMTOGGLE = SDL_SCANCODE_KBDILLUMTOGGLE , KBDILLUMDOWN = SDL_SCANCODE_KBDILLUMDOWN , KBDILLUMUP = SDL_SCANCODE_KBDILLUMUP ,
  EJECT = SDL_SCANCODE_EJECT , SLEEP = SDL_SCANCODE_SLEEP , APP1 = SDL_SCANCODE_APP1 , APP2 = SDL_SCANCODE_APP2 ,
  Usage page 0x0C(additional media keys) , AUDIOREWIND = SDL_SCANCODE_AUDIOREWIND , AUDIOFASTFORWARD = SDL_SCANCODE_AUDIOFASTFORWARD , Mobile keys ,
  SOFTLEFT , SOFTRIGHT , CALL = SDL_SCANCODE_CALL , ENDCALL = SDL_SCANCODE_ENDCALL ,
  NUM_SCANCODES = SDL_NUM_SCANCODES , MOUSE_LB = 513 , MOUSE_MB = 514 , MOUSE_RB = 515
}
 

Functions

std::string LoadTextFile (const std::string &filepath)
 Generic helper function that loads a text file into a std::string.
 
SDL_Surface * GetMissingFontTextureSDLSurface ()
 
SDL_Surface * GetMissingImageTextureSDLSurface ()
 
Core::Matrices ConvertToUniformBufferData (const Util::Transform &transform, const glm::vec2 &size, float zIndex)
 Converts a Transform object into uniform buffer data. More...
 

Detailed Description

Useful tools for development.

Enumeration Type Documentation

◆ Keycode

enum class Util::Keycode
strong
Enumerator
BACKSLASH 

Located at the lower left of the return key on ISO keyboards and at the right end of the QWERTY row on ANSI keyboards. Produces REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US layout, REVERSE SOLIDUS and VERTICAL LINE in a UK Mac layout, NUMBER SIGN and TILDE in a UK Windows layout, DOLLAR SIGN and POUND SIGN in a Swiss German layout, NUMBER SIGN and APOSTROPHE in a German layout, GRAVE ACCENT and POUND SIGN in a French Mac layout, and ASTERISK and MICRO SIGN in a French Windows layout.

NONUSHASH 

ISO USB keyboards actually use this code instead of 49 for the same key, but all OSes I've seen treat the two codes identically. So, as an implementor, unless your keyboard generates both of those codes and your OS treats them differently, you should generate BACKSLASH instead of this code. As a user, you should not rely on this code because SDL will never generate it with most (all?) keyboards.

GRAVE 

Located in the top left corner (on both ANSI and ISO keyboards). Produces GRAVE ACCENT and TILDE in a US Windows layout and in US and UK Mac layouts on ANSI keyboards, GRAVE ACCENT and NOT SIGN in a UK Windows layout, SECTION SIGN and PLUS-MINUS SIGN in US and UK Mac layouts on ISO keyboards, SECTION SIGN and DEGREE SIGN in a Swiss German layout (Mac: only on ISO keyboards), CIRCUMFLEX ACCENT and DEGREE SIGN in a German layout (Mac: only on ISO keyboards), SUPERSCRIPT TWO and TILDE in a French Windows layout, COMMERCIAL AT and NUMBER SIGN in a French Mac layout on ISO keyboards, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French Mac layout on ANSI keyboards.

INSERT 

insert on PC, help on some Mac keyboards (but does send code 73, not 117)

NUMLOCKCLEAR 

num lock on PC, clear on Mac keyboards

NONUSBACKSLASH 

This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y. Produces GRAVE ACCENT and TILDE in a US or UK Mac layout, REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US or UK Windows layout, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French layout.

APPLICATION 

windows contextual menu, compose

POWER 

The USB document says this is a status flag, not a physical key - but some Mac keyboards do have a power key.

HELP 

AL Integrated Help Center

MENU 

Menu (show menu)

STOP 

AC Stop

AGAIN 

AC Redo/Repeat

UNDO 

AC Undo

CUT 

AC Cut

COPY 

AC Copy

PASTE 

AC Paste

FIND 

AC Find

INTERNATIONAL1 

used on Asian keyboards, see footnotes in USB doc

INTERNATIONAL3 

Yen

LANG1 

Hangul/English toggle

LANG2 

Hanja conversion

LANG3 

Katakana

LANG4 

Hiragana

LANG5 

Zenkaku/Hankaku

LANG6 

reserved

LANG7 

reserved

LANG8 

reserved

LANG9 

reserved

ALTERASE 

Erase-Eaze

CANCEL 

AC Cancel

LALT 

alt, option

LGUI 

windows, command (apple), meta

RALT 

alt gr, option

RGUI 

windows, command (apple), meta

MODE 

I'm not sure if this is really not covered by any of the above, but since there's a special KMOD_MODE for it I'm adding it here

WWW 

AL Internet Browser

CALCULATOR 

AL Calculator

AC_SEARCH 

AC Search

AC_HOME 

AC Home

AC_BACK 

AC Back

AC_FORWARD 

AC Forward

AC_STOP 

AC Stop

AC_REFRESH 

AC Refresh

AC_BOOKMARKS 

AC Bookmarks

DISPLAYSWITCH 

display mirroring/dual display switch, video mode switch

SLEEP 

SC System Sleep

SOFTLEFT 

Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom left of the display.

SOFTRIGHT 

Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom right of the display.

CALL 

Used for accepting phone calls.

ENDCALL 

Used for rejecting phone calls.

NUM_SCANCODES 

not a key, just marks the number of scancodes for array bounds

Function Documentation

◆ ConvertToUniformBufferData()

Core::Matrices Util::ConvertToUniformBufferData ( const Util::Transform transform,
const glm::vec2 &  size,
float  zIndex 
)

Converts a Transform object into uniform buffer data.

Converts transform data in Core::UniformBuffer format. Call it and pass the returned value to Core::UniformBuffer->setData().

Parameters
transformThe Transform object to be converted.
sizeThe size of the object.
zIndexThe z-index of the transformation.
Returns
A Matrices object representing the uniform buffer data.