CoriEngine
Loading...
Searching...
No Matches
Cori::Core Namespace Reference

Core systems of the engine are here. More...

Namespaces

namespace  Internal
namespace  Threading

Classes

class  Application
 Main Application object, there can only be one Application object. Basically a root of the program. More...
class  CoriError
 Custom error class mainly used in std::expected. More...
class  Event
 An abstract class that is ment to be used as a template for defining events. More...
class  EventDispatcher
 Used in OnEvent methods to dispatch and handle Events. More...
class  Factory
class  GameTimer
 A GameTimer is responsible for managing everything that is connected with time, ticks, elapsed time since start, deltaTime. There can only be one GameTimer. More...
class  Input
 A simple static class that allows to query for physical keyboard or mose inputs. More...
class  KeyEvent
class  KeyPressedEvent
class  KeyReleasedEvent
class  Layer
 An abstract class that is ment to be used as a template for defining layers. More...
class  LayerStack
 Internal class that stores and manages all the Layer objects. More...
class  ManualTimer
 You can use this to manually time something. More...
class  MouseButtonEvent
class  MouseButtonPressedEvent
class  MouseButtonReleasedEvent
class  MouseMovedEvent
class  MouseScrolledEvent
class  PackedArray
 This is my packed/dense array custom implementation. More...
class  PossibleErrors
 This class utilizes std::variant to hold one of the possible exception types. More...
class  RegisterInFactory
struct  ScreenMode
class  UUID
 A 128bit UUID, can be serialized to the string and deserialized from it. More...
class  Window
 This class manages everything that is connected with physical Window management, i might add multiwindow support later, but for now, only one Window per application. More...
class  WindowCloseEvent
class  WindowResizeEvent

Concepts

concept  AllAreExceptions
 All types from Types pack are std::exception or derived from it.

Typedefs

typedef enum Cori::Core::CoriKeycode CoriKeycode
 This is a adaptation of SDL3 scancodes. Taken from 'SDL_scancode.h'.
typedef enum Cori::Core::CoriMouseCode CoriMouseKeycode
 An enum of all available mouse buttons.
using EventCallbackFn = std::function<void(Event&)>

Enumerations

enum  CoriKeycode {
  CORI_KEY_UNKNOWN = 0 , CORI_KEY_A = 4 , CORI_KEY_B = 5 , CORI_KEY_C = 6 ,
  CORI_KEY_D = 7 , CORI_KEY_E = 8 , CORI_KEY_F = 9 , CORI_KEY_G = 10 ,
  CORI_KEY_H = 11 , CORI_KEY_I = 12 , CORI_KEY_J = 13 , CORI_KEY_K = 14 ,
  CORI_KEY_L = 15 , CORI_KEY_M = 16 , CORI_KEY_N = 17 , CORI_KEY_O = 18 ,
  CORI_KEY_P = 19 , CORI_KEY_Q = 20 , CORI_KEY_R = 21 , CORI_KEY_S = 22 ,
  CORI_KEY_T = 23 , CORI_KEY_U = 24 , CORI_KEY_V = 25 , CORI_KEY_W = 26 ,
  CORI_KEY_X = 27 , CORI_KEY_Y = 28 , CORI_KEY_Z = 29 , CORI_KEY_1 = 30 ,
  CORI_KEY_2 = 31 , CORI_KEY_3 = 32 , CORI_KEY_4 = 33 , CORI_KEY_5 = 34 ,
  CORI_KEY_6 = 35 , CORI_KEY_7 = 36 , CORI_KEY_8 = 37 , CORI_KEY_9 = 38 ,
  CORI_KEY_0 = 39 , CORI_KEY_RETURN = 40 , CORI_KEY_ESCAPE = 41 , CORI_KEY_BACKSPACE = 42 ,
  CORI_KEY_TAB = 43 , CORI_KEY_SPACE = 44 , CORI_KEY_MINUS = 45 , CORI_KEY_EQUALS = 46 ,
  CORI_KEY_LEFTBRACKET = 47 , CORI_KEY_RIGHTBRACKET = 48 , CORI_KEY_BACKSLASH = 49 , CORI_KEY_NONUSHASH = 50 ,
  CORI_KEY_SEMICOLON = 51 , CORI_KEY_APOSTROPHE = 52 , CORI_KEY_GRAVE = 53 , CORI_KEY_COMMA = 54 ,
  CORI_KEY_PERIOD = 55 , CORI_KEY_SLASH = 56 , CORI_KEY_CAPSLOCK = 57 , CORI_KEY_F1 = 58 ,
  CORI_KEY_F2 = 59 , CORI_KEY_F3 = 60 , CORI_KEY_F4 = 61 , CORI_KEY_F5 = 62 ,
  CORI_KEY_F6 = 63 , CORI_KEY_F7 = 64 , CORI_KEY_F8 = 65 , CORI_KEY_F9 = 66 ,
  CORI_KEY_F10 = 67 , CORI_KEY_F11 = 68 , CORI_KEY_F12 = 69 , CORI_KEY_PRINTSCREEN = 70 ,
  CORI_KEY_SCROLLLOCK = 71 , CORI_KEY_PAUSE = 72 , CORI_KEY_INSERT = 73 , CORI_KEY_HOME = 74 ,
  CORI_KEY_PAGEUP = 75 , CORI_KEY_DELETE = 76 , CORI_KEY_END = 77 , CORI_KEY_PAGEDOWN = 78 ,
  CORI_KEY_RIGHT = 79 , CORI_KEY_LEFT = 80 , CORI_KEY_DOWN = 81 , CORI_KEY_UP = 82 ,
  CORI_KEY_NUMLOCKCLEAR = 83 , CORI_KEY_KP_DIVIDE = 84 , CORI_KEY_KP_MULTIPLY = 85 , CORI_KEY_KP_MINUS = 86 ,
  CORI_KEY_KP_PLUS = 87 , CORI_KEY_KP_ENTER = 88 , CORI_KEY_KP_1 = 89 , CORI_KEY_KP_2 = 90 ,
  CORI_KEY_KP_3 = 91 , CORI_KEY_KP_4 = 92 , CORI_KEY_KP_5 = 93 , CORI_KEY_KP_6 = 94 ,
  CORI_KEY_KP_7 = 95 , CORI_KEY_KP_8 = 96 , CORI_KEY_KP_9 = 97 , CORI_KEY_KP_0 = 98 ,
  CORI_KEY_KP_PERIOD = 99 , CORI_KEY_NONUSBACKSLASH = 100 , CORI_KEY_APPLICATION = 101 , CORI_KEY_POWER = 102 ,
  CORI_KEY_KP_EQUALS = 103 , CORI_KEY_F13 = 104 , CORI_KEY_F14 = 105 , CORI_KEY_F15 = 106 ,
  CORI_KEY_F16 = 107 , CORI_KEY_F17 = 108 , CORI_KEY_F18 = 109 , CORI_KEY_F19 = 110 ,
  CORI_KEY_F20 = 111 , CORI_KEY_F21 = 112 , CORI_KEY_F22 = 113 , CORI_KEY_F23 = 114 ,
  CORI_KEY_F24 = 115 , CORI_KEY_EXECUTE = 116 , CORI_KEY_HELP = 117 , CORI_KEY_MENU = 118 ,
  CORI_KEY_SELECT = 119 , CORI_KEY_STOP = 120 , CORI_KEY_AGAIN = 121 , CORI_KEY_UNDO = 122 ,
  CORI_KEY_CUT = 123 , CORI_KEY_COPY = 124 , CORI_KEY_PASTE = 125 , CORI_KEY_FIND = 126 ,
  CORI_KEY_MUTE = 127 , CORI_KEY_VOLUMEUP = 128 , CORI_KEY_VOLUMEDOWN = 129 , CORI_KEY_KP_COMMA = 133 ,
  CORI_KEY_KP_EQUALSAS400 = 134 , CORI_KEY_INTERNATIONAL1 = 135 , CORI_KEY_INTERNATIONAL2 = 136 , CORI_KEY_INTERNATIONAL3 = 137 ,
  CORI_KEY_INTERNATIONAL4 = 138 , CORI_KEY_INTERNATIONAL5 = 139 , CORI_KEY_INTERNATIONAL6 = 140 , CORI_KEY_INTERNATIONAL7 = 141 ,
  CORI_KEY_INTERNATIONAL8 = 142 , CORI_KEY_INTERNATIONAL9 = 143 , CORI_KEY_LANG1 = 144 , CORI_KEY_LANG2 = 145 ,
  CORI_KEY_LANG3 = 146 , CORI_KEY_LANG4 = 147 , CORI_KEY_LANG5 = 148 , CORI_KEY_LANG6 = 149 ,
  CORI_KEY_LANG7 = 150 , CORI_KEY_LANG8 = 151 , CORI_KEY_LANG9 = 152 , CORI_KEY_ALTERASE = 153 ,
  CORI_KEY_SYSREQ = 154 , CORI_KEY_CANCEL = 155 , CORI_KEY_CLEAR = 156 , CORI_KEY_PRIOR = 157 ,
  CORI_KEY_RETURN2 = 158 , CORI_KEY_SEPARATOR = 159 , CORI_KEY_OUT = 160 , CORI_KEY_OPER = 161 ,
  CORI_KEY_CLEARAGAIN = 162 , CORI_KEY_CRSEL = 163 , CORI_KEY_EXSEL = 164 , CORI_KEY_KP_00 = 176 ,
  CORI_KEY_KP_000 = 177 , CORI_KEY_THOUSANDSSEPARATOR = 178 , CORI_KEY_DECIMALSEPARATOR = 179 , CORI_KEY_CURRENCYUNIT = 180 ,
  CORI_KEY_CURRENCYSUBUNIT = 181 , CORI_KEY_KP_LEFTPAREN = 182 , CORI_KEY_KP_RIGHTPAREN = 183 , CORI_KEY_KP_LEFTBRACE = 184 ,
  CORI_KEY_KP_RIGHTBRACE = 185 , CORI_KEY_KP_TAB = 186 , CORI_KEY_KP_BACKSPACE = 187 , CORI_KEY_KP_A = 188 ,
  CORI_KEY_KP_B = 189 , CORI_KEY_KP_C = 190 , CORI_KEY_KP_D = 191 , CORI_KEY_KP_E = 192 ,
  CORI_KEY_KP_F = 193 , CORI_KEY_KP_XOR = 194 , CORI_KEY_KP_POWER = 195 , CORI_KEY_KP_PERCENT = 196 ,
  CORI_KEY_KP_LESS = 197 , CORI_KEY_KP_GREATER = 198 , CORI_KEY_KP_AMPERSAND = 199 , CORI_KEY_KP_DBLAMPERSAND = 200 ,
  CORI_KEY_KP_VERTICALBAR = 201 , CORI_KEY_KP_DBLVERTICALBAR = 202 , CORI_KEY_KP_COLON = 203 , CORI_KEY_KP_HASH = 204 ,
  CORI_KEY_KP_SPACE = 205 , CORI_KEY_KP_AT = 206 , CORI_KEY_KP_EXCLAM = 207 , CORI_KEY_KP_MEMSTORE = 208 ,
  CORI_KEY_KP_MEMRECALL = 209 , CORI_KEY_KP_MEMCLEAR = 210 , CORI_KEY_KP_MEMADD = 211 , CORI_KEY_KP_MEMSUBTRACT = 212 ,
  CORI_KEY_KP_MEMMULTIPLY = 213 , CORI_KEY_KP_MEMDIVIDE = 214 , CORI_KEY_KP_PLUSMINUS = 215 , CORI_KEY_KP_CLEAR = 216 ,
  CORI_KEY_KP_CLEARENTRY = 217 , CORI_KEY_KP_BINARY = 218 , CORI_KEY_KP_OCTAL = 219 , CORI_KEY_KP_DECIMAL = 220 ,
  CORI_KEY_KP_HEXADECIMAL = 221 , CORI_KEY_LCTRL = 224 , CORI_KEY_LSHIFT = 225 , CORI_KEY_LALT = 226 ,
  CORI_KEY_LGUI = 227 , CORI_KEY_RCTRL = 228 , CORI_KEY_RSHIFT = 229 , CORI_KEY_RALT = 230 ,
  CORI_KEY_RGUI = 231 , CORI_KEY_MODE = 257 , CORI_KEY_SLEEP = 258 , CORI_KEY_WAKE = 259 ,
  CORI_KEY_CHANNEL_INCREMENT = 260 , CORI_KEY_CHANNEL_DECREMENT = 261 , CORI_KEY_MEDIA_PLAY = 262 , CORI_KEY_MEDIA_PAUSE = 263 ,
  CORI_KEY_MEDIA_RECORD = 264 , CORI_KEY_MEDIA_FAST_FORWARD = 265 , CORI_KEY_MEDIA_REWIND = 266 , CORI_KEY_MEDIA_NEXT_TRACK = 267 ,
  CORI_KEY_MEDIA_PREVIOUS_TRACK = 268 , CORI_KEY_MEDIA_STOP = 269 , CORI_KEY_MEDIA_EJECT = 270 , CORI_KEY_MEDIA_PLAY_PAUSE = 271 ,
  CORI_KEY_MEDIA_SELECT = 272 , CORI_KEY_AC_NEW = 273 , CORI_KEY_AC_OPEN = 274 , CORI_KEY_AC_CLOSE = 275 ,
  CORI_KEY_AC_EXIT = 276 , CORI_KEY_AC_SAVE = 277 , CORI_KEY_AC_PRINT = 278 , CORI_KEY_AC_PROPERTIES = 279 ,
  CORI_KEY_AC_SEARCH = 280 , CORI_KEY_AC_HOME = 281 , CORI_KEY_AC_BACK = 282 , CORI_KEY_AC_FORWARD = 283 ,
  CORI_KEY_AC_STOP = 284 , CORI_KEY_AC_REFRESH = 285 , CORI_KEY_AC_BOOKMARKS = 286 , CORI_KEY_SOFTLEFT = 287 ,
  CORI_KEY_SOFTRIGHT = 288 , CORI_KEY_CALL = 289 , CORI_KEY_ENDCALL = 290 , CORI_KEY_RESERVED = 400 ,
  CORI_KEY_COUNT = 512
}
 This is a adaptation of SDL3 scancodes. Taken from 'SDL_scancode.h'. More...
enum  CoriMouseCode {
  CORI_MOUSEBUTTON_UNKNOWN = 0 , CORI_MOUSEBUTTON_LEFT = 1 , CORI_MOUSEBUTTON_MIDDLE = 2 , CORI_MOUSEBUTTON_RIGHT = 3 ,
  CORI_MOUSEBUTTON_X1 = 4 , CORI_MOUSEBUTTON_X2 = 5
}
 An enum of all available mouse buttons. More...
enum  EventCategory {
  None = 0 , EventCategoryApplication = 1 << 0 , EventCategoryGameplay = 1 << 1 , EventCategoryInput = 1 << 2 ,
  EventCategoryKeyboard = 1 << 3 , EventCategoryMouse = 1 << 4 , EventCategoryMouseButton = 1 << 5
}
enum class  WindowMode { WINDOWED = 0 , BORDERLESS_WINDOWED = 1 , EXCLUSIVE_FULLSCREEN = 2 }

Functions

ApplicationCreateApplication ()
static std::string CoriGetKeyName (const CoriKeycode code)
static std::string CoriGetKeyName (const CoriMouseKeycode code)
std::ostream & operator<< (std::ostream &os, const Event &e)
 Needed for CoriError.
std::string format_as (const Event &e)
 Needed for fmt/spadlog.

Detailed Description

Core systems of the engine are here.

Typedef Documentation

◆ CoriKeycode

This is a adaptation of SDL3 scancodes. Taken from 'SDL_scancode.h'.

◆ CoriMouseKeycode

An enum of all available mouse buttons.

◆ EventCallbackFn

using Cori::Core::EventCallbackFn = std::function<void(Event&)>

Definition at line 112 of file Event.hpp.

Enumeration Type Documentation

◆ CoriKeycode

This is a adaptation of SDL3 scancodes. Taken from 'SDL_scancode.h'.

Enumerator
CORI_KEY_UNKNOWN 
CORI_KEY_A 
CORI_KEY_B 
CORI_KEY_C 
CORI_KEY_D 
CORI_KEY_E 
CORI_KEY_F 
CORI_KEY_G 
CORI_KEY_H 
CORI_KEY_I 
CORI_KEY_J 
CORI_KEY_K 
CORI_KEY_L 
CORI_KEY_M 
CORI_KEY_N 
CORI_KEY_O 
CORI_KEY_P 
CORI_KEY_Q 
CORI_KEY_R 
CORI_KEY_S 
CORI_KEY_T 
CORI_KEY_U 
CORI_KEY_V 
CORI_KEY_W 
CORI_KEY_X 
CORI_KEY_Y 
CORI_KEY_Z 
CORI_KEY_1 
CORI_KEY_2 
CORI_KEY_3 
CORI_KEY_4 
CORI_KEY_5 
CORI_KEY_6 
CORI_KEY_7 
CORI_KEY_8 
CORI_KEY_9 
CORI_KEY_0 
CORI_KEY_RETURN 
CORI_KEY_ESCAPE 
CORI_KEY_BACKSPACE 
CORI_KEY_TAB 
CORI_KEY_SPACE 
CORI_KEY_MINUS 
CORI_KEY_EQUALS 
CORI_KEY_LEFTBRACKET 
CORI_KEY_RIGHTBRACKET 
CORI_KEY_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.

CORI_KEY_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 CORI_KEY_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.

CORI_KEY_SEMICOLON 
CORI_KEY_APOSTROPHE 
CORI_KEY_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.

CORI_KEY_COMMA 
CORI_KEY_PERIOD 
CORI_KEY_SLASH 
CORI_KEY_CAPSLOCK 
CORI_KEY_F1 
CORI_KEY_F2 
CORI_KEY_F3 
CORI_KEY_F4 
CORI_KEY_F5 
CORI_KEY_F6 
CORI_KEY_F7 
CORI_KEY_F8 
CORI_KEY_F9 
CORI_KEY_F10 
CORI_KEY_F11 
CORI_KEY_F12 
CORI_KEY_PRINTSCREEN 
CORI_KEY_SCROLLLOCK 
CORI_KEY_PAUSE 
CORI_KEY_INSERT 

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

CORI_KEY_HOME 
CORI_KEY_PAGEUP 
CORI_KEY_DELETE 
CORI_KEY_END 
CORI_KEY_PAGEDOWN 
CORI_KEY_RIGHT 
CORI_KEY_LEFT 
CORI_KEY_DOWN 
CORI_KEY_UP 
CORI_KEY_NUMLOCKCLEAR 

num lock on PC, clear on Mac keyboards

CORI_KEY_KP_DIVIDE 
CORI_KEY_KP_MULTIPLY 
CORI_KEY_KP_MINUS 
CORI_KEY_KP_PLUS 
CORI_KEY_KP_ENTER 
CORI_KEY_KP_1 
CORI_KEY_KP_2 
CORI_KEY_KP_3 
CORI_KEY_KP_4 
CORI_KEY_KP_5 
CORI_KEY_KP_6 
CORI_KEY_KP_7 
CORI_KEY_KP_8 
CORI_KEY_KP_9 
CORI_KEY_KP_0 
CORI_KEY_KP_PERIOD 
CORI_KEY_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.

CORI_KEY_APPLICATION 

windows contextual menu, compose

CORI_KEY_POWER 

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

CORI_KEY_KP_EQUALS 
CORI_KEY_F13 
CORI_KEY_F14 
CORI_KEY_F15 
CORI_KEY_F16 
CORI_KEY_F17 
CORI_KEY_F18 
CORI_KEY_F19 
CORI_KEY_F20 
CORI_KEY_F21 
CORI_KEY_F22 
CORI_KEY_F23 
CORI_KEY_F24 
CORI_KEY_EXECUTE 
CORI_KEY_HELP 

AL Integrated Help Center

CORI_KEY_MENU 

Menu (show menu)

CORI_KEY_SELECT 
CORI_KEY_STOP 

AC Stop

CORI_KEY_AGAIN 

AC Redo/Repeat

CORI_KEY_UNDO 

AC Undo

CORI_KEY_CUT 

AC Cut

CORI_KEY_COPY 

AC Copy

CORI_KEY_PASTE 

AC Paste

CORI_KEY_FIND 

AC Find

CORI_KEY_MUTE 
CORI_KEY_VOLUMEUP 
CORI_KEY_VOLUMEDOWN 
CORI_KEY_KP_COMMA 
CORI_KEY_KP_EQUALSAS400 
CORI_KEY_INTERNATIONAL1 

used on Asian keyboards, see footnotes in USB doc

CORI_KEY_INTERNATIONAL2 
CORI_KEY_INTERNATIONAL3 

Yen

CORI_KEY_INTERNATIONAL4 
CORI_KEY_INTERNATIONAL5 
CORI_KEY_INTERNATIONAL6 
CORI_KEY_INTERNATIONAL7 
CORI_KEY_INTERNATIONAL8 
CORI_KEY_INTERNATIONAL9 
CORI_KEY_LANG1 

Hangul/English toggle

CORI_KEY_LANG2 

Hanja conversion

CORI_KEY_LANG3 

Katakana

CORI_KEY_LANG4 

Hiragana

CORI_KEY_LANG5 

Zenkaku/Hankaku

CORI_KEY_LANG6 

reserved

CORI_KEY_LANG7 

reserved

CORI_KEY_LANG8 

reserved

CORI_KEY_LANG9 

reserved

CORI_KEY_ALTERASE 

Erase-Eaze

CORI_KEY_SYSREQ 
CORI_KEY_CANCEL 

AC Cancel

CORI_KEY_CLEAR 
CORI_KEY_PRIOR 
CORI_KEY_RETURN2 
CORI_KEY_SEPARATOR 
CORI_KEY_OUT 
CORI_KEY_OPER 
CORI_KEY_CLEARAGAIN 
CORI_KEY_CRSEL 
CORI_KEY_EXSEL 
CORI_KEY_KP_00 
CORI_KEY_KP_000 
CORI_KEY_THOUSANDSSEPARATOR 
CORI_KEY_DECIMALSEPARATOR 
CORI_KEY_CURRENCYUNIT 
CORI_KEY_CURRENCYSUBUNIT 
CORI_KEY_KP_LEFTPAREN 
CORI_KEY_KP_RIGHTPAREN 
CORI_KEY_KP_LEFTBRACE 
CORI_KEY_KP_RIGHTBRACE 
CORI_KEY_KP_TAB 
CORI_KEY_KP_BACKSPACE 
CORI_KEY_KP_A 
CORI_KEY_KP_B 
CORI_KEY_KP_C 
CORI_KEY_KP_D 
CORI_KEY_KP_E 
CORI_KEY_KP_F 
CORI_KEY_KP_XOR 
CORI_KEY_KP_POWER 
CORI_KEY_KP_PERCENT 
CORI_KEY_KP_LESS 
CORI_KEY_KP_GREATER 
CORI_KEY_KP_AMPERSAND 
CORI_KEY_KP_DBLAMPERSAND 
CORI_KEY_KP_VERTICALBAR 
CORI_KEY_KP_DBLVERTICALBAR 
CORI_KEY_KP_COLON 
CORI_KEY_KP_HASH 
CORI_KEY_KP_SPACE 
CORI_KEY_KP_AT 
CORI_KEY_KP_EXCLAM 
CORI_KEY_KP_MEMSTORE 
CORI_KEY_KP_MEMRECALL 
CORI_KEY_KP_MEMCLEAR 
CORI_KEY_KP_MEMADD 
CORI_KEY_KP_MEMSUBTRACT 
CORI_KEY_KP_MEMMULTIPLY 
CORI_KEY_KP_MEMDIVIDE 
CORI_KEY_KP_PLUSMINUS 
CORI_KEY_KP_CLEAR 
CORI_KEY_KP_CLEARENTRY 
CORI_KEY_KP_BINARY 
CORI_KEY_KP_OCTAL 
CORI_KEY_KP_DECIMAL 
CORI_KEY_KP_HEXADECIMAL 
CORI_KEY_LCTRL 
CORI_KEY_LSHIFT 
CORI_KEY_LALT 

alt, option

CORI_KEY_LGUI 

windows, command (apple), meta

CORI_KEY_RCTRL 
CORI_KEY_RSHIFT 
CORI_KEY_RALT 

alt gr, option

CORI_KEY_RGUI 

windows, command (apple), meta

CORI_KEY_MODE 

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

CORI_KEY_SLEEP 

Sleep

CORI_KEY_WAKE 

Wake

CORI_KEY_CHANNEL_INCREMENT 

Channel Increment

CORI_KEY_CHANNEL_DECREMENT 

Channel Decrement

CORI_KEY_MEDIA_PLAY 

Play

CORI_KEY_MEDIA_PAUSE 

Pause

CORI_KEY_MEDIA_RECORD 

Record

CORI_KEY_MEDIA_FAST_FORWARD 

Fast Forward

CORI_KEY_MEDIA_REWIND 

Rewind

CORI_KEY_MEDIA_NEXT_TRACK 

Next Track

CORI_KEY_MEDIA_PREVIOUS_TRACK 

Previous Track

CORI_KEY_MEDIA_STOP 

Stop

CORI_KEY_MEDIA_EJECT 

Eject

CORI_KEY_MEDIA_PLAY_PAUSE 

Play / Pause

CORI_KEY_MEDIA_SELECT 
CORI_KEY_AC_NEW 

AC New

CORI_KEY_AC_OPEN 

AC Open

CORI_KEY_AC_CLOSE 

AC Close

CORI_KEY_AC_EXIT 

AC Exit

CORI_KEY_AC_SAVE 

AC Save

CORI_KEY_AC_PRINT 

AC Print

CORI_KEY_AC_PROPERTIES 

AC Properties

CORI_KEY_AC_SEARCH 

AC Search

CORI_KEY_AC_HOME 

AC Home

CORI_KEY_AC_BACK 

AC Back

CORI_KEY_AC_FORWARD 

AC Forward

CORI_KEY_AC_STOP 

AC Stop

CORI_KEY_AC_REFRESH 

AC Refresh

CORI_KEY_AC_BOOKMARKS 

AC Bookmarks

CORI_KEY_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.

CORI_KEY_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.

CORI_KEY_CALL 

Used for accepting phone calls.

CORI_KEY_ENDCALL 

Used for rejecting phone calls.

CORI_KEY_RESERVED 

400-500 reserved for dynamic keycodes

CORI_KEY_COUNT 

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

Definition at line 12 of file CoriKeycodes.hpp.

◆ CoriMouseCode

An enum of all available mouse buttons.

Enumerator
CORI_MOUSEBUTTON_UNKNOWN 
CORI_MOUSEBUTTON_LEFT 
CORI_MOUSEBUTTON_MIDDLE 
CORI_MOUSEBUTTON_RIGHT 
CORI_MOUSEBUTTON_X1 
CORI_MOUSEBUTTON_X2 

Definition at line 12 of file CoriMouseCodes.hpp.

◆ EventCategory

Enumerator
None 
EventCategoryApplication 
EventCategoryGameplay 
EventCategoryInput 
EventCategoryKeyboard 
EventCategoryMouse 
EventCategoryMouseButton 

Definition at line 5 of file Event.hpp.

◆ WindowMode

enum class Cori::Core::WindowMode
strong
Enumerator
WINDOWED 
BORDERLESS_WINDOWED 
EXCLUSIVE_FULLSCREEN 

Definition at line 34 of file Window.hpp.

Function Documentation

◆ CoriGetKeyName() [1/2]

std::string Cori::Core::CoriGetKeyName ( const CoriKeycode code)
static

Definition at line 391 of file CoriKeycodes.hpp.

◆ CoriGetKeyName() [2/2]

std::string Cori::Core::CoriGetKeyName ( const CoriMouseKeycode code)
static

Definition at line 21 of file CoriMouseCodes.hpp.

◆ CreateApplication()

Cori::Core::Application * Cori::Core::CreateApplication ( )

◆ format_as()

std::string Cori::Core::format_as ( const Event & e)
inline

Needed for fmt/spadlog.

Definition at line 108 of file Event.hpp.

Here is the call graph for this function:

◆ operator<<()

std::ostream & Cori::Core::operator<< ( std::ostream & os,
const Event & e )
inline

Needed for CoriError.

Definition at line 101 of file Event.hpp.

Here is the call graph for this function: