Gamedev Framework (gf)  0.10.0
A C++14 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  BasicSprite
 
class  BasicText
 
class  BetterGradientNoise2D
 Better gradient 2D noise. More...
 
class  BitmapConsoleFont
 A bitmap console font. More...
 
struct  BlendMode
 Blending modes for drawing. More...
 
struct  Box
 A multi-dimensional box. 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...
 
class  ChoiceSpriteWidget
 A choice sprite widget. 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  Clipboard
 gf::Clipboard provides an interface for getting and setting the contents of the system clipboard. 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  ColoredConsoleFont
 A colored console font. 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  CompressedInputStream
 Compressed input stream. More...
 
class  CompressedOutputStream
 Compressed output stream. More...
 
class  Console
 A virtual console. More...
 
struct  ConsoleChar
 Named console characters. More...
 
class  ConsoleEffect
 A console effect on the background color. More...
 
class  ConsoleFont
 A console font. More...
 
struct  ConsoleFontElement
 A console font element. More...
 
struct  ConsoleFontFormat
 A console font format. 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  Cursor
 A mouse cursor. 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  Deserializer
 A deserializer from a binary file. 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  EdgeRef
 A reference to an edge (two points) 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  FileOutputStream
 File based output 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...
 
class  GamepadTracker
 A tracker for the connection/disconnection of gamepads. 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  Heightmap
 A heightmap. 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  KonamiGamepadControl
 The Konami code control for gamepad. More...
 
class  KonamiKeyboardControl
 The Konami code control for keyboard. More...
 
class  Library
 A class to represent the library. More...
 
class  Line
 A line. More...
 
class  LockedView
 Locked view. 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...
 
class  MemoryOutputStream
 Memory based output 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  OutputStream
 Abstract class for custom file output streams. 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...
 
struct  PositionRange
 A 2D range. More...
 
class  PostProcessing
 A post-processing drawable. More...
 
struct  PredefinedConsoleFontFormat
 Predefined console font formats. More...
 
class  QuadraticBezierCurve
 A quadratic Bézier curve. More...
 
class  QuadTree
 An implementation of quadtree. More...
 
class  Queue
 A simple concurrent queue. More...
 
class  Random
 A random engine. More...
 
class  RandomBinaryTree
 A random binary space partionning tree. 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  RepeatedSequenceActivity
 A repeated sequence activity. 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...
 
class  RStarTree
 An implemntation of a R* tree. 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  Serializer
 A serializer to a binary file. 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...
 
struct  SpatialStructure
 
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  SpriteWidget
 A widget with a set of sprites. More...
 
class  SquareGrid
 A square grid. More...
 
class  SquareMap
 A square map. 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  TextButtonWidget
 A text within a rounded rectangle widget. More...
 
class  Texture
 A texture for colored images. More...
 
class  TextureAtlas
 A collection of sub-texture. More...
 
class  TextWidget
 A simple text widget. More...
 
class  TileLayer
 A tile layer. More...
 
class  Time
 Represents a time value. More...
 
struct  TmxAnimation
 A tile animation. More...
 
struct  TmxCell
 A cell in a tile layer. More...
 
struct  TmxEllipse
 An ellipse object. More...
 
struct  TmxFrame
 A frame in a tile animation. More...
 
struct  TmxGroupLayer
 A layer with other layers. More...
 
struct  TmxImage
 A reference to an image. More...
 
struct  TmxImageLayer
 A layer with an image. More...
 
struct  TmxLayer
 A layer in the whole map. More...
 
struct  TmxLayers
 A TMX map. More...
 
struct  TmxObject
 A geometrical object. More...
 
struct  TmxObjectLayer
 A layer with objects. More...
 
struct  TmxPolygon
 A polygon object. More...
 
struct  TmxPolyline
 A polyline object. More...
 
class  TmxProperties
 The properties for TMX entities. More...
 
struct  TmxRectangle
 A rectangle object. More...
 
struct  TmxTerrain
 A description of a kind of terrain on the map. More...
 
struct  TmxText
 A text object. More...
 
struct  TmxTile
 A rectangular part of a tileset. More...
 
struct  TmxTileLayer
 A layer with tiles in cells. More...
 
struct  TmxTileObject
 An image put in the map identified by its global id. More...
 
struct  TmxTileset
 A set of tiles in a single file (image or TSX file) More...
 
class  TmxVisitor
 A visitor for layers in the visitor pattern. 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  TriangleRef
 A reference to a triangle (three points) 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  Widget
 The widgets abstract class. More...
 
class  WidgetContainer
 A collection of widgets. More...
 
class  Window
 An OS window. More...
 
class  WorleyNoise2D
 Worley 2D noise. More...
 
struct  ZeroType
 Semantic type to represent "zero". More...
 
class  ZoomingViewAdaptor
 A view adaptor for zooming/moving with the mouse. More...
 

Typedefs

using Box2f = Box< float, 2 >
 
using Box3f = Box< float, 3 >
 
using Box2i = Box< int, 2 >
 
using Box3i = Box< int, 3 >
 
using Box2u = Box< unsigned, 2 >
 
using Box3u = Box< unsigned, 3 >
 
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 ConsoleColorControl = char
 A type for color controls in a console. 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...
 
using CellFlags = Flags< CellProperty >
 Flags composed of cell properties. 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...
 
template<typename T >
using SpatialQueryCallback = std::function< void(const T &)>
 A callback for spatial query. 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  Quadrant {
  UpperLeft,
  UpperRight,
  LowerRight,
  LowerLeft
}
 
enum  ConsoleAlignment {
  ConsoleAlignment::Left,
  ConsoleAlignment::Center,
  ConsoleAlignment::Right
}
 The alignment of the text in the console. 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  Flip : uint8_t {
  Flip::Horizontally = 0x01,
  Flip::Vertically = 0x02,
  Flip::Diagonally = 0x04
}
 A flag to indicate how to flip a tile. 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  CellProperty : uint8_t {
  CellProperty::Transparent = 0x01,
  CellProperty::Walkable = 0x02,
  CellProperty::Visible = 0x10,
  CellProperty::Explored = 0x20
}
 A property of a cell. More...
 
enum  FieldOfVision { FieldOfVision::Basic }
 Algorithm for computing a field of vision. More...
 
enum  FieldOfVisionLimit {
  FieldOfVisionLimit::Included,
  FieldOfVisionLimit::Excluded
}
 Constant to indicate if the limit is part of the field of vision. More...
 
enum  Route {
  Route::AStar,
  Route::Dijkstra
}
 Algorithm for computing a route. 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  AngularMove {
  AngularMove::None,
  AngularMove::Left,
  AngularMove::Right
}
 An angular move. More...
 
enum  LinearMove {
  LinearMove::None,
  LinearMove::Forward,
  LinearMove::Backward
}
 A linear move. 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  SpatialStructureType {
  SpatialStructureType::Object,
  SpatialStructureType::Node
}
 
enum  SpatialQuery {
  SpatialQuery::Contain,
  SpatialQuery::Intersect
}
 A kind of spatial query. More...
 
enum  TmxOrientation {
  TmxOrientation::Unknown,
  TmxOrientation::Orthogonal,
  TmxOrientation::Isometric,
  TmxOrientation::Staggered,
  TmxOrientation::Hexagonal
}
 The orientation of the map. More...
 
enum  TmxStaggerIndex {
  TmxStaggerIndex::Odd,
  TmxStaggerIndex::Even
}
 Stagger index of the hexagonal map. More...
 
enum  TmxStaggerAxis {
  TmxStaggerAxis::X,
  TmxStaggerAxis::Y
}
 Stagger axis of the hexagonal map. More...
 
enum  TmxRenderOrder {
  TmxRenderOrder::RightDown,
  TmxRenderOrder::RightUp,
  TmxRenderOrder::LeftDown,
  TmxRenderOrder::LeftUp
}
 the render order of the tiles. More...
 
enum  TmxDrawOrder {
  TmxDrawOrder::TopDown,
  TmxDrawOrder::Index
}
 The draw order of the objects. 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  WidgetState {
  WidgetState::Disabled,
  WidgetState::Default,
  WidgetState::Selected
}
 State of a widget. More...
 
enum  Winding {
  Winding::Clockwise,
  Winding::Counterclockwise
}
 The direction of a polygon's rotation. More...
 
enum  WindowHints : uint32_t {
  WindowHints::Resizable = 0x0001,
  WindowHints::Visible = 0x0002,
  WindowHints::Decorated = 0x0004
}
 Hints for window creation. More...
 

Functions

template<typename T >
Box< T, 2 > computeBoxQuadrant (const Box< T, 2 > &box, Quadrant quadrant)
 
template<typename T , std::size_t N>
constexpr bool operator== (const Box< T, N > &lhs, const Box< T, N > &rhs)
 
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...
 
Heightmap midpointDisplacement2D (Vector2i size, Random &random, ArrayRef< double > initialValues=nullptr)
 2D midpoint displacement More...
 
Heightmap diamondSquare2D (Vector2i size, Random &random, ArrayRef< double > initialValues=nullptr)
 2D diamond square More...
 
Polygon convexHull (ArrayRef< Vector2f > points)
 Compute the convex hull of a set of points. More...
 
std::vector< Vector2fsimplifyPoints (ArrayRef< Vector2f > points, float distance=Epsilon)
 Simplify a sequence of points. More...
 
constexpr Id hash (const char *str, std::size_t sz)
 Get an identifier from a string. More...
 
constexpr Id hash (StringRef 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 >
constexpr T 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...
 
float angularFactor (AngularMove move)
 Get the angular factor from the angular move. More...
 
float linearFactor (LinearMove move)
 Get the linear factor from the linear move. 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...
 
template<typename T , typename E = typename std::enable_if<std::is_enum<T>::value, T>::type>
Deserializeroperator| (Deserializer &ar, T &data)
 
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 (StringRef str)
 Compute a UTF-32 string from a UTF-8 string. More...
 
std::string formatString (const char *fmt,...)
 Format a string like printf. More...
 
std::string formatString (const char *fmt, va_list ap)
 Format a string like vprintf. More...
 
std::vector< std::u32string > splitInParagraphs (const std::u32string &str)
 
std::vector< std::u32string > splitInWords (const std::u32string &str)
 
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...
 
std::vector< TriangleRef< const Vector2f > > triangulation (ArrayRef< Vector2f > points)
 Compute a Delaunay triangulation of a set of points. 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 ConsoleColorControl ConsoleColorControl1 = '\x01'
 The constant for color control #1. More...
 
constexpr ConsoleColorControl ConsoleColorControl2 = '\x02'
 The constant for color control #2. More...
 
constexpr ConsoleColorControl ConsoleColorControl3 = '\x03'
 The constant for color control #3. More...
 
constexpr ConsoleColorControl ConsoleColorControl4 = '\x04'
 The constant for color control #4. More...
 
constexpr ConsoleColorControl ConsoleColorControl5 = '\x05'
 The constant for color control #5. More...
 
constexpr ConsoleColorControl ConsoleColorControlStop = '\x06'
 The constant for color control stop. More...
 
constexpr GamepadId AnyGamepad = static_cast<GamepadId>(INT32_C(-1))
 A special identifier for all gamepads. More...
 
constexpr Id InvalidId = 0
 The invalid id (which is 0) More...
 
constexpr CellFlags EmptyCell = combineFlags(CellProperty::Transparent, CellProperty::Walkable)
 An empty cell. 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...
 
constexpr ZeroType Zero = { }
 Constant to represent "zero". More...
 

Detailed Description

The namespace for gf classes.

Typedef Documentation

◆ Box2f

using gf::Box2f = typedef Box<float, 2>

◆ Box2i

using gf::Box2i = typedef Box<int, 2>

◆ Box2u

using gf::Box2u = typedef Box<unsigned, 2>

◆ Box3f

using gf::Box3f = typedef Box<float, 3>

◆ Box3i

using gf::Box3i = typedef Box<int, 3>

◆ Box3u

using gf::Box3u = typedef Box<unsigned, 3>

Enumeration Type Documentation

◆ Quadrant

Enumerator
UpperLeft 
UpperRight 
LowerRight 
LowerLeft 

◆ SpatialStructureType

Enumerator
Object 
Node 

Function Documentation

◆ computeBoxQuadrant()

template<typename T >
Box<T, 2> gf::computeBoxQuadrant ( const Box< T, 2 > &  box,
Quadrant  quadrant 
)
inline

◆ operator==()

template<typename T , std::size_t N>
constexpr bool gf::operator== ( const Box< T, N > &  lhs,
const Box< T, N > &  rhs 
)

◆ operator|()

template<typename T , typename E = typename std::enable_if<std::is_enum<T>::value, T>::type>
Deserializer& gf::operator| ( Deserializer ar,
T &  data 
)

◆ splitInWords()

std::vector<std::u32string> gf::splitInWords ( const std::u32string &  str)