Gamedev Framework (gf)  0.1.0
A C++11 framework for 2D games
Classes | Typedefs | Enumerations | Functions | Variables
gf Namespace Reference

Classes

class  Action
 An action that can be triggered by different controls. More...
 
class  ActionContainer
 A set of actions. More...
 
class  AdaptativeView
 Adaptative view. More...
 
class  AlphaTexture
 A texture with a single alpha channel. More...
 
class  AnimatedSprite
 An animated sprite. More...
 
class  Animation
 An animation. More...
 
class  AntiAliasingEffect
 Anti-aliasing effect. More...
 
class  Array2D
 A two-dimensional array. More...
 
class  AssetManager
 An asset manager. More...
 
class  BareTexture
 An image that lives in the graphic memory that can be used for drawing. More...
 
struct  BlendMode
 Blending modes for drawing. More...
 
class  BufferedGeometry
 A drawable for buffers. More...
 
class  CircleShape
 Specialized shape representing a circle. More...
 
class  Clock
 Utility class that measures the elapsed time. More...
 
class  CloseControl
 A close control. More...
 
struct  Color
 Predefined colors. More...
 
class  ColorBlindEffect
 Simulation of color blindness. More...
 
class  ColorEffect
 Simple color effects. More...
 
class  ColorMatrixEffect
 Generic color matrix effect. More...
 
struct  ColorRamp
 A color ramp. More...
 
class  CompoundCurve
 A compound curve. More...
 
class  Control
 A physical control. More...
 
class  ConvexShape
 Specialized shape representing a convex polygon. More...
 
class  CubicBezierCurve
 A cubic Bézier curve. More...
 
class  Curve
 A curve is a one dimension object. More...
 
class  DefaultEffect
 Default effect. More...
 
class  Direction
 Cardinal and ordinal directions. More...
 
class  Drawable
 Abstract base class for objects that can be drawn to a render window. More...
 
class  EdgeEffect
 Edge detector. More...
 
class  Effect
 A post-processing effect. More...
 
class  Entity
 A game entity. More...
 
class  EntityContainer
 A collection of entities. More...
 
struct  Event
 Defines a system event and its parameters. More...
 
class  ExtendView
 Extend view. More...
 
class  FileInputStream
 File based input stream. More...
 
class  FillView
 Fill view. More...
 
class  FitView
 Fit view. More...
 
class  Font
 A character font. More...
 
class  FractalNoise
 Fractal noise. More...
 
class  Gamepad
 Some gamepad related functions. More...
 
class  GamepadAxisControl
 A gamepad axis control. More...
 
class  GamepadButtonControl
 A gamepad button control. More...
 
struct  Glyph
 A glyph. More...
 
class  GradientNoise
 Gradient noise. More...
 
class  Image
 Class for loading, manipulating and saving images. More...
 
class  InputStream
 Abstract class for custom file input streams. More...
 
struct  Keyboard
 Some keyboard related functions. More...
 
class  KeycodeKeyControl
 A key control based on keycode. More...
 
class  Library
 A class to represent the library. More...
 
class  Line
 A line. More...
 
class  Log
 Logging functions. More...
 
struct  Matrix
 General purpose math matrix. More...
 
struct  Matrix< T, 2, 2 >
 A 2x2 matrix. More...
 
struct  Matrix< T, 3, 3 >
 A 3x3 matrix. More...
 
struct  Matrix< T, 4, 4 >
 A 4x4 matrix. More...
 
class  MemoryInputStream
 Memory based input stream. More...
 
struct  Message
 The base class for all messages. More...
 
class  MessageManager
 A message manager. More...
 
class  Model
 A game object that can be updated. More...
 
class  ModelContainer
 A collection of models. More...
 
struct  Modifiers
 State of modifiers. More...
 
class  Monitor
 A monitor. More...
 
class  MouseButtonControl
 A mouse button control. More...
 
class  NinePatch
 A nine-patch. More...
 
class  OpenSimplexNoise
 OpenSimplex noise. More...
 
class  PerlinNoise
 Perlin noise. More...
 
class  PostProcessing
 A post-processing drawable. More...
 
class  QuadraticBezierCurve
 A quadratic Bézier curve. More...
 
class  Queue
 A simple concurrent queue. More...
 
class  Random
 A random engine. More...
 
struct  Range
 A half-open range of values. More...
 
struct  Rect
 Utility class for manipulating 2D axis aligned rectangles. More...
 
class  RectangleShape
 Specialized shape representing a rectangle. More...
 
class  RenderPipeline
 A render pipeline. More...
 
struct  RenderStates
 Define the states used for drawing to a RenderTarget. More...
 
class  RenderTarget
 Base class for all render targets (window, texture, ...) More...
 
class  RenderTexture
 Target for off-screen 2D rendering into a texture. More...
 
class  RenderWindow
 A window that can serve as a target for 2D drawing. More...
 
class  ResourceCache
 A generic cache for ressources. More...
 
class  ResourceManager
 A ressource manager. More...
 
class  RoundedRectangleShape
 Specialized shape representing a rounded rectangle. More...
 
class  ScancodeKeyControl
 A key control based on scancode. More...
 
class  ScreenView
 Screen view. More...
 
class  Shader
 An OpenGL vertex and/or fragment shader. More...
 
class  Shape
 Base class for textured shapes with outline. More...
 
class  SimplexNoise
 Simplex noise. More...
 
class  Singleton
 A singleton that wraps a pointer provided by a storage. More...
 
class  SingletonStorage
 A storage for a singleton. More...
 
class  Sprite
 A drawable representation of a texture, with its own transformations, color, etc. More...
 
class  SpriteBatch
 A sprite batch. More...
 
class  StarShape
 Specialized shape representing a star. More...
 
class  StretchView
 Stretch view. More...
 
class  SystemInfo
 A class for system info. More...
 
class  Text
 Graphical text that can be drawn to a render target. More...
 
class  Texture
 A texture for colored images. More...
 
class  TextureAtlas
 A collection of sub-texture. More...
 
class  TileLayer
 A tile layer. More...
 
class  Time
 Represents a time value. More...
 
class  Transformable
 Decomposed transform defined by a position, a rotation and a scale. More...
 
struct  Vector
 General purpose math vector. More...
 
struct  Vector< T, 2 >
 A 2D vector. More...
 
struct  Vector< T, 3 >
 A 3D vector. More...
 
struct  Vector< T, 4 >
 A 4D vector. More...
 
struct  Vertex
 A point associated with a color and a texture coordinate. More...
 
class  VertexArray
 A set of primitives. More...
 
class  VertexBuffer
 Data in the graphics memory. More...
 
struct  VideoMode
 A video mode. More...
 
class  View
 2D camera that defines what region is shown on screen More...
 
class  ViewContainer
 A container of views. More...
 
class  Window
 An OS window. More...
 
struct  WindowHints
 Hints for window creation. More...
 

Typedefs

using Path = boost::filesystem::path
 A path in the filesystem. More...
 
typedef uint64_t Id
 An identifier. More...
 
template<typename T >
using Step = T(*)(T)
 A step is a function with special features. More...
 
typedef Matrix< float, 2, 2 > Matrix2f
 A float square matrix of size 2. More...
 
typedef Matrix< float, 3, 3 > Matrix3f
 A float square matrix of size 3. More...
 
typedef Matrix< float, 4, 4 > Matrix4f
 A float square matrix of size 4. More...
 
typedef std::function
< MessageStatus(Id, Message *)> 
MessageHandler
 A message handler. More...
 
typedef uint64_t MessageHandlerId
 An identifier for a message handler. More...
 
typedef Range< float > RangeF
 A float range. More...
 
typedef Range< int > RangeI
 A int range. More...
 
typedef Range< unsigned > RangeU
 A unsigned range. More...
 
typedef Range< std::size_t > RangeZ
 A std::size_t range. More...
 
typedef Rect< float > RectF
 A float rectangle. More...
 
typedef Rect< int > RectI
 A int rectangle. More...
 
typedef Rect< unsigned > RectU
 A unsigned rectangle. More...
 
typedef Rect< std::size_t > RectZ
 A std::size_t rectangle. More...
 
typedef Vector< float, 2 > Vector2f
 A float vector with 2 components. More...
 
typedef Vector< float, 3 > Vector3f
 A float vector with 3 components. More...
 
typedef Vector< float, 4 > Vector4f
 A float vector with 4 components. More...
 
typedef Vector< double, 2 > Vector2d
 A double vector with 2 components. More...
 
typedef Vector< double, 3 > Vector3d
 A double vector with 3 components. More...
 
typedef Vector< double, 4 > Vector4d
 A double vector with 4 components. More...
 
typedef Vector< int, 2 > Vector2i
 A int vector with 2 components. More...
 
typedef Vector< int, 3 > Vector3i
 A int vector with 3 components. More...
 
typedef Vector< int, 4 > Vector4i
 A int vector with 4 components. More...
 
typedef Vector< unsigned, 2 > Vector2u
 A unsigned vector with 2 components. More...
 
typedef Vector< unsigned, 3 > Vector3u
 A unsigned vector with 3 components. More...
 
typedef Vector< unsigned, 4 > Vector4u
 A unsigned vector with 4 components. More...
 
typedef Vector< std::size_t, 2 > Vector2z
 A std::size_t vector with 2 components. More...
 
typedef Vector< std::size_t, 3 > Vector3z
 A std::size_t vector with 3 components. More...
 
typedef Vector< std::size_t, 4 > Vector4z
 A std::size_t vector with 4 components. More...
 
typedef Vector< bool, 2 > Vector2b
 A bool vector with 2 components. More...
 
typedef Vector< bool, 3 > Vector3b
 A bool vector with 3 components. More...
 
typedef Vector< bool, 4 > Vector4b
 A bool vector with 4 components. More...
 
typedef Vector< float, 3 > Color3f
 A float color vector with 3 components. More...
 
typedef Vector< float, 4 > Color4f
 A float color vector with 4 components. More...
 
typedef Vector< uint8_t, 3 > Color3u
 A uint8_t color vector with 3 components. More...
 
typedef Vector< uint8_t, 4 > Color4u
 A uint8_t color vector with 4 components. More...
 

Enumerations

enum  BlendEquation {
  BlendEquation::Add,
  BlendEquation::Substract,
  BlendEquation::ReverseSubstract
}
 Enumeration of the blending equations. More...
 
enum  BlendFactor {
  BlendFactor::Zero,
  BlendFactor::One,
  BlendFactor::SrcColor,
  BlendFactor::OneMinusSrcColor,
  BlendFactor::DstColor,
  BlendFactor::OneMinusDstColor,
  BlendFactor::SrcAlpha,
  BlendFactor::OneMinusSrcAlpha,
  BlendFactor::DstAlpha,
  BlendFactor::OneMinusDstAlpha
}
 Enumeration of the blending factors. More...
 
enum  EventType {
  EventType::Resized,
  EventType::Closed,
  EventType::FocusGained,
  EventType::FocusLost,
  EventType::KeyPressed,
  EventType::KeyRepeated,
  EventType::KeyReleased,
  EventType::MouseWheelScrolled,
  EventType::MouseButtonPressed,
  EventType::MouseButtonReleased,
  EventType::MouseMoved,
  EventType::MouseEntered,
  EventType::MouseLeft,
  EventType::GamepadButtonPressed,
  EventType::GamepadButtonReleased,
  EventType::GamepadAxisMoved,
  EventType::GamepadConnected,
  EventType::GamepadDisconnected
}
 Enumeration of the different types of events. More...
 
enum  GamepadButton {
  GamepadButton::Invalid,
  GamepadButton::A,
  GamepadButton::B,
  GamepadButton::X,
  GamepadButton::Y,
  GamepadButton::Back,
  GamepadButton::Guide,
  GamepadButton::Start,
  GamepadButton::LeftStick,
  GamepadButton::RightStick,
  GamepadButton::LeftBumper,
  GamepadButton::RightBumper,
  GamepadButton::DPadUp,
  GamepadButton::DPadDown,
  GamepadButton::DPadLeft,
  GamepadButton::DPadRight
}
 The gamepad buttons. More...
 
enum  GamepadAxis {
  GamepadAxis::Invalid,
  GamepadAxis::LeftX,
  GamepadAxis::LeftY,
  GamepadAxis::RightX,
  GamepadAxis::RightY,
  GamepadAxis::TriggerLeft,
  GamepadAxis::TriggerRight
}
 The gamepad axis. More...
 
enum  GamepadAxisDirection {
  GamepadAxisDirection::Positive,
  GamepadAxisDirection::Negative
}
 A gamepad axis direction. More...
 
enum  GamepadHwId : int
 A gamepad hardware identifier. More...
 
enum  GamepadId : int32_t
 A gamepad identifier. More...
 
enum  Scancode : int {
  Scancode::A = 4,
  Scancode::B = 5,
  Scancode::C = 6,
  Scancode::D = 7,
  Scancode::E = 8,
  Scancode::F = 9,
  Scancode::G = 10,
  Scancode::H = 11,
  Scancode::I = 12,
  Scancode::J = 13,
  Scancode::K = 14,
  Scancode::L = 15,
  Scancode::M = 16,
  Scancode::N = 17,
  Scancode::O = 18,
  Scancode::P = 19,
  Scancode::Q = 20,
  Scancode::R = 21,
  Scancode::S = 22,
  Scancode::T = 23,
  Scancode::U = 24,
  Scancode::V = 25,
  Scancode::W = 26,
  Scancode::X = 27,
  Scancode::Y = 28,
  Scancode::Z = 29,
  Scancode::Num1 = 30,
  Scancode::Num2 = 31,
  Scancode::Num3 = 32,
  Scancode::Num4 = 33,
  Scancode::Num5 = 34,
  Scancode::Num6 = 35,
  Scancode::Num7 = 36,
  Scancode::Num8 = 37,
  Scancode::Num9 = 38,
  Scancode::Num0 = 39,
  Scancode::Return = 40,
  Scancode::Escape = 41,
  Scancode::Backspace = 42,
  Scancode::Tab = 43,
  Scancode::Space = 44,
  Scancode::Minus = 45,
  Scancode::Equals = 46,
  Scancode::LeftBracket = 47,
  Scancode::RightBracket = 48,
  Scancode::Backslash = 49,
  Scancode::NonUsHash = 50,
  Scancode::Semicolon = 51,
  Scancode::Apostrophe = 52,
  Scancode::Grave = 53,
  Scancode::Comma = 54,
  Scancode::Period = 55,
  Scancode::Slash = 56,
  Scancode::CapsLock = 57,
  Scancode::F1 = 58,
  Scancode::F2 = 59,
  Scancode::F3 = 60,
  Scancode::F4 = 61,
  Scancode::F5 = 62,
  Scancode::F6 = 63,
  Scancode::F7 = 64,
  Scancode::F8 = 65,
  Scancode::F9 = 66,
  Scancode::F10 = 67,
  Scancode::F11 = 68,
  Scancode::F12 = 69,
  Scancode::PrintScreen = 70,
  Scancode::ScrollLock = 71,
  Scancode::Pause = 72,
  Scancode::Insert = 73,
  Scancode::Home = 74,
  Scancode::PageUp = 75,
  Scancode::Delete = 76,
  Scancode::End = 77,
  Scancode::PageDown = 78,
  Scancode::Right = 79,
  Scancode::Left = 80,
  Scancode::Down = 81,
  Scancode::Up = 82,
  Scancode::NumLockClear = 83,
  Scancode::NumpadDivide = 84,
  Scancode::NumpadMultiply = 85,
  Scancode::NumpadMinus = 86,
  Scancode::NumpadPlus = 87,
  Scancode::NumpadEnter = 88,
  Scancode::Numpad1 = 89,
  Scancode::Numpad2 = 90,
  Scancode::Numpad3 = 91,
  Scancode::Numpad4 = 92,
  Scancode::Numpad5 = 93,
  Scancode::Numpad6 = 94,
  Scancode::Numpad7 = 95,
  Scancode::Numpad8 = 96,
  Scancode::Numpad9 = 97,
  Scancode::Numpad0 = 98,
  Scancode::NumpadPeriod = 99,
  Scancode::NonUsBackslash = 100,
  Scancode::Application = 101,
  Scancode::Power = 102,
  Scancode::NumpadEquals = 103,
  Scancode::F13 = 104,
  Scancode::F14 = 105,
  Scancode::F15 = 106,
  Scancode::F16 = 107,
  Scancode::F17 = 108,
  Scancode::F18 = 109,
  Scancode::F19 = 110,
  Scancode::F20 = 111,
  Scancode::F21 = 112,
  Scancode::F22 = 113,
  Scancode::F23 = 114,
  Scancode::F24 = 115,
  Scancode::Execute = 116,
  Scancode::Help = 117,
  Scancode::Menu = 118,
  Scancode::Select = 119,
  Scancode::Stop = 120,
  Scancode::Again = 121,
  Scancode::Undo = 122,
  Scancode::Cut = 123,
  Scancode::Copy = 124,
  Scancode::Paste = 125,
  Scancode::Find = 126,
  Scancode::Mute = 127,
  Scancode::VolumeUp = 128,
  Scancode::VolumeDown = 129,
  Scancode::NumpadComma = 133,
  Scancode::NumpadEqualsAs400 = 134,
  Scancode::International1 = 135,
  Scancode::International2 = 136,
  Scancode::International3 = 137,
  Scancode::International4 = 138,
  Scancode::International5 = 139,
  Scancode::International6 = 140,
  Scancode::International7 = 141,
  Scancode::International8 = 142,
  Scancode::International9 = 143,
  Scancode::Lang1 = 144,
  Scancode::Lang2 = 145,
  Scancode::Lang3 = 146,
  Scancode::Lang4 = 147,
  Scancode::Lang5 = 148,
  Scancode::Lang6 = 149,
  Scancode::Lang7 = 150,
  Scancode::Lang8 = 151,
  Scancode::Lang9 = 152,
  Scancode::AltErase = 153,
  Scancode::SysReq = 154,
  Scancode::Cancel = 155,
  Scancode::Clear = 156,
  Scancode::Prior = 157,
  Scancode::Return2 = 158,
  Scancode::Separator = 159,
  Scancode::Out = 160,
  Scancode::Oper = 161,
  Scancode::ClearAgain = 162,
  Scancode::CrSel = 163,
  Scancode::ExSel = 164,
  Scancode::Numpad00 = 176,
  Scancode::Numpad000 = 177,
  Scancode::ThousandsSeparator = 178,
  Scancode::DecimalSeparator = 179,
  Scancode::CurrencyUnit = 180,
  Scancode::CurrencySubUnit = 181,
  Scancode::NumpadLeftParen = 182,
  Scancode::NumpadRightParen = 183,
  Scancode::NumpadLeftBrace = 184,
  Scancode::NumpadRightBrace = 185,
  Scancode::NumpadTab = 186,
  Scancode::NumpadBackspace = 187,
  Scancode::NumpadA = 188,
  Scancode::NumpadB = 189,
  Scancode::NumpadC = 190,
  Scancode::NumpadD = 191,
  Scancode::NumpadE = 192,
  Scancode::NumpadF = 193,
  Scancode::NumpadXor = 194,
  Scancode::NumpadPower = 195,
  Scancode::NumpadPercent = 196,
  Scancode::NumpadLess = 197,
  Scancode::NumpadGreater = 198,
  Scancode::NumpadAmpersand = 199,
  Scancode::NumpadDblAmpersand = 200,
  Scancode::NumpadVerticalBar = 201,
  Scancode::NumpadDblVerticalBar = 202,
  Scancode::NumpadColon = 203,
  Scancode::NumpadHash = 204,
  Scancode::NumpadSpace = 205,
  Scancode::NumpadAt = 206,
  Scancode::NumpadExclam = 207,
  Scancode::NumpadMemStore = 208,
  Scancode::NumpadMemRecall = 209,
  Scancode::NumpadMemClear = 210,
  Scancode::NumpadMemAdd = 211,
  Scancode::NumpadMemSubtract = 212,
  Scancode::NumpadMemMultiply = 213,
  Scancode::NumpadMemDivide = 214,
  Scancode::NumpadPlusMinus = 215,
  Scancode::NumpadClear = 216,
  Scancode::NumpadClearEntry = 217,
  Scancode::NumpadBinary = 218,
  Scancode::NumpadOctal = 219,
  Scancode::NumpadDecimal = 220,
  Scancode::NumpadHexadecimal = 221,
  Scancode::LeftCtrl = 224,
  Scancode::LeftShift = 225,
  Scancode::LeftAlt = 226,
  Scancode::LeftGui = 227,
  Scancode::RightCtrl = 228,
  Scancode::RightShift = 229,
  Scancode::RightAlt = 230,
  Scancode::RightGui = 231,
  Scancode::Mode = 257
}
 Scancodes. More...
 
enum  Keycode : int {
  Keycode::Unknown = 0,
  Keycode::Return = '\r',
  Keycode::Escape = '\033',
  Keycode::Backspace = '\b',
  Keycode::Tab = '\t',
  Keycode::Space = ' ',
  Keycode::Exclaim = '!',
  Keycode::QuoteDbl = '"',
  Keycode::Hash = '#',
  Keycode::Percent = '',
  Keycode::Dollar = '$',
  Keycode::Ampersand = '&',
  Keycode::Quote = '\'',
  Keycode::LeftParen = '(',
  Keycode::RightParen = ')',
  Keycode::Asterisk = '*',
  Keycode::Plus = '+',
  Keycode::Comma = ',',
  Keycode::Minus = '-',
  Keycode::Period = '.',
  Keycode::Slash = '/',
  Keycode::Num0 = '0',
  Keycode::Num1 = '1',
  Keycode::Num2 = '2',
  Keycode::Num3 = '3',
  Keycode::Num4 = '4',
  Keycode::Num5 = '5',
  Keycode::Num6 = '6',
  Keycode::Num7 = '7',
  Keycode::Num8 = '8',
  Keycode::Num9 = '9',
  Keycode::Colon = ':',
  Keycode::SemiColon = ';',
  Keycode::Less = '<',
  Keycode::Equals = '=',
  Keycode::Greater = '>',
  Keycode::Question = '?',
  Keycode::At = '@',
  Keycode::LeftBracket = '[',
  Keycode::Backslash = '\\',
  Keycode::RightBracket = ']',
  Keycode::Caret = '^',
  Keycode::Underscore = '_',
  Keycode::Backquote = '`',
  Keycode::A = 'a',
  Keycode::B = 'b',
  Keycode::C = 'c',
  Keycode::D = 'd',
  Keycode::E = 'e',
  Keycode::F = 'f',
  Keycode::G = 'g',
  Keycode::H = 'h',
  Keycode::I = 'i',
  Keycode::J = 'j',
  Keycode::K = 'k',
  Keycode::L = 'l',
  Keycode::M = 'm',
  Keycode::N = 'n',
  Keycode::O = 'o',
  Keycode::P = 'p',
  Keycode::Q = 'q',
  Keycode::R = 'r',
  Keycode::S = 's',
  Keycode::T = 't',
  Keycode::U = 'u',
  Keycode::V = 'v',
  Keycode::W = 'w',
  Keycode::X = 'x',
  Keycode::Y = 'y',
  Keycode::Z = 'z',
  Keycode::CapsLock = getKeycodeFromScancode(Scancode::CapsLock),
  Keycode::F1 = getKeycodeFromScancode(Scancode::F1),
  Keycode::F2 = getKeycodeFromScancode(Scancode::F2),
  Keycode::F3 = getKeycodeFromScancode(Scancode::F3),
  Keycode::F4 = getKeycodeFromScancode(Scancode::F4),
  Keycode::F5 = getKeycodeFromScancode(Scancode::F5),
  Keycode::F6 = getKeycodeFromScancode(Scancode::F6),
  Keycode::F7 = getKeycodeFromScancode(Scancode::F7),
  Keycode::F8 = getKeycodeFromScancode(Scancode::F8),
  Keycode::F9 = getKeycodeFromScancode(Scancode::F9),
  Keycode::F10 = getKeycodeFromScancode(Scancode::F10),
  Keycode::F11 = getKeycodeFromScancode(Scancode::F11),
  Keycode::F12 = getKeycodeFromScancode(Scancode::F12),
  Keycode::PrintScreen = getKeycodeFromScancode(Scancode::PrintScreen),
  Keycode::ScrollLock = getKeycodeFromScancode(Scancode::ScrollLock),
  Keycode::Pause = getKeycodeFromScancode(Scancode::Pause),
  Keycode::Insert = getKeycodeFromScancode(Scancode::Insert),
  Keycode::Home = getKeycodeFromScancode(Scancode::Home),
  Keycode::PageUp = getKeycodeFromScancode(Scancode::PageUp),
  Keycode::Delete = '\177',
  Keycode::End = getKeycodeFromScancode(Scancode::End),
  Keycode::PageDown = getKeycodeFromScancode(Scancode::PageDown),
  Keycode::Right = getKeycodeFromScancode(Scancode::Right),
  Keycode::Left = getKeycodeFromScancode(Scancode::Left),
  Keycode::Down = getKeycodeFromScancode(Scancode::Down),
  Keycode::Up = getKeycodeFromScancode(Scancode::Up),
  Keycode::NumLockClear = getKeycodeFromScancode(Scancode::NumLockClear),
  Keycode::NumpadDivide = getKeycodeFromScancode(Scancode::NumpadDivide),
  Keycode::NumpadMultiply = getKeycodeFromScancode(Scancode::NumpadMultiply),
  Keycode::NumpadMinus = getKeycodeFromScancode(Scancode::NumpadMinus),
  Keycode::NumpadPlus = getKeycodeFromScancode(Scancode::NumpadPlus),
  Keycode::NumpadEnter = getKeycodeFromScancode(Scancode::NumpadEnter),
  Keycode::Numpad1 = getKeycodeFromScancode(Scancode::Numpad1),
  Keycode::Numpad2 = getKeycodeFromScancode(Scancode::Numpad2),
  Keycode::Numpad3 = getKeycodeFromScancode(Scancode::Numpad3),
  Keycode::Numpad4 = getKeycodeFromScancode(Scancode::Numpad4),
  Keycode::Numpad5 = getKeycodeFromScancode(Scancode::Numpad5),
  Keycode::Numpad6 = getKeycodeFromScancode(Scancode::Numpad6),
  Keycode::Numpad7 = getKeycodeFromScancode(Scancode::Numpad7),
  Keycode::Numpad8 = getKeycodeFromScancode(Scancode::Numpad8),
  Keycode::Numpad9 = getKeycodeFromScancode(Scancode::Numpad9),
  Keycode::Numpad0 = getKeycodeFromScancode(Scancode::Numpad0),
  Keycode::NumpadPeriod = getKeycodeFromScancode(Scancode::NumpadPeriod),
  Keycode::Application = getKeycodeFromScancode(Scancode::Application),
  Keycode::Power = getKeycodeFromScancode(Scancode::Power),
  Keycode::NumpadEquals = getKeycodeFromScancode(Scancode::NumpadEquals),
  Keycode::F13 = getKeycodeFromScancode(Scancode::F13),
  Keycode::F14 = getKeycodeFromScancode(Scancode::F14),
  Keycode::F15 = getKeycodeFromScancode(Scancode::F15),
  Keycode::F16 = getKeycodeFromScancode(Scancode::F16),
  Keycode::F17 = getKeycodeFromScancode(Scancode::F17),
  Keycode::F18 = getKeycodeFromScancode(Scancode::F18),
  Keycode::F19 = getKeycodeFromScancode(Scancode::F19),
  Keycode::F20 = getKeycodeFromScancode(Scancode::F20),
  Keycode::F21 = getKeycodeFromScancode(Scancode::F21),
  Keycode::F22 = getKeycodeFromScancode(Scancode::F22),
  Keycode::F23 = getKeycodeFromScancode(Scancode::F23),
  Keycode::F24 = getKeycodeFromScancode(Scancode::F24),
  Keycode::Execute = getKeycodeFromScancode(Scancode::Execute),
  Keycode::Help = getKeycodeFromScancode(Scancode::Help),
  Keycode::Menu = getKeycodeFromScancode(Scancode::Menu),
  Keycode::Select = getKeycodeFromScancode(Scancode::Select),
  Keycode::Stop = getKeycodeFromScancode(Scancode::Stop),
  Keycode::Again = getKeycodeFromScancode(Scancode::Again),
  Keycode::Undo = getKeycodeFromScancode(Scancode::Undo),
  Keycode::Cut = getKeycodeFromScancode(Scancode::Cut),
  Keycode::Copy = getKeycodeFromScancode(Scancode::Copy),
  Keycode::Paste = getKeycodeFromScancode(Scancode::Paste),
  Keycode::Find = getKeycodeFromScancode(Scancode::Find),
  Keycode::Mute = getKeycodeFromScancode(Scancode::Mute),
  Keycode::VolumeUp = getKeycodeFromScancode(Scancode::VolumeUp),
  Keycode::VolumeDown = getKeycodeFromScancode(Scancode::VolumeDown),
  Keycode::NumpadComma = getKeycodeFromScancode(Scancode::NumpadComma),
  Keycode::NumpadEqualsAs400 = getKeycodeFromScancode(Scancode::NumpadEqualsAs400),
  Keycode::AltErase = getKeycodeFromScancode(Scancode::AltErase),
  Keycode::SysReq = getKeycodeFromScancode(Scancode::SysReq),
  Keycode::Cancel = getKeycodeFromScancode(Scancode::Cancel),
  Keycode::Clear = getKeycodeFromScancode(Scancode::Clear),
  Keycode::Prior = getKeycodeFromScancode(Scancode::Prior),
  Keycode::Return2 = getKeycodeFromScancode(Scancode::Return2),
  Keycode::Separator = getKeycodeFromScancode(Scancode::Separator),
  Keycode::Out = getKeycodeFromScancode(Scancode::Out),
  Keycode::Oper = getKeycodeFromScancode(Scancode::Oper),
  Keycode::ClearAgain = getKeycodeFromScancode(Scancode::ClearAgain),
  Keycode::CrSel = getKeycodeFromScancode(Scancode::CrSel),
  Keycode::ExSel = getKeycodeFromScancode(Scancode::ExSel),
  Keycode::Numpad00 = getKeycodeFromScancode(Scancode::Numpad00),
  Keycode::Numpad000 = getKeycodeFromScancode(Scancode::Numpad000),
  Keycode::ThousandsSeparator = getKeycodeFromScancode(Scancode::ThousandsSeparator),
  Keycode::DecimalSeparator = getKeycodeFromScancode(Scancode::DecimalSeparator),
  Keycode::CurrencyUnit = getKeycodeFromScancode(Scancode::CurrencyUnit),
  Keycode::CurrencySubUnit = getKeycodeFromScancode(Scancode::CurrencySubUnit),
  Keycode::NumpadLeftParen = getKeycodeFromScancode(Scancode::NumpadLeftParen),
  Keycode::NumpadRightParen = getKeycodeFromScancode(Scancode::NumpadRightParen),
  Keycode::NumpadLeftBrace = getKeycodeFromScancode(Scancode::NumpadLeftBrace),
  Keycode::NumpadRightBrace = getKeycodeFromScancode(Scancode::NumpadRightBrace),
  Keycode::NumpadTab = getKeycodeFromScancode(Scancode::NumpadTab),
  Keycode::NumpadBackspace = getKeycodeFromScancode(Scancode::NumpadBackspace),
  Keycode::NumpadA = getKeycodeFromScancode(Scancode::NumpadA),
  Keycode::NumpadB = getKeycodeFromScancode(Scancode::NumpadB),
  Keycode::NumpadC = getKeycodeFromScancode(Scancode::NumpadC),
  Keycode::NumpadD = getKeycodeFromScancode(Scancode::NumpadD),
  Keycode::NumpadE = getKeycodeFromScancode(Scancode::NumpadE),
  Keycode::NumpadF = getKeycodeFromScancode(Scancode::NumpadF),
  Keycode::NumpadXor = getKeycodeFromScancode(Scancode::NumpadXor),
  Keycode::NumpadPower = getKeycodeFromScancode(Scancode::NumpadPower),
  Keycode::NumpadPercent = getKeycodeFromScancode(Scancode::NumpadPercent),
  Keycode::NumpadLess = getKeycodeFromScancode(Scancode::NumpadLess),
  Keycode::NumpadGreater = getKeycodeFromScancode(Scancode::NumpadGreater),
  Keycode::NumpadAmpersand = getKeycodeFromScancode(Scancode::NumpadAmpersand),
  Keycode::NumpadDblAmpersand = getKeycodeFromScancode(Scancode::NumpadDblAmpersand),
  Keycode::NumpadVerticalBar = getKeycodeFromScancode(Scancode::NumpadVerticalBar),
  Keycode::NumpadDblVerticalbar = getKeycodeFromScancode(Scancode::NumpadDblVerticalBar),
  Keycode::NumpadColon = getKeycodeFromScancode(Scancode::NumpadColon),
  Keycode::NumpadHash = getKeycodeFromScancode(Scancode::NumpadHash),
  Keycode::NumpadSpace = getKeycodeFromScancode(Scancode::NumpadSpace),
  Keycode::NumpadAt = getKeycodeFromScancode(Scancode::NumpadAt),
  Keycode::NumpadExclam = getKeycodeFromScancode(Scancode::NumpadExclam),
  Keycode::NumpadMemStore = getKeycodeFromScancode(Scancode::NumpadMemStore),
  Keycode::NumpadMemRecall = getKeycodeFromScancode(Scancode::NumpadMemRecall),
  Keycode::NumpadMemClear = getKeycodeFromScancode(Scancode::NumpadMemClear),
  Keycode::NumpadMemAdd = getKeycodeFromScancode(Scancode::NumpadMemAdd),
  Keycode::NumpadMemSubtract = getKeycodeFromScancode(Scancode::NumpadMemSubtract),
  Keycode::NumpadMemMultiply = getKeycodeFromScancode(Scancode::NumpadMemMultiply),
  Keycode::NumpadMemDivide = getKeycodeFromScancode(Scancode::NumpadMemDivide),
  Keycode::NumpadPlusMinus = getKeycodeFromScancode(Scancode::NumpadPlusMinus),
  Keycode::NumpadClear = getKeycodeFromScancode(Scancode::NumpadClear),
  Keycode::NumpadClearEntry = getKeycodeFromScancode(Scancode::NumpadClearEntry),
  Keycode::NumpadBinary = getKeycodeFromScancode(Scancode::NumpadBinary),
  Keycode::NumpadOctal = getKeycodeFromScancode(Scancode::NumpadOctal),
  Keycode::NumpadDecimal = getKeycodeFromScancode(Scancode::NumpadDecimal),
  Keycode::NumpadHexadecimal = getKeycodeFromScancode(Scancode::NumpadHexadecimal),
  Keycode::LeftCtrl = getKeycodeFromScancode(Scancode::LeftCtrl),
  Keycode::LeftShift = getKeycodeFromScancode(Scancode::LeftShift),
  Keycode::LeftAlt = getKeycodeFromScancode(Scancode::LeftAlt),
  Keycode::LeftGui = getKeycodeFromScancode(Scancode::LeftGui),
  Keycode::RightCtrl = getKeycodeFromScancode(Scancode::RightCtrl),
  Keycode::RightShift = getKeycodeFromScancode(Scancode::RightShift),
  Keycode::RightAlt = getKeycodeFromScancode(Scancode::RightAlt),
  Keycode::RightGui = getKeycodeFromScancode(Scancode::RightGui),
  Keycode::Mode = getKeycodeFromScancode(Scancode::Mode)
}
 Keycodes. More...
 
enum  MessageStatus {
  MessageStatus::Keep,
  MessageStatus::Die
}
 A message status. More...
 
enum  MouseButton {
  MouseButton::Left,
  MouseButton::Middle,
  MouseButton::Right,
  MouseButton::XButton1,
  MouseButton::XButton2
}
 Mouse buttons. More...
 
enum  PrimitiveType {
  PrimitiveType::Points,
  PrimitiveType::LineStrip,
  PrimitiveType::LineLoop,
  PrimitiveType::Lines,
  PrimitiveType::TriangleStrip,
  PrimitiveType::TriangleFan,
  PrimitiveType::Triangles
}
 Kind of primitives to render. More...
 
enum  Anchor {
  Anchor::Center,
  Anchor::TopLeft,
  Anchor::TopRight,
  Anchor::BottomLeft,
  Anchor::BottomRight
}
 The origin anchor of the transformable object. More...
 

Functions

constexpr Id hash (const char *str, std::size_t sz)
 Get an identifier from a string. More...
 
Id hash (const std::string &str)
 Get an idenfitier from a string. More...
 
template<typename T >
constexpr T linearStep (T t)
 Linear step. More...
 
template<typename T >
constexpr T cubicStep (T t)
 Cubic step (smoothstep) More...
 
template<typename T >
constexpr T quinticStep (T t)
 Quintic step (smootherstep) More...
 
template<typename T >
cosineStep (T t)
 Cosine step. More...
 
template<typename T , typename U >
lerp (T lhs, T rhs, U t)
 Linear interpolation function. More...
 
template<typename T >
constexpr T clamp (T val, T lo, T hi)
 Clamping function. More...
 
template<typename T >
constexpr T square (T val)
 Square function. More...
 
Vector2f transform (const Matrix3f &mat, Vector2f point)
 Apply an affine transformation to a 2D point. More...
 
RectF transform (const Matrix3f &mat, const RectF &rect)
 Apply an affine transformaton to a rectangle. More...
 
Matrix3f translation (Vector2f offset)
 Get a translation matrix. More...
 
void translate (Matrix3f &mat, Vector2f offset)
 Combine the current transform with a translation. More...
 
Matrix3f rotation (float angle)
 Get a rotation matrix. More...
 
Matrix3f rotation (float angle, Vector2f center)
 Get a rotation matrix. More...
 
void rotate (Matrix3f &mat, float angle)
 Combine the current transform with a rotation. More...
 
void rotate (Matrix3f &mat, float angle, Vector2f center)
 Combine the current transform with a rotation. More...
 
Matrix3f scaling (Vector2f factor)
 Get a scaling matrix. More...
 
Matrix3f scaling (Vector2f factor, Vector2f center)
 Get a scaling matrix. More...
 
void scale (Matrix3f &mat, Vector2f factor)
 Combine the current transform with a scaling. More...
 
void scale (Matrix3f &mat, Vector2f factor, Vector2f center)
 Combine the current transform with a scaling. More...
 

Variables

constexpr BlendMode BlendAlpha
 Alpha blend mode. More...
 
constexpr BlendMode BlendAdd
 Additive blend mode. More...
 
constexpr BlendMode BlendMultiply
 Multiplicative blend mode. More...
 
constexpr BlendMode BlendNone
 No blend mode. More...
 
constexpr Id InvalidId = 0
 The invalid id (which is 0) More...
 
constexpr float Pi = 3.14159265358979323846f
 The \( \pi \) constant. More...
 
constexpr float Pi2 = Pi / 2
 The \( \frac{\pi}{2} \) constant. More...
 
constexpr float Pi4 = Pi / 4
 The \( \frac{\pi}{4} \) constant. More...
 
constexpr float Sqrt2 = 1.41421356237309504880f
 The \( \sqrt{2} \) constant. More...
 
constexpr float InvSqrt2 = 1 / Sqrt2
 The \( \frac{1}{\sqrt{2}} \) constant. More...