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

Namespaces

 literals
 

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...
 
struct  AllType
 Semantic type to represent "all". 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  ArrayRef
 A constant reference to an array and its size. More...
 
class  AssetManager
 An asset manager. More...
 
class  BareTexture
 An image that lives in the graphic memory that can be used for drawing. More...
 
class  BetterGradientNoise2D
 Better gradient 2D noise. More...
 
struct  BlendMode
 Blending modes for drawing. More...
 
class  BufferedGeometry
 A drawable for buffers. More...
 
struct  Circ
 Utility class for manipulating circles. 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  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  Flags
 Bitfield relying on an enumeration. More...
 
class  Font
 A character font. More...
 
class  FractalNoise2D
 Fractal 2D noise. More...
 
class  FractalNoise3D
 Fractal 3D 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  GradientNoise2D
 Gradient 2D noise. More...
 
class  GradientNoise3D
 Gradient 3D noise. More...
 
class  HeteroTerrain2D
 Hetero Terrain 2D noise. More...
 
class  HybridMultifractal2D
 Hybrid Multifractal 2D 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...
 
class  Monitor
 A monitor. More...
 
class  MouseButtonControl
 A mouse button control. More...
 
class  Multifractal2D
 Multi Fractal 2D noise. More...
 
class  NinePatch
 A nine-patch. More...
 
class  Noise2D
 2D A noise function More...
 
class  Noise3D
 3D A noise function More...
 
struct  NoneType
 Semantic type to represent "none". More...
 
class  OpenSimplexNoise2D
 OpenSimplex 2D noise. More...
 
class  OpenSimplexNoise3D
 OpenSimplex3D noise. More...
 
struct  Penetration
 Data about the collision between two objects. More...
 
class  PerlinNoise2D
 Perlin 2D noise. More...
 
class  PerlinNoise3D
 Perlin 3D noise. More...
 
class  Polygon
 A convex polygon. 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 resources. More...
 
class  ResourceManager
 A resource manager. More...
 
class  RidgedMultifractal2D
 Ridged Multifractal 2D noise. 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  SimplexNoise2D
 Simplex 2D 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  StringRef
 A constant reference to a string and its size. 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...
 
class  UI
 Context for an immediate mode graphical interface. More...
 
class  ValueNoise2D
 Value 2D noise. 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  WaveletNoise3D
 Wavelet 3D noise. More...
 
class  Window
 An OS window. More...
 
class  WindowGeometryTracker
 A window geometry tracker. More...
 
class  WorleyNoise2D
 Worley 2D noise. More...
 

Typedefs

using CircF = Circ< float >
 A float circle. More...
 
using CircI = Circ< int >
 A int circle. More...
 
using CircU = Circ< unsigned >
 A unsigned circle. More...
 
using CircZ = Circ< std::size_t >
 A std::size_t circle. More...
 
using Path = boost::filesystem::path
 A path in the filesystem. More...
 
using Id = uint64_t
 An identifier. More...
 
using Modifiers = Flags< Mod >
 Keyboard modifiers. More...
 
template<typename T >
using Step = T(*)(T)
 A step is a function with special features. More...
 
using Matrix2f = Matrix< float, 2, 2 >
 A float square matrix of size 2. More...
 
using Matrix3f = Matrix< float, 3, 3 >
 A float square matrix of size 3. More...
 
using Matrix4f = Matrix< float, 4, 4 >
 A float square matrix of size 4. More...
 
using MessageHandler = std::function< MessageStatus(Id, Message *)>
 A message handler. More...
 
using MessageHandlerId = uint64_t
 An identifier for a message handler. More...
 
using RangeF = Range< float >
 A float range. More...
 
using RangeI = Range< int >
 A int range. More...
 
using RangeU = Range< unsigned >
 A unsigned range. More...
 
using RangeZ = Range< std::size_t >
 A std::size_t range. More...
 
using RectF = Rect< float >
 A float rectangle. More...
 
using RectI = Rect< int >
 A int rectangle. More...
 
using RectU = Rect< unsigned >
 A unsigned rectangle. More...
 
using RectZ = Rect< std::size_t >
 A std::size_t rectangle. More...
 
using UIWindowFlags = Flags< UIWindow >
 Flags composed of window properties. More...
 
using UIScroll = Vector< unsigned short, 2 >
 State for scrollbar in groups. More...
 
using Vector2f = Vector< float, 2 >
 A float vector with 2 components. More...
 
using Vector3f = Vector< float, 3 >
 A float vector with 3 components. More...
 
using Vector4f = Vector< float, 4 >
 A float vector with 4 components. More...
 
using Vector2d = Vector< double, 2 >
 A double vector with 2 components. More...
 
using Vector3d = Vector< double, 3 >
 A double vector with 3 components. More...
 
using Vector4d = Vector< double, 4 >
 A double vector with 4 components. More...
 
using Vector2i = Vector< int, 2 >
 A int vector with 2 components. More...
 
using Vector3i = Vector< int, 3 >
 A int vector with 3 components. More...
 
using Vector4i = Vector< int, 4 >
 A int vector with 4 components. More...
 
using Vector2u = Vector< unsigned, 2 >
 A unsigned vector with 2 components. More...
 
using Vector3u = Vector< unsigned, 3 >
 A unsigned vector with 3 components. More...
 
using Vector4u = Vector< unsigned, 4 >
 A unsigned vector with 4 components. More...
 
using Vector2z = Vector< std::size_t, 2 >
 A std::size_t vector with 2 components. More...
 
using Vector3z = Vector< std::size_t, 3 >
 A std::size_t vector with 3 components. More...
 
using Vector4z = Vector< std::size_t, 4 >
 A std::size_t vector with 4 components. More...
 
using Vector2b = Vector< bool, 2 >
 A bool vector with 2 components. More...
 
using Vector3b = Vector< bool, 3 >
 A bool vector with 3 components. More...
 
using Vector4b = Vector< bool, 4 >
 A bool vector with 4 components. More...
 
using Color3f = Vector< float, 3 >
 A float color vector with 3 components. More...
 
using Color4f = Vector< float, 4 >
 A float color vector with 4 components. More...
 
using Color3u = Vector< uint8_t, 3 >
 A uint8_t color vector with 3 components. More...
 
using Color4u = Vector< uint8_t, 4 >
 A uint8_t color vector with 4 components. More...
 
template<typename T , std::size_t N>
using Distance = T(*)(const Vector< T, N > &, const Vector< T, N > &)
 A distance function. More...
 
template<typename T >
using Distance2 = Distance< T, 2 >
 A distance function for 2D vectors. More...
 
template<typename T >
using Distance3 = Distance< T, 3 >
 A distance function for 3D vectors. More...
 
using WindowFlags = Flags< WindowHints >
 Flags for window creation. More...
 

Enumerations

enum  Alignment {
  Alignment::None,
  Alignment::Left,
  Alignment::Right,
  Alignment::Center,
  Alignment::Justify
}
 The alignement of a text. More...
 
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  Direction : int {
  Direction::Center = -1,
  Direction::Up = 0,
  Direction::Right = 1,
  Direction::Down = 2,
  Direction::Left = 3
}
 Main four directions. 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  Mod : unsigned {
  Mod::Shift = 0x0001,
  Mod::Control = 0x0002,
  Mod::Alt = 0x0004,
  Mod::Super = 0x0008
}
 Modifier enumeration. More...
 
enum  Scancode : int {
  Scancode::Unknown = 0,
  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  Orientation : int {
  Orientation::Center = -1,
  Orientation::North = 0,
  Orientation::NorthEast = 1,
  Orientation::East = 2,
  Orientation::SouthEast = 3,
  Orientation::South = 4,
  Orientation::SouthWest = 5,
  Orientation::West = 6,
  Orientation::NorthWest = 7
}
 Cardinal and ordinal orientation. 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::TopLeft,
  Anchor::TopCenter,
  Anchor::TopRight,
  Anchor::CenterLeft,
  Anchor::Center,
  Anchor::CenterRight,
  Anchor::BottomLeft,
  Anchor::BottomCenter,
  Anchor::BottomRight
}
 The origin anchor of the transformable object. More...
 
enum  UIWindow : uint32_t {
  UIWindow::Border = 0x0001,
  UIWindow::Movable = 0x0002,
  UIWindow::Scalable = 0x0004,
  UIWindow::Closable = 0x0008,
  UIWindow::Minimizable = 0x0010,
  UIWindow::NoScrollbar = 0x0020,
  UIWindow::Title = 0x0040,
  UIWindow::ScrollAutoHide = 0x0080,
  UIWindow::Background = 0x0100
}
 Properties for windows and window-like elements. More...
 
enum  UICollapse : bool {
  UICollapse::Minimized = false,
  UICollapse::Maximized = true
}
 Collapse property of a tree. More...
 
enum  UILayout {
  UILayout::Dynamic = 0,
  UILayout::Static = 1
}
 Layout property for rows. More...
 
enum  UITree {
  UITree::Node = 0,
  UITree::Tab = 1
}
 The type of tree. More...
 
enum  UIAlignment {
  UIAlignment::Left = 0x10 | 0x01,
  UIAlignment::Center = 0x10 | 0x02,
  UIAlignment::Right = 0x10 | 0x04
}
 The alignment of the text. More...
 
enum  UIButtonBehavior {
  UIButtonBehavior::Default = 0,
  UIButtonBehavior::Repeater = 1
}
 Behavior for buttons. More...
 
enum  UIProgress : bool {
  UIProgress::Fixed = false,
  UIProgress::Modifyable = true
}
 State of the progress bar. More...
 
enum  UISymbol {
  UISymbol::None,
  UISymbol::X,
  UISymbol::Underscore,
  UISymbol::CircleSolid,
  UISymbol::CircleOutline,
  UISymbol::RectSolid,
  UISymbol::RectOutline,
  UISymbol::TriangleUp,
  UISymbol::TriangleDown,
  UISymbol::TriangleLeft,
  UISymbol::TriangleRight,
  UISymbol::Plus,
  UISymbol::Minus
}
 A representative symbol. More...
 
enum  UIPopup {
  UIPopup::Static = 0,
  UIPopup::Dynamic = 1
}
 Type of popup. More...
 
enum  UIPredefinedStyle {
  UIPredefinedStyle::Default,
  UIPredefinedStyle::White,
  UIPredefinedStyle::Red,
  UIPredefinedStyle::Blue,
  UIPredefinedStyle::Dark
}
 A predefined style. More...
 
enum  WindowHints : uint32_t {
  WindowHints::Resizable = 0x0001,
  WindowHints::Visible = 0x0002,
  WindowHints::Decorated = 0x0004
}
 Hints for window creation. More...
 

Functions

Vector2f unit (Direction direction)
 Get a unit vector from a direction. More...
 
Vector2i displacement (Direction direction)
 Get a vector from a direction. More...
 
float angle (Direction direction)
 Get an angle from a direction. More...
 
Direction opposite (Direction direction)
 Get the opposite direction. More...
 
Direction orthogonalCW (Direction direction)
 Get the orthogonal direction clockwise. More...
 
Direction orthogonalCCW (Direction direction)
 Get the orthogonal direction counter-clockwise. More...
 
Direction nextCW (Direction direction)
 Get the next direction clockwise. More...
 
Direction nextCCW (Direction direction)
 Get the next direction counter-clockwise. More...
 
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 unit (Orientation orientation)
 Get a unit vector from an orientation. More...
 
Vector2i displacement (Orientation orientation)
 Get a vector from an orientation. More...
 
float angle (Orientation orientation)
 Get an angle from a orientation. More...
 
Orientation opposite (Orientation orientation)
 Get the opposite orientation. More...
 
Orientation orthogonalCW (Orientation orientation)
 Get the orthogonal orientation clockwise. More...
 
Orientation orthogonalCCW (Orientation orientation)
 Get the orthogonal orientation counter-clockwise. More...
 
Orientation nextCW (Orientation orientation)
 Get the next orientation clockwise. More...
 
Orientation nextCCW (Orientation orientation)
 Get the next orientation counter-clockwise. 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...
 
constexpr Matrix3f identityTransform ()
 Identity transform. 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...
 
constexpr NoneType None = { }
 Constant to represent "none". More...
 
constexpr AllType All = { }
 Constant to represent "all". More...