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

The namespace for gf classes. More...

Namespaces

 literals
 The namespace for literals.
 

Classes

class  Action
 An action that can be triggered by different controls. More...
 
class  ActionContainer
 A set of actions. More...
 
class  Activity
 A game activity. 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  Bresenham
 State for the Bresenham's line algorithm. More...
 
class  BufferedGeometry
 A drawable for buffers. More...
 
class  BufferRef
 A reference to a modifiable buffer and its size. More...
 
class  CallbackActivity
 An activity for calling a function once. More...
 
struct  Circ
 Utility class for manipulating circles. More...
 
class  CircleGeometry
 A circle physics geometry. 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  ColorActivity
 An activity for a change of color. 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  Coordinates
 Helper to compute coordinates in HUD. 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  DelayActivity
 An activity to wait for a predefined duration. More...
 
class  Drawable
 Abstract base class for objects that can be drawn to a render window. More...
 
class  Ease
 Predefined easing functions. 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  FixedTimestepModel
 Fixed timestep model. 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  GraphicsInfo
 A class for graphics info. 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...
 
class  Logo
 The gf logo. 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  MoveToActivity
 An activity for a change of position. 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...
 
class  Noise3DTo2DAdapter
 An adapter that make a 2D noise from a 3D noise. More...
 
struct  NoneType
 Semantic type to represent "none". More...
 
class  OpenSimplexNoise2D
 OpenSimplex 2D noise. More...
 
class  OpenSimplexNoise3D
 OpenSimplex3D noise. More...
 
class  ParallelActivity
 An activity to run several activities in parallel. More...
 
struct  Paths
 Special paths. More...
 
struct  Penetration
 Data about the collision between two objects. More...
 
class  PerlinNoise2D
 Perlin 2D noise. More...
 
class  PerlinNoise3D
 Perlin 3D noise. More...
 
class  PhysicsBody
 A physics body. More...
 
class  PhysicsGeometry
 The geometry of a physics body. More...
 
class  PhysicsModel
 A model for physics simulation. More...
 
class  PointParticles
 A class to display a high number of points. More...
 
class  Polygon
 A convex polygon. More...
 
class  PolygonGeometry
 A polygon physics geometry. More...
 
class  Polyline
 A polyline. 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...
 
struct  Region
 A region of a window. 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  RepeatActivity
 An activity to run an activity several times. More...
 
class  ResourceCache
 A generic cache for resources. More...
 
class  ResourceManager
 A resource manager. More...
 
class  RidgedMultifractal2D
 Ridged Multifractal 2D noise. More...
 
class  RotateToActivity
 An activity for a change of angle. More...
 
struct  Rotation
 A rotation. More...
 
class  RoundedRectangleShape
 Specialized shape representing a rounded rectangle. More...
 
struct  Rune
 A character encoded in UTF-8. More...
 
class  ScancodeKeyControl
 A key control based on scancode. More...
 
class  ScreenView
 Screen view. More...
 
class  SequenceActivity
 An activity to run several activities sequentially. More...
 
class  Shader
 An OpenGL vertex and/or fragment shader. More...
 
class  Shape
 Base class for textured shapes with outline. More...
 
class  ShapeParticles
 A class to display a high number of small simple shapes. 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  SpriteParticles
 A class to display a high number of sprites. More...
 
class  SquareGrid
 A square grid. 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...
 
struct  Transform
 A simple transformation (rotation then translation) More...
 
class  Transformable
 Decomposed transform defined by a position, a rotation and a scale. More...
 
struct  Translation
 A translation. More...
 
class  Tween
 An interpolation between two values. More...
 
class  UI
 Context for an immediate mode graphical interface. More...
 
struct  UIBrowser
 Data for file selector. More...
 
struct  UIEditType
 Predefined flags for edit. More...
 
class  ValueActivity
 An activity for a simple float value. 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  WorleyNoise2D
 Worley 2D noise. More...
 
class  ZoomingViewAdaptor
 A view adaptor for zooming/moving with the mouse. 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 Easing = float(*)(float)
 An easing function. More...
 
using Id = uint64_t
 An identifier. More...
 
using Modifiers = Flags< Mod >
 Flags for 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 Path = boost::filesystem::path
 A path in the filesystem. 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 = Vector2u
 State for scrollbar in groups. More...
 
using UIEditFlags = Flags< UIEdit >
 Flags composed of edit properties. More...
 
using UIEditEventFlags = Flags< UIEditEvent >
 Flags composed of edit events properties. 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(*)(Vector< T, N >, 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  ActivityStatus {
  ActivityStatus::Running,
  ActivityStatus::Finished
}
 Status of an activity. More...
 
enum  Alignment {
  Alignment::None,
  Alignment::Left,
  Alignment::Right,
  Alignment::Center,
  Alignment::Justify
}
 The alignement of a text. More...
 
enum  Anchor {
  Anchor::TopLeft,
  Anchor::TopCenter,
  Anchor::TopRight,
  Anchor::CenterLeft,
  Anchor::Center,
  Anchor::CenterRight,
  Anchor::BottomLeft,
  Anchor::BottomCenter,
  Anchor::BottomRight
}
 An anchor of a box. 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,
  EventType::TextEntered
}
 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,
  MouseButton::Other
}
 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  Winding {
  Winding::Clockwise,
  Winding::Counterclockwise
}
 The direction of a polygon's rotation. More...
 
enum  PrimitiveType {
  PrimitiveType::Points,
  PrimitiveType::LineStrip,
  PrimitiveType::LineLoop,
  PrimitiveType::Lines,
  PrimitiveType::TriangleStrip,
  PrimitiveType::TriangleFan,
  PrimitiveType::Triangles
}
 Kind of primitives to render. 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,
  UIWindow::ScaleLeft = 0x0200,
  UIWindow::NoInput = 0x0400
}
 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  UIEdit : uint32_t {
  UIEdit::Default = 0x0000,
  UIEdit::ReadOnly = 0x0001,
  UIEdit::AutoSelect = 0x0002,
  UIEdit::SigEnter = 0x0004,
  UIEdit::AllowTab = 0x0008,
  UIEdit::NoCursor = 0x0010,
  UIEdit::Selectable = 0x0020,
  UIEdit::Clipboard = 0x0040,
  UIEdit::CtrlEnterNewline = 0x0080,
  UIEdit::NoHorizontalScroll = 0x0100,
  UIEdit::AlwaysInsertMode = 0x0200,
  UIEdit::Multiline = 0x0400,
  UIEdit::GotoEndOnActivate = 0x0800
}
 Properties for edit widgets. More...
 
enum  UIEditEvent : uint32_t {
  UIEditEvent::Active = 0x0001,
  UIEditEvent::Inactive = 0x0002,
  UIEditEvent::Activated = 0x0004,
  UIEditEvent::Deactivated = 0x0008,
  UIEditEvent::Commited = 0x0010
}
 Properties for edit events. More...
 
enum  UIEditFilter {
  UIEditFilter::Default,
  UIEditFilter::Ascii,
  UIEditFilter::Float,
  UIEditFilter::Decimal,
  UIEditFilter::Hex,
  UIEditFilter::Oct,
  UIEditFilter::Binary
}
 Filters for edit. 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...
 
std::vector< Vector2igenerateLine (Vector2i p0, Vector2i p1)
 Generate a line between two positions. More...
 
std::vector< Vector2fmidpointDisplacement1D (Vector2f p0, Vector2f p1, Random &random, unsigned iterations, Vector2f direction, float initialFactor=1.0f, float reductionFactor=0.5f)
 1D midpoint displacement More...
 
std::vector< Vector2fmidpointDisplacement1D (Vector2f p0, Vector2f p1, Random &random, unsigned iterations, float initialFactor=1.0f, float reductionFactor=0.5f)
 1D midpoint displacement 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 >
bool almostEquals (T a, T b, T epsilon=std::numeric_limits< T >::epsilon())
 Compare two floats. More...
 
constexpr float degreesToRadians (float degrees)
 Convert degrees to radians. More...
 
constexpr float radiansToDegrees (float radians)
 Convert radians to degrees. 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...
 
template<typename T >
constexpr int sign (T val)
 Sign function. More...
 
template<typename T >
constexpr T absdiff (T lhs, T rhs)
 Absolute difference of two values. 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...
 
void sleep (Time duration)
 Make the current thread sleep for a given duration. More...
 
std::string niceNum (float num, float precision)
 Create a string representation of a floating point number. More...
 
std::u32string computeUnicodeString (const std::string &str)
 Compute a UTF-32 string from a UTF-8 string. More...
 
constexpr 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...
 
template<typename... Args>
void unused (Args &&...)
 A simple way to avoid warnings about unused variables. 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 float Sqrt3 = 1.7320508075688772935f
 The \( \sqrt{3} \) constant. More...
 
constexpr float Epsilon = std::numeric_limits<float>::epsilon()
 Machine epsilon. More...
 
constexpr NoneType None = { }
 Constant to represent "none". More...
 
constexpr AllType All = { }
 Constant to represent "all". More...
 

Detailed Description

The namespace for gf classes.