Input and output module
Provides a window API abstraction.
Files
- file cursor.hpp
 - Class cubos::
core:: io:: Cursor.  - file gamepad.hpp
 - Struct cubos::
core:: io:: GamepadState and related enums.  - file keyboard.hpp
 - Enums cubos::
core:: io:: Key and cubos:: core:: io:: Modifiers.  - file window.hpp
 - Class cubos::
core:: io:: Window and related types.  
Classes
- class cubos::core::io::Cursor
 - Handle for a custom mouse cursor.
 - struct cubos::core::io::GamepadState
 - Holds the state of a gamepad.
 - struct cubos::core::io::KeyEvent
 - Event sent when a key is pressed or released.
 - struct cubos::core::io::ModifiersEvent
 - Event sent when the modifiers change.
 - struct cubos::core::io::MouseButtonEvent
 - Event sent when a mouse button state changes.
 - struct cubos::core::io::MouseMoveEvent
 - Event sent when the mouse cursor moves.
 - struct cubos::core::io::MouseScrollEvent
 - Event sent when the mouse wheel is scrolled.
 - struct cubos::core::io::ResizeEvent
 - Event sent when the window framebuffer is resized.
 - struct cubos::core::io::TextEvent
 - Event sent when a unicode character is input.
 - struct cubos::core::io::GamepadConnectionEvent
 - Event sent when a gamepad is connected or disconnected.
 - class cubos::core::io::BaseWindow
 - Interface used to wrap low-level window API implementations.
 
Enums
- enum class GamepadButton { Invalid = -1, A, B, X, Y, LBumper, RBumper, Back, Start, Guide, LThumb, RThumb, Up, Right, Down, Left, Count }
 - Gamepad buttons.
 - enum class GamepadAxis { Invalid = -1, LX, LY, RX, RY, LTrigger, RTrigger, Count }
 - Gamepad axes.
 - enum class Key { Invalid = -1, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Escape, LControl, LShift, LAlt, LSystem, RControl, RShift, RAlt, RSystem, Menu, LBracket, RBracket, SemiColon, Comma, Period, Quote, Slash, BackSlash, Tilde, Equal, Dash, Space, Return, BackSpace, Tab, PageUp, PageDown, End, Home, Insert, Delete, Add, Subtract, Multiply, Divide, Left, Right, Up, Down, Numpad0, Numpad1, Numpad2, Numpad3, Numpad4, Numpad5, Numpad6, Numpad7, Numpad8, Numpad9, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, Pause, Count }
 - Keyboard key codes enum.
 - enum class Modifiers { None = 0, Control = 1, Shift = 2, Alt = 4, System = 8 }
 - Keyboard modifier flags enum.
 - enum class MouseButton { Invalid = -1, Left, Right, Middle, Extra1, Extra2 }
 - Mouse buttons enum.
 - enum class MouseAxis { X, Y, Scroll }
 - Mouse axes enums.
 - enum class MouseState { Default, Locked, Hidden }
 - Possible mouse states.
 
Typedefs
- using WindowEvent = std::variant<KeyEvent, ModifiersEvent, MouseButtonEvent, MouseMoveEvent, MouseScrollEvent, ResizeEvent, TextEvent, GamepadConnectionEvent>
 - Variant that can hold any of the window events.
 - using Window = std::shared_ptr<BaseWindow>
 - Handle to a window.
 
Functions
- 
              auto gamepadButtonToString(GamepadButton button) -> CUBOS_
CORE_ API std::string  - Converts a GamepadButton enum to a string.
 - 
              auto stringToGamepadButton(const std::string& str) -> CUBOS_
CORE_ API GamepadButton  - Converts a string to a GamepadButton.
 - 
              auto gamepadAxisToString(GamepadAxis axis) -> CUBOS_
CORE_ API std::string  - Convert a GamepadAxis to a string.
 - 
              auto stringToGamepadAxis(const std::string& str) -> CUBOS_
CORE_ API GamepadAxis  - Convert a string to a GamepadAxis.
 - 
              auto openWindow(const std::string& title = "Cubos",
              const glm::ivec2& size = {800, 600},
              bool vSync = true) -> CUBOS_
CORE_ API Window  - Opens a new window.
 - 
              auto mouseButtonToString(MouseButton button) -> CUBOS_
CORE_ API std::string  - Converts a MouseButton enum to a string.
 - 
              auto stringToMouseButton(const std::string& str) -> CUBOS_
CORE_ API MouseButton  - Convert a string to a MouseButton enum.
 
Enum documentation
              enum class GamepadButton
              #include <core/io/gamepad.hpp>
            
            Gamepad buttons.
              enum class GamepadAxis
              #include <core/io/gamepad.hpp>
            
            Gamepad axes.
              enum class Key
              #include <core/io/keyboard.hpp>
            
            Keyboard key codes enum.
              enum class Modifiers
              #include <core/io/keyboard.hpp>
            
            Keyboard modifier flags enum.
              enum class MouseButton
              #include <core/io/window.hpp>
            
            Mouse buttons enum.
| Enumerators | |
|---|---|
| Invalid | 
                   Used for unknown mouse buttons.  | 
                
| Left | |
| Right | |
| Middle | |
| Extra1 | |
| Extra2 | 
              enum class MouseAxis
              #include <core/io/window.hpp>
            
            Mouse axes enums.
              enum class MouseState
              #include <core/io/window.hpp>
            
            Possible mouse states.
| Enumerators | |
|---|---|
| Default | 
                   Default mouse state, mouse will function as is specified by the OS.  | 
                
| Locked | 
                   Mouse cursor will be hidden and locked to the center of the window, useful for control schemes that require infinite mouse movement.  | 
                
| Hidden | 
                   Mouse cursor will be hidden when over the window, otherwise functioning in the same way as MouseState::  | 
                
Typedef documentation
              using WindowEvent = std::variant<KeyEvent, ModifiersEvent, MouseButtonEvent, MouseMoveEvent, MouseScrollEvent, ResizeEvent, TextEvent, GamepadConnectionEvent>
              #include <core/io/window.hpp>
            
            Variant that can hold any of the window events.
              using Window = std::shared_ptr<BaseWindow>
              #include <core/io/window.hpp>
            
            Handle to a window.
Function documentation
              CUBOS_ CORE_ API std::string gamepadButtonToString(GamepadButton button)
              #include <core/io/gamepad.hpp>
            
            Converts a GamepadButton enum to a string.
| Parameters | |
|---|---|
| button | Button to convert. | 
| Returns | String representation. | 
              CUBOS_ CORE_ API GamepadButton stringToGamepadButton(const std::string& str)
              #include <core/io/gamepad.hpp>
            
            Converts a string to a GamepadButton.
| Parameters | |
|---|---|
| str | String to convert. | 
| Returns | Button. | 
              CUBOS_ CORE_ API std::string gamepadAxisToString(GamepadAxis axis)
              #include <core/io/gamepad.hpp>
            
            Convert a GamepadAxis to a string.
| Parameters | |
|---|---|
| axis | Axis to convert. | 
| Returns | String representation. | 
              CUBOS_ CORE_ API GamepadAxis stringToGamepadAxis(const std::string& str)
              #include <core/io/gamepad.hpp>
            
            Convert a string to a GamepadAxis.
| Parameters | |
|---|---|
| str | String to convert. | 
| Returns | Axis. | 
              CUBOS_ CORE_ API Window openWindow(const std::string& title = "Cubos",
              const glm::ivec2& size = {800, 600},
              bool vSync = true)
              #include <core/io/window.hpp>
            
            Opens a new window.
| Parameters | |
|---|---|
| title | Window title. | 
| size | Window size, in screen coordinates. | 
| vSync | Whether to enable vertical synchronization. | 
| Returns | New window, or nullptr on failure. | 
              CUBOS_ CORE_ API std::string mouseButtonToString(MouseButton button)
              #include <core/io/window.hpp>
            
            Converts a MouseButton enum to a string.
| Parameters | |
|---|---|
| button | MouseButton to convert. | 
| Returns | String representation. | 
              CUBOS_ CORE_ API MouseButton stringToMouseButton(const std::string& str)
              #include <core/io/window.hpp>
            
            Convert a string to a MouseButton enum.
| Parameters | |
|---|---|
| str | The string to convert. | 
| Returns | MouseButton. |