Kemena3D
Loading...
Searching...
No Matches
kdatatype.h File Reference

Core type aliases, enumerations, structs, and utility functions used throughout the engine. More...

#include "kmd5.h"
#include <string>
#include <vector>
#include <iostream>
#include <random>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <glm/glm.hpp>
#include <glm/gtx/quaternion.hpp>
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
Include dependency graph for kdatatype.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kemena::kSystemEvent
 Wraps an SDL_Event and provides helper accessors for input polling. More...
struct  kemena::kAABB
 Axis-aligned bounding box (min/max in the same space). More...
struct  kemena::kVertexInfo
 Full per-vertex data layout used internally by the asset manager. More...
struct  kemena::kBoneInfo
 Stores the per-bone offset matrix and its index in the palette. More...
struct  kemena::kKeyPosition
 A single position keyframe for skeletal animation. More...
struct  kemena::kKeyRotation
 A single rotation keyframe for skeletal animation. More...
struct  kemena::kKeyScale
 A single scale keyframe for skeletal animation. More...
struct  kemena::kNodeData
 Node in a skeletal-animation hierarchy (one per scene-graph joint). More...
struct  kemena::kFontGlyph
 Glyph metrics for a single character in a bitmap font atlas. More...

Namespaces

namespace  kemena
 Top-level Kemena3D engine namespace.

Macros

#define GLM_ENABLE_EXPERIMENTAL
#define SDL_MAIN_HANDLED
#define MAX_BONE_INFLUENCE   4
 Maximum number of bones a single vertex can be influenced by.
#define MAX_BONES   128
 Maximum number of bones in a skeleton.
#define K_KEY_UNKNOWN   0
#define K_KEY_BACKSPACE   8
#define K_KEY_TAB   9
#define K_KEY_RETURN   13
#define K_KEY_ESCAPE   27
#define K_KEY_SPACE   32
#define K_KEY_EXCLAIM   33
#define K_KEY_QUOTEDBL   34
#define K_KEY_HASH   35
#define K_KEY_DOLLAR   36
#define K_KEY_PERCENT   37
#define K_KEY_AMPERSAND   38
#define K_KEY_QUOTE   39
#define K_KEY_LEFTPAREN   40
#define K_KEY_RIGHTPAREN   41
#define K_KEY_ASTERISK   42
#define K_KEY_PLUS   43
#define K_KEY_COMMA   44
#define K_KEY_MINUS   45
#define K_KEY_PERIOD   46
#define K_KEY_SLASH   47
#define K_KEY_0   48
#define K_KEY_1   49
#define K_KEY_2   50
#define K_KEY_3   51
#define K_KEY_4   52
#define K_KEY_5   53
#define K_KEY_6   54
#define K_KEY_7   55
#define K_KEY_8   56
#define K_KEY_9   57
#define K_KEY_A   97
#define K_KEY_B   98
#define K_KEY_C   99
#define K_KEY_D   100
#define K_KEY_E   101
#define K_KEY_F   102
#define K_KEY_G   103
#define K_KEY_H   104
#define K_KEY_I   105
#define K_KEY_J   106
#define K_KEY_K   107
#define K_KEY_L   108
#define K_KEY_M   109
#define K_KEY_N   110
#define K_KEY_O   111
#define K_KEY_P   112
#define K_KEY_Q   113
#define K_KEY_R   114
#define K_KEY_S   115
#define K_KEY_T   116
#define K_KEY_U   117
#define K_KEY_V   118
#define K_KEY_W   119
#define K_KEY_X   120
#define K_KEY_Y   121
#define K_KEY_Z   122
#define K_KEY_F1   1073741882
#define K_KEY_F2   1073741883
#define K_KEY_F3   1073741884
#define K_KEY_F4   1073741885
#define K_KEY_F5   1073741886
#define K_KEY_F6   1073741887
#define K_KEY_F7   1073741888
#define K_KEY_F8   1073741889
#define K_KEY_F9   1073741890
#define K_KEY_F10   1073741891
#define K_KEY_F11   1073741892
#define K_KEY_F12   1073741893
#define K_KEY_CAPSLOCK   1073741881
#define K_KEY_LSHIFT   1073742049
#define K_KEY_RSHIFT   1073742053
#define K_KEY_LCTRL   1073742048
#define K_KEY_RCTRL   1073742052
#define K_KEY_LALT   1073742050
#define K_KEY_RALT   1073742054
#define K_KEY_LGUI   1073742051
#define K_KEY_RGUI   1073742055
#define K_KEY_INSERT   1073741897
#define K_KEY_DELETE   127
#define K_KEY_HOME   1073741898
#define K_KEY_END   1073741901
#define K_KEY_PAGEUP   1073741899
#define K_KEY_PAGEDOWN   1073741902
#define K_KEY_RIGHT   1073741903
#define K_KEY_LEFT   1073741904
#define K_KEY_DOWN   1073741905
#define K_KEY_UP   1073741906
#define K_KEY_NUMLOCKCLEAR   1073741907
#define K_KEY_KP_DIVIDE   1073741908
#define K_KEY_KP_MULTIPLY   1073741909
#define K_KEY_KP_MINUS   1073741910
#define K_KEY_KP_PLUS   1073741911
#define K_KEY_KP_ENTER   1073741912
#define K_KEY_KP_1   1073741913
#define K_KEY_KP_2   1073741914
#define K_KEY_KP_3   1073741915
#define K_KEY_KP_4   1073741916
#define K_KEY_KP_5   1073741917
#define K_KEY_KP_6   1073741918
#define K_KEY_KP_7   1073741919
#define K_KEY_KP_8   1073741920
#define K_KEY_KP_9   1073741921
#define K_KEY_KP_0   1073741922
#define K_KEY_KP_PERIOD   1073741923
#define K_KEY_PRINTSCREEN   1073741894
#define K_KEY_SCROLLLOCK   1073741895
#define K_KEY_PAUSE   1073741896
#define K_SCANCODE_UNKNOWN   0
#define K_SCANCODE_A   4
#define K_SCANCODE_B   5
#define K_SCANCODE_C   6
#define K_SCANCODE_D   7
#define K_SCANCODE_E   8
#define K_SCANCODE_F   9
#define K_SCANCODE_G   10
#define K_SCANCODE_H   11
#define K_SCANCODE_I   12
#define K_SCANCODE_J   13
#define K_SCANCODE_K   14
#define K_SCANCODE_L   15
#define K_SCANCODE_M   16
#define K_SCANCODE_N   17
#define K_SCANCODE_O   18
#define K_SCANCODE_P   19
#define K_SCANCODE_Q   20
#define K_SCANCODE_R   21
#define K_SCANCODE_S   22
#define K_SCANCODE_T   23
#define K_SCANCODE_U   24
#define K_SCANCODE_V   25
#define K_SCANCODE_W   26
#define K_SCANCODE_X   27
#define K_SCANCODE_Y   28
#define K_SCANCODE_Z   29
#define K_SCANCODE_1   30
#define K_SCANCODE_2   31
#define K_SCANCODE_3   32
#define K_SCANCODE_4   33
#define K_SCANCODE_5   34
#define K_SCANCODE_6   35
#define K_SCANCODE_7   36
#define K_SCANCODE_8   37
#define K_SCANCODE_9   38
#define K_SCANCODE_0   39
#define K_SCANCODE_RETURN   40
#define K_SCANCODE_ESCAPE   41
#define K_SCANCODE_BACKSPACE   42
#define K_SCANCODE_TAB   43
#define K_SCANCODE_SPACE   44
#define K_SCANCODE_MINUS   45
#define K_SCANCODE_EQUALS   46
#define K_SCANCODE_LEFTBRACKET   47
#define K_SCANCODE_RIGHTBRACKET   48
#define K_SCANCODE_BACKSLASH   49
#define K_SCANCODE_NONUSHASH   50
#define K_SCANCODE_SEMICOLON   51
#define K_SCANCODE_APOSTROPHE   52
#define K_SCANCODE_GRAVE   53
#define K_SCANCODE_COMMA   54
#define K_SCANCODE_PERIOD   55
#define K_SCANCODE_SLASH   56
#define K_SCANCODE_CAPSLOCK   57
#define K_SCANCODE_F1   58
#define K_SCANCODE_F2   59
#define K_SCANCODE_F3   60
#define K_SCANCODE_F4   61
#define K_SCANCODE_F5   62
#define K_SCANCODE_F6   63
#define K_SCANCODE_F7   64
#define K_SCANCODE_F8   65
#define K_SCANCODE_F9   66
#define K_SCANCODE_F10   67
#define K_SCANCODE_F11   68
#define K_SCANCODE_F12   69
#define K_SCANCODE_PRINTSCREEN   70
#define K_SCANCODE_SCROLLLOCK   71
#define K_SCANCODE_PAUSE   72
#define K_SCANCODE_INSERT   73
#define K_SCANCODE_HOME   74
#define K_SCANCODE_PAGEUP   75
#define K_SCANCODE_DELETE   76
#define K_SCANCODE_END   77
#define K_SCANCODE_PAGEDOWN   78
#define K_SCANCODE_RIGHT   79
#define K_SCANCODE_LEFT   80
#define K_SCANCODE_DOWN   81
#define K_SCANCODE_UP   82
#define K_SCANCODE_NUMLOCKCLEAR   83
#define K_SCANCODE_KP_DIVIDE   84
#define K_SCANCODE_KP_MULTIPLY   85
#define K_SCANCODE_KP_MINUS   86
#define K_SCANCODE_KP_PLUS   87
#define K_SCANCODE_KP_ENTER   88
#define K_SCANCODE_KP_1   89
#define K_SCANCODE_KP_2   90
#define K_SCANCODE_KP_3   91
#define K_SCANCODE_KP_4   92
#define K_SCANCODE_KP_5   93
#define K_SCANCODE_KP_6   94
#define K_SCANCODE_KP_7   95
#define K_SCANCODE_KP_8   96
#define K_SCANCODE_KP_9   97
#define K_SCANCODE_KP_0   98
#define K_SCANCODE_KP_PERIOD   99
#define K_SCANCODE_NONUSBACKSLASH   100
#define K_SCANCODE_APPLICATION   101
#define K_SCANCODE_KP_EQUALS   103
#define K_SCANCODE_F13   104
#define K_SCANCODE_F14   105
#define K_SCANCODE_F15   106
#define K_SCANCODE_F16   107
#define K_SCANCODE_F17   108
#define K_SCANCODE_F18   109
#define K_SCANCODE_F19   110
#define K_SCANCODE_F20   111
#define K_SCANCODE_F21   112
#define K_SCANCODE_F22   113
#define K_SCANCODE_F23   114
#define K_SCANCODE_F24   115
#define K_SCANCODE_EXECUTE   116
#define K_SCANCODE_HELP   117
#define K_SCANCODE_MENU   118
#define K_SCANCODE_SELECT   119
#define K_SCANCODE_STOP   120
#define K_SCANCODE_AGAIN   121
#define K_SCANCODE_UNDO   122
#define K_SCANCODE_CUT   123
#define K_SCANCODE_COPY   124
#define K_SCANCODE_PASTE   125
#define K_SCANCODE_FIND   126
#define K_SCANCODE_MUTE   127
#define K_SCANCODE_VOLUMEUP   128
#define K_SCANCODE_VOLUMEDOWN   129
#define K_SCANCODE_KP_COMMA   133
#define K_SCANCODE_KP_EQUALSAS400   134
#define K_SCANCODE_LCTRL   224
#define K_SCANCODE_LSHIFT   225
#define K_SCANCODE_LALT   226
#define K_SCANCODE_LGUI   227
#define K_SCANCODE_RCTRL   228
#define K_SCANCODE_RSHIFT   229
#define K_SCANCODE_RALT   230
#define K_SCANCODE_RGUI   231
Event type constants (mirror SDL3 values)
#define K_EVENT_QUIT   256
#define K_EVENT_KEYDOWN   768
#define K_EVENT_KEYUP   769
#define K_EVENT_MOUSEMOTION   1024
#define K_EVENT_MOUSEBUTTONDOWN   1025
#define K_EVENT_MOUSEBUTTONUP   1026
#define K_EVENT_MOUSEWHEEL   1027
Mouse button identifiers
#define K_MOUSEBUTTON_LEFT   1
#define K_MOUSEBUTTON_MIDDLE   2
#define K_MOUSEBUTTON_RIGHT   3

Typedefs

Math type aliases
typedef glm::vec2 kemena::kVec2
 2-component float vector.
typedef glm::vec3 kemena::kVec3
 3-component float vector.
typedef glm::vec4 kemena::kVec4
 4-component float vector.
typedef glm::ivec2 kemena::kIvec2
 2-component integer vector.
typedef glm::ivec3 kemena::kIvec3
 3-component integer vector.
typedef glm::ivec4 kemena::kIvec4
 4-component integer vector.
typedef glm::mat3 kemena::kMat3
 3x3 float matrix.
typedef glm::mat4 kemena::kMat4
 4x4 float matrix.
typedef glm::quat kemena::kQuat
 Unit quaternion.
typedef std::string kemena::kString
 Standard string alias.

Enumerations

enum  kemena::kRendererType { kemena::RENDERER_GL }
 Identifies the graphics backend used by kRenderer. More...
enum class  kemena::kRenderMode {
  kemena::RENDER_MODE_FULL = 0 , kemena::RENDER_MODE_ALBEDO = 1 , kemena::RENDER_MODE_NORMALS = 2 , kemena::RENDER_MODE_WIREFRAME = 3 ,
  kemena::RENDER_MODE_DEPTH = 4 , kemena::RENDER_MODE_OBJECT_IDS = 5 , kemena::RENDER_MODE_FULL_WIREFRAME = 6
}
 Selects the debug visualization mode for the scene viewport. More...
enum  kemena::kWindowType { kemena::WINDOW_DEFAULT , kemena::WINDOW_FULLSCREEN , kemena::WINDOW_BORDERLESS }
 Window creation mode. More...
enum  kemena::kNodeType { kemena::NODE_TYPE_OBJECT , kemena::NODE_TYPE_MESH , kemena::NODE_TYPE_CAMERA , kemena::NODE_TYPE_LIGHT }
 Scene-graph node type tag. More...
enum  kemena::kCameraType { kemena::CAMERA_TYPE_FREE , kemena::CAMERA_TYPE_LOCKED }
 Camera behaviour mode. More...
enum  kemena::kTransparentType { kemena::TRANSP_TYPE_NONE , kemena::TRANSP_TYPE_BLEND }
 Transparency/blending mode for a material. More...
enum  kemena::kLightType { kemena::LIGHT_TYPE_SUN , kemena::LIGHT_TYPE_POINT , kemena::LIGHT_TYPE_SPOT }
 Light source variety. More...
enum  kemena::kTextureFormat { kemena::TEX_FORMAT_RGB , kemena::TEX_FORMAT_RGBA , kemena::TEX_FORMAT_SRGB , kemena::TEX_FORMAT_SRGBA }
 Texture upload format (internal precision / colour-space). More...
enum  kemena::kTextureType { kemena::TEX_TYPE_2D , kemena::TEX_TYPE_CUBE }
 Distinguishes 2D from cube-map textures. More...

Functions

kString kemena::generateFileChecksum (const kString &fileName)
 Computes an MD5 checksum of the given file.
kString kemena::generateRandomString (int stringLength)
 Generates a cryptographically random alphanumeric kString.
kString kemena::generateUuid ()
 Generates a random UUID v4 kString.

Detailed Description

Core type aliases, enumerations, structs, and utility functions used throughout the engine.

Macro Definition Documentation

◆ GLM_ENABLE_EXPERIMENTAL

#define GLM_ENABLE_EXPERIMENTAL

◆ K_EVENT_KEYDOWN

#define K_EVENT_KEYDOWN   768

◆ K_EVENT_KEYUP

#define K_EVENT_KEYUP   769

◆ K_EVENT_MOUSEBUTTONDOWN

#define K_EVENT_MOUSEBUTTONDOWN   1025

◆ K_EVENT_MOUSEBUTTONUP

#define K_EVENT_MOUSEBUTTONUP   1026

◆ K_EVENT_MOUSEMOTION

#define K_EVENT_MOUSEMOTION   1024

◆ K_EVENT_MOUSEWHEEL

#define K_EVENT_MOUSEWHEEL   1027

◆ K_EVENT_QUIT

#define K_EVENT_QUIT   256

◆ K_KEY_0

#define K_KEY_0   48

◆ K_KEY_1

#define K_KEY_1   49

◆ K_KEY_2

#define K_KEY_2   50

◆ K_KEY_3

#define K_KEY_3   51

◆ K_KEY_4

#define K_KEY_4   52

◆ K_KEY_5

#define K_KEY_5   53

◆ K_KEY_6

#define K_KEY_6   54

◆ K_KEY_7

#define K_KEY_7   55

◆ K_KEY_8

#define K_KEY_8   56

◆ K_KEY_9

#define K_KEY_9   57

◆ K_KEY_A

#define K_KEY_A   97

◆ K_KEY_AMPERSAND

#define K_KEY_AMPERSAND   38

◆ K_KEY_ASTERISK

#define K_KEY_ASTERISK   42

◆ K_KEY_B

#define K_KEY_B   98

◆ K_KEY_BACKSPACE

#define K_KEY_BACKSPACE   8

◆ K_KEY_C

#define K_KEY_C   99

◆ K_KEY_CAPSLOCK

#define K_KEY_CAPSLOCK   1073741881

◆ K_KEY_COMMA

#define K_KEY_COMMA   44

◆ K_KEY_D

#define K_KEY_D   100

◆ K_KEY_DELETE

#define K_KEY_DELETE   127

◆ K_KEY_DOLLAR

#define K_KEY_DOLLAR   36

◆ K_KEY_DOWN

#define K_KEY_DOWN   1073741905

◆ K_KEY_E

#define K_KEY_E   101

◆ K_KEY_END

#define K_KEY_END   1073741901

◆ K_KEY_ESCAPE

#define K_KEY_ESCAPE   27

◆ K_KEY_EXCLAIM

#define K_KEY_EXCLAIM   33

◆ K_KEY_F

#define K_KEY_F   102

◆ K_KEY_F1

#define K_KEY_F1   1073741882

◆ K_KEY_F10

#define K_KEY_F10   1073741891

◆ K_KEY_F11

#define K_KEY_F11   1073741892

◆ K_KEY_F12

#define K_KEY_F12   1073741893

◆ K_KEY_F2

#define K_KEY_F2   1073741883

◆ K_KEY_F3

#define K_KEY_F3   1073741884

◆ K_KEY_F4

#define K_KEY_F4   1073741885

◆ K_KEY_F5

#define K_KEY_F5   1073741886

◆ K_KEY_F6

#define K_KEY_F6   1073741887

◆ K_KEY_F7

#define K_KEY_F7   1073741888

◆ K_KEY_F8

#define K_KEY_F8   1073741889

◆ K_KEY_F9

#define K_KEY_F9   1073741890

◆ K_KEY_G

#define K_KEY_G   103

◆ K_KEY_H

#define K_KEY_H   104

◆ K_KEY_HASH

#define K_KEY_HASH   35

◆ K_KEY_HOME

#define K_KEY_HOME   1073741898

◆ K_KEY_I

#define K_KEY_I   105

◆ K_KEY_INSERT

#define K_KEY_INSERT   1073741897

◆ K_KEY_J

#define K_KEY_J   106

◆ K_KEY_K

#define K_KEY_K   107

◆ K_KEY_KP_0

#define K_KEY_KP_0   1073741922

◆ K_KEY_KP_1

#define K_KEY_KP_1   1073741913

◆ K_KEY_KP_2

#define K_KEY_KP_2   1073741914

◆ K_KEY_KP_3

#define K_KEY_KP_3   1073741915

◆ K_KEY_KP_4

#define K_KEY_KP_4   1073741916

◆ K_KEY_KP_5

#define K_KEY_KP_5   1073741917

◆ K_KEY_KP_6

#define K_KEY_KP_6   1073741918

◆ K_KEY_KP_7

#define K_KEY_KP_7   1073741919

◆ K_KEY_KP_8

#define K_KEY_KP_8   1073741920

◆ K_KEY_KP_9

#define K_KEY_KP_9   1073741921

◆ K_KEY_KP_DIVIDE

#define K_KEY_KP_DIVIDE   1073741908

◆ K_KEY_KP_ENTER

#define K_KEY_KP_ENTER   1073741912

◆ K_KEY_KP_MINUS

#define K_KEY_KP_MINUS   1073741910

◆ K_KEY_KP_MULTIPLY

#define K_KEY_KP_MULTIPLY   1073741909

◆ K_KEY_KP_PERIOD

#define K_KEY_KP_PERIOD   1073741923

◆ K_KEY_KP_PLUS

#define K_KEY_KP_PLUS   1073741911

◆ K_KEY_L

#define K_KEY_L   108

◆ K_KEY_LALT

#define K_KEY_LALT   1073742050

◆ K_KEY_LCTRL

#define K_KEY_LCTRL   1073742048

◆ K_KEY_LEFT

#define K_KEY_LEFT   1073741904

◆ K_KEY_LEFTPAREN

#define K_KEY_LEFTPAREN   40

◆ K_KEY_LGUI

#define K_KEY_LGUI   1073742051

◆ K_KEY_LSHIFT

#define K_KEY_LSHIFT   1073742049

◆ K_KEY_M

#define K_KEY_M   109

◆ K_KEY_MINUS

#define K_KEY_MINUS   45

◆ K_KEY_N

#define K_KEY_N   110

◆ K_KEY_NUMLOCKCLEAR

#define K_KEY_NUMLOCKCLEAR   1073741907

◆ K_KEY_O

#define K_KEY_O   111

◆ K_KEY_P

#define K_KEY_P   112

◆ K_KEY_PAGEDOWN

#define K_KEY_PAGEDOWN   1073741902

◆ K_KEY_PAGEUP

#define K_KEY_PAGEUP   1073741899

◆ K_KEY_PAUSE

#define K_KEY_PAUSE   1073741896

◆ K_KEY_PERCENT

#define K_KEY_PERCENT   37

◆ K_KEY_PERIOD

#define K_KEY_PERIOD   46

◆ K_KEY_PLUS

#define K_KEY_PLUS   43

◆ K_KEY_PRINTSCREEN

#define K_KEY_PRINTSCREEN   1073741894

◆ K_KEY_Q

#define K_KEY_Q   113

◆ K_KEY_QUOTE

#define K_KEY_QUOTE   39

◆ K_KEY_QUOTEDBL

#define K_KEY_QUOTEDBL   34

◆ K_KEY_R

#define K_KEY_R   114

◆ K_KEY_RALT

#define K_KEY_RALT   1073742054

◆ K_KEY_RCTRL

#define K_KEY_RCTRL   1073742052

◆ K_KEY_RETURN

#define K_KEY_RETURN   13

◆ K_KEY_RGUI

#define K_KEY_RGUI   1073742055

◆ K_KEY_RIGHT

#define K_KEY_RIGHT   1073741903

◆ K_KEY_RIGHTPAREN

#define K_KEY_RIGHTPAREN   41

◆ K_KEY_RSHIFT

#define K_KEY_RSHIFT   1073742053

◆ K_KEY_S

#define K_KEY_S   115

◆ K_KEY_SCROLLLOCK

#define K_KEY_SCROLLLOCK   1073741895

◆ K_KEY_SLASH

#define K_KEY_SLASH   47

◆ K_KEY_SPACE

#define K_KEY_SPACE   32

◆ K_KEY_T

#define K_KEY_T   116

◆ K_KEY_TAB

#define K_KEY_TAB   9

◆ K_KEY_U

#define K_KEY_U   117

◆ K_KEY_UNKNOWN

#define K_KEY_UNKNOWN   0

◆ K_KEY_UP

#define K_KEY_UP   1073741906

◆ K_KEY_V

#define K_KEY_V   118

◆ K_KEY_W

#define K_KEY_W   119

◆ K_KEY_X

#define K_KEY_X   120

◆ K_KEY_Y

#define K_KEY_Y   121

◆ K_KEY_Z

#define K_KEY_Z   122

◆ K_MOUSEBUTTON_LEFT

#define K_MOUSEBUTTON_LEFT   1

◆ K_MOUSEBUTTON_MIDDLE

#define K_MOUSEBUTTON_MIDDLE   2

◆ K_MOUSEBUTTON_RIGHT

#define K_MOUSEBUTTON_RIGHT   3

◆ K_SCANCODE_0

#define K_SCANCODE_0   39

◆ K_SCANCODE_1

#define K_SCANCODE_1   30

◆ K_SCANCODE_2

#define K_SCANCODE_2   31

◆ K_SCANCODE_3

#define K_SCANCODE_3   32

◆ K_SCANCODE_4

#define K_SCANCODE_4   33

◆ K_SCANCODE_5

#define K_SCANCODE_5   34

◆ K_SCANCODE_6

#define K_SCANCODE_6   35

◆ K_SCANCODE_7

#define K_SCANCODE_7   36

◆ K_SCANCODE_8

#define K_SCANCODE_8   37

◆ K_SCANCODE_9

#define K_SCANCODE_9   38

◆ K_SCANCODE_A

#define K_SCANCODE_A   4

◆ K_SCANCODE_AGAIN

#define K_SCANCODE_AGAIN   121

◆ K_SCANCODE_APOSTROPHE

#define K_SCANCODE_APOSTROPHE   52

◆ K_SCANCODE_APPLICATION

#define K_SCANCODE_APPLICATION   101

◆ K_SCANCODE_B

#define K_SCANCODE_B   5

◆ K_SCANCODE_BACKSLASH

#define K_SCANCODE_BACKSLASH   49

◆ K_SCANCODE_BACKSPACE

#define K_SCANCODE_BACKSPACE   42

◆ K_SCANCODE_C

#define K_SCANCODE_C   6

◆ K_SCANCODE_CAPSLOCK

#define K_SCANCODE_CAPSLOCK   57

◆ K_SCANCODE_COMMA

#define K_SCANCODE_COMMA   54

◆ K_SCANCODE_COPY

#define K_SCANCODE_COPY   124

◆ K_SCANCODE_CUT

#define K_SCANCODE_CUT   123

◆ K_SCANCODE_D

#define K_SCANCODE_D   7

◆ K_SCANCODE_DELETE

#define K_SCANCODE_DELETE   76

◆ K_SCANCODE_DOWN

#define K_SCANCODE_DOWN   81

◆ K_SCANCODE_E

#define K_SCANCODE_E   8

◆ K_SCANCODE_END

#define K_SCANCODE_END   77

◆ K_SCANCODE_EQUALS

#define K_SCANCODE_EQUALS   46

◆ K_SCANCODE_ESCAPE

#define K_SCANCODE_ESCAPE   41

◆ K_SCANCODE_EXECUTE

#define K_SCANCODE_EXECUTE   116

◆ K_SCANCODE_F

#define K_SCANCODE_F   9

◆ K_SCANCODE_F1

#define K_SCANCODE_F1   58

◆ K_SCANCODE_F10

#define K_SCANCODE_F10   67

◆ K_SCANCODE_F11

#define K_SCANCODE_F11   68

◆ K_SCANCODE_F12

#define K_SCANCODE_F12   69

◆ K_SCANCODE_F13

#define K_SCANCODE_F13   104

◆ K_SCANCODE_F14

#define K_SCANCODE_F14   105

◆ K_SCANCODE_F15

#define K_SCANCODE_F15   106

◆ K_SCANCODE_F16

#define K_SCANCODE_F16   107

◆ K_SCANCODE_F17

#define K_SCANCODE_F17   108

◆ K_SCANCODE_F18

#define K_SCANCODE_F18   109

◆ K_SCANCODE_F19

#define K_SCANCODE_F19   110

◆ K_SCANCODE_F2

#define K_SCANCODE_F2   59

◆ K_SCANCODE_F20

#define K_SCANCODE_F20   111

◆ K_SCANCODE_F21

#define K_SCANCODE_F21   112

◆ K_SCANCODE_F22

#define K_SCANCODE_F22   113

◆ K_SCANCODE_F23

#define K_SCANCODE_F23   114

◆ K_SCANCODE_F24

#define K_SCANCODE_F24   115

◆ K_SCANCODE_F3

#define K_SCANCODE_F3   60

◆ K_SCANCODE_F4

#define K_SCANCODE_F4   61

◆ K_SCANCODE_F5

#define K_SCANCODE_F5   62

◆ K_SCANCODE_F6

#define K_SCANCODE_F6   63

◆ K_SCANCODE_F7

#define K_SCANCODE_F7   64

◆ K_SCANCODE_F8

#define K_SCANCODE_F8   65

◆ K_SCANCODE_F9

#define K_SCANCODE_F9   66

◆ K_SCANCODE_FIND

#define K_SCANCODE_FIND   126

◆ K_SCANCODE_G

#define K_SCANCODE_G   10

◆ K_SCANCODE_GRAVE

#define K_SCANCODE_GRAVE   53

◆ K_SCANCODE_H

#define K_SCANCODE_H   11

◆ K_SCANCODE_HELP

#define K_SCANCODE_HELP   117

◆ K_SCANCODE_HOME

#define K_SCANCODE_HOME   74

◆ K_SCANCODE_I

#define K_SCANCODE_I   12

◆ K_SCANCODE_INSERT

#define K_SCANCODE_INSERT   73

◆ K_SCANCODE_J

#define K_SCANCODE_J   13

◆ K_SCANCODE_K

#define K_SCANCODE_K   14

◆ K_SCANCODE_KP_0

#define K_SCANCODE_KP_0   98

◆ K_SCANCODE_KP_1

#define K_SCANCODE_KP_1   89

◆ K_SCANCODE_KP_2

#define K_SCANCODE_KP_2   90

◆ K_SCANCODE_KP_3

#define K_SCANCODE_KP_3   91

◆ K_SCANCODE_KP_4

#define K_SCANCODE_KP_4   92

◆ K_SCANCODE_KP_5

#define K_SCANCODE_KP_5   93

◆ K_SCANCODE_KP_6

#define K_SCANCODE_KP_6   94

◆ K_SCANCODE_KP_7

#define K_SCANCODE_KP_7   95

◆ K_SCANCODE_KP_8

#define K_SCANCODE_KP_8   96

◆ K_SCANCODE_KP_9

#define K_SCANCODE_KP_9   97

◆ K_SCANCODE_KP_COMMA

#define K_SCANCODE_KP_COMMA   133

◆ K_SCANCODE_KP_DIVIDE

#define K_SCANCODE_KP_DIVIDE   84

◆ K_SCANCODE_KP_ENTER

#define K_SCANCODE_KP_ENTER   88

◆ K_SCANCODE_KP_EQUALS

#define K_SCANCODE_KP_EQUALS   103

◆ K_SCANCODE_KP_EQUALSAS400

#define K_SCANCODE_KP_EQUALSAS400   134

◆ K_SCANCODE_KP_MINUS

#define K_SCANCODE_KP_MINUS   86

◆ K_SCANCODE_KP_MULTIPLY

#define K_SCANCODE_KP_MULTIPLY   85

◆ K_SCANCODE_KP_PERIOD

#define K_SCANCODE_KP_PERIOD   99

◆ K_SCANCODE_KP_PLUS

#define K_SCANCODE_KP_PLUS   87

◆ K_SCANCODE_L

#define K_SCANCODE_L   15

◆ K_SCANCODE_LALT

#define K_SCANCODE_LALT   226

◆ K_SCANCODE_LCTRL

#define K_SCANCODE_LCTRL   224

◆ K_SCANCODE_LEFT

#define K_SCANCODE_LEFT   80

◆ K_SCANCODE_LEFTBRACKET

#define K_SCANCODE_LEFTBRACKET   47

◆ K_SCANCODE_LGUI

#define K_SCANCODE_LGUI   227

◆ K_SCANCODE_LSHIFT

#define K_SCANCODE_LSHIFT   225

◆ K_SCANCODE_M

#define K_SCANCODE_M   16

◆ K_SCANCODE_MENU

#define K_SCANCODE_MENU   118

◆ K_SCANCODE_MINUS

#define K_SCANCODE_MINUS   45

◆ K_SCANCODE_MUTE

#define K_SCANCODE_MUTE   127

◆ K_SCANCODE_N

#define K_SCANCODE_N   17

◆ K_SCANCODE_NONUSBACKSLASH

#define K_SCANCODE_NONUSBACKSLASH   100

◆ K_SCANCODE_NONUSHASH

#define K_SCANCODE_NONUSHASH   50

◆ K_SCANCODE_NUMLOCKCLEAR

#define K_SCANCODE_NUMLOCKCLEAR   83

◆ K_SCANCODE_O

#define K_SCANCODE_O   18

◆ K_SCANCODE_P

#define K_SCANCODE_P   19

◆ K_SCANCODE_PAGEDOWN

#define K_SCANCODE_PAGEDOWN   78

◆ K_SCANCODE_PAGEUP

#define K_SCANCODE_PAGEUP   75

◆ K_SCANCODE_PASTE

#define K_SCANCODE_PASTE   125

◆ K_SCANCODE_PAUSE

#define K_SCANCODE_PAUSE   72

◆ K_SCANCODE_PERIOD

#define K_SCANCODE_PERIOD   55

◆ K_SCANCODE_PRINTSCREEN

#define K_SCANCODE_PRINTSCREEN   70

◆ K_SCANCODE_Q

#define K_SCANCODE_Q   20

◆ K_SCANCODE_R

#define K_SCANCODE_R   21

◆ K_SCANCODE_RALT

#define K_SCANCODE_RALT   230

◆ K_SCANCODE_RCTRL

#define K_SCANCODE_RCTRL   228

◆ K_SCANCODE_RETURN

#define K_SCANCODE_RETURN   40

◆ K_SCANCODE_RGUI

#define K_SCANCODE_RGUI   231

◆ K_SCANCODE_RIGHT

#define K_SCANCODE_RIGHT   79

◆ K_SCANCODE_RIGHTBRACKET

#define K_SCANCODE_RIGHTBRACKET   48

◆ K_SCANCODE_RSHIFT

#define K_SCANCODE_RSHIFT   229

◆ K_SCANCODE_S

#define K_SCANCODE_S   22

◆ K_SCANCODE_SCROLLLOCK

#define K_SCANCODE_SCROLLLOCK   71

◆ K_SCANCODE_SELECT

#define K_SCANCODE_SELECT   119

◆ K_SCANCODE_SEMICOLON

#define K_SCANCODE_SEMICOLON   51

◆ K_SCANCODE_SLASH

#define K_SCANCODE_SLASH   56

◆ K_SCANCODE_SPACE

#define K_SCANCODE_SPACE   44

◆ K_SCANCODE_STOP

#define K_SCANCODE_STOP   120

◆ K_SCANCODE_T

#define K_SCANCODE_T   23

◆ K_SCANCODE_TAB

#define K_SCANCODE_TAB   43

◆ K_SCANCODE_U

#define K_SCANCODE_U   24

◆ K_SCANCODE_UNDO

#define K_SCANCODE_UNDO   122

◆ K_SCANCODE_UNKNOWN

#define K_SCANCODE_UNKNOWN   0

◆ K_SCANCODE_UP

#define K_SCANCODE_UP   82

◆ K_SCANCODE_V

#define K_SCANCODE_V   25

◆ K_SCANCODE_VOLUMEDOWN

#define K_SCANCODE_VOLUMEDOWN   129

◆ K_SCANCODE_VOLUMEUP

#define K_SCANCODE_VOLUMEUP   128

◆ K_SCANCODE_W

#define K_SCANCODE_W   26

◆ K_SCANCODE_X

#define K_SCANCODE_X   27

◆ K_SCANCODE_Y

#define K_SCANCODE_Y   28

◆ K_SCANCODE_Z

#define K_SCANCODE_Z   29

◆ MAX_BONE_INFLUENCE

#define MAX_BONE_INFLUENCE   4

Maximum number of bones a single vertex can be influenced by.

◆ MAX_BONES

#define MAX_BONES   128

Maximum number of bones in a skeleton.

◆ SDL_MAIN_HANDLED

#define SDL_MAIN_HANDLED