|
ASW Lib
A.D.S. Games SDL Wrapper Library. A library targeted at Allegro4 users who want to switch to SDL3 and use modern c++.
|
Classes | |
| struct | ControllerAxisBinding |
| Binding to a controller axis, activated when the axis exceeds a threshold. More... | |
| struct | ControllerButtonBinding |
Binding to a controller (gamepad) button. Set controller_index to ANY_CONTROLLER to accept every connected controller. More... | |
| struct | KeyBinding |
| Binding to a keyboard key. More... | |
| struct | MouseButtonBinding |
| Binding to a mouse button. More... | |
Typedefs | |
| using | ActionBinding = std::variant<KeyBinding, MouseButtonBinding, ControllerButtonBinding, ControllerAxisBinding> |
| A single input binding — keyboard, mouse button, controller button, or controller axis. | |
| using | MouseState |
| Mouse state stores the current state of the mouse. It is updated by the core. | |
| using | KeyState |
| Keyboard state stores the current state of the keyboard. It is updated by the core. | |
Enumerations | |
| enum class | MouseButton { Left = SDL_BUTTON_LEFT , Middle = SDL_BUTTON_MIDDLE , Right = SDL_BUTTON_RIGHT , X1 = SDL_BUTTON_X1 , X2 = SDL_BUTTON_X2 , NumMouseButtons = NUM_MOUSE_BUTTONS } |
| Enumeration of mouse buttons in the ASW library. More... | |
| enum class | Key { Unknown = SDL_SCANCODE_UNKNOWN , A = SDL_SCANCODE_A , B = SDL_SCANCODE_B , C = SDL_SCANCODE_C , D = SDL_SCANCODE_D , E = SDL_SCANCODE_E , F = SDL_SCANCODE_F , G = SDL_SCANCODE_G , H = SDL_SCANCODE_H , I = SDL_SCANCODE_I , J = SDL_SCANCODE_J , K = SDL_SCANCODE_K , L = SDL_SCANCODE_L , M = SDL_SCANCODE_M , N = SDL_SCANCODE_N , O = SDL_SCANCODE_O , P = SDL_SCANCODE_P , Q = SDL_SCANCODE_Q , R = SDL_SCANCODE_R , S = SDL_SCANCODE_S , T = SDL_SCANCODE_T , U = SDL_SCANCODE_U , V = SDL_SCANCODE_V , W = SDL_SCANCODE_W , X = SDL_SCANCODE_X , Y = SDL_SCANCODE_Y , Z = SDL_SCANCODE_Z , Num1 = SDL_SCANCODE_1 , Num2 = SDL_SCANCODE_2 , Num3 = SDL_SCANCODE_3 , Num4 = SDL_SCANCODE_4 , Num5 = SDL_SCANCODE_5 , Num6 = SDL_SCANCODE_6 , Num7 = SDL_SCANCODE_7 , Num8 = SDL_SCANCODE_8 , Num9 = SDL_SCANCODE_9 , Num0 = SDL_SCANCODE_0 , Return = SDL_SCANCODE_RETURN , Escape = SDL_SCANCODE_ESCAPE , Backspace = SDL_SCANCODE_BACKSPACE , Tab = SDL_SCANCODE_TAB , Space = SDL_SCANCODE_SPACE , Minus = SDL_SCANCODE_MINUS , Equals = SDL_SCANCODE_EQUALS , LeftBracket = SDL_SCANCODE_LEFTBRACKET , RightBracket = SDL_SCANCODE_RIGHTBRACKET , Backslash = SDL_SCANCODE_BACKSLASH , NonUsHash = SDL_SCANCODE_NONUSHASH , Semicolon = SDL_SCANCODE_SEMICOLON , Apostrophe = SDL_SCANCODE_APOSTROPHE , Grave = SDL_SCANCODE_GRAVE , Comma = SDL_SCANCODE_COMMA , Period = SDL_SCANCODE_PERIOD , Slash = SDL_SCANCODE_SLASH , Capslock = SDL_SCANCODE_CAPSLOCK , F1 = SDL_SCANCODE_F1 , F2 = SDL_SCANCODE_F2 , F3 = SDL_SCANCODE_F3 , F4 = SDL_SCANCODE_F4 , F5 = SDL_SCANCODE_F5 , F6 = SDL_SCANCODE_F6 , F7 = SDL_SCANCODE_F7 , F8 = SDL_SCANCODE_F8 , F9 = SDL_SCANCODE_F9 , F10 = SDL_SCANCODE_F10 , F11 = SDL_SCANCODE_F11 , F12 = SDL_SCANCODE_F12 , PrintScreen = SDL_SCANCODE_PRINTSCREEN , ScrollLock = SDL_SCANCODE_SCROLLLOCK , Pause = SDL_SCANCODE_PAUSE , Insert = SDL_SCANCODE_INSERT , Home = SDL_SCANCODE_HOME , PageUp = SDL_SCANCODE_PAGEUP , Delete = SDL_SCANCODE_DELETE , End = SDL_SCANCODE_END , PageDown = SDL_SCANCODE_PAGEDOWN , Right = SDL_SCANCODE_RIGHT , Left = SDL_SCANCODE_LEFT , Down = SDL_SCANCODE_DOWN , Up = SDL_SCANCODE_UP , NumLockClear = SDL_SCANCODE_NUMLOCKCLEAR , KpDivide = SDL_SCANCODE_KP_DIVIDE , KpMultiply = SDL_SCANCODE_KP_MULTIPLY , KpMinus = SDL_SCANCODE_KP_MINUS , KpPlus = SDL_SCANCODE_KP_PLUS , KpEnter = SDL_SCANCODE_KP_ENTER , Kp1 = SDL_SCANCODE_KP_1 , Kp2 = SDL_SCANCODE_KP_2 , Kp3 = SDL_SCANCODE_KP_3 , Kp4 = SDL_SCANCODE_KP_4 , Kp5 = SDL_SCANCODE_KP_5 , Kp6 = SDL_SCANCODE_KP_6 , Kp7 = SDL_SCANCODE_KP_7 , Kp8 = SDL_SCANCODE_KP_8 , Kp9 = SDL_SCANCODE_KP_9 , Kp0 = SDL_SCANCODE_KP_0 , KpPeriod = SDL_SCANCODE_KP_PERIOD , NonusBackslash = SDL_SCANCODE_NONUSBACKSLASH , Application = SDL_SCANCODE_APPLICATION , Power = SDL_SCANCODE_POWER , KpEquals = SDL_SCANCODE_KP_EQUALS , F13 = SDL_SCANCODE_F13 , F14 = SDL_SCANCODE_F14 , F15 = SDL_SCANCODE_F15 , F16 = SDL_SCANCODE_F16 , F17 = SDL_SCANCODE_F17 , F18 = SDL_SCANCODE_F18 , F19 = SDL_SCANCODE_F19 , F20 = SDL_SCANCODE_F20 , F21 = SDL_SCANCODE_F21 , F22 = SDL_SCANCODE_F22 , F23 = SDL_SCANCODE_F23 , F24 = SDL_SCANCODE_F24 , Execute = SDL_SCANCODE_EXECUTE , Help = SDL_SCANCODE_HELP , Menu = SDL_SCANCODE_MENU , Select = SDL_SCANCODE_SELECT , Stop = SDL_SCANCODE_STOP , Again = SDL_SCANCODE_AGAIN , Undo = SDL_SCANCODE_UNDO , Cut = SDL_SCANCODE_CUT , Copy = SDL_SCANCODE_COPY , Paste = SDL_SCANCODE_PASTE , Find = SDL_SCANCODE_FIND , Mute = SDL_SCANCODE_MUTE , VolumeUp = SDL_SCANCODE_VOLUMEUP , VolumeDown = SDL_SCANCODE_VOLUMEDOWN , KpComma = SDL_SCANCODE_KP_COMMA , KpEqualsSas400 = SDL_SCANCODE_KP_EQUALSAS400 , International1 = SDL_SCANCODE_INTERNATIONAL1 , International2 = SDL_SCANCODE_INTERNATIONAL2 , International3 = SDL_SCANCODE_INTERNATIONAL3 , International4 = SDL_SCANCODE_INTERNATIONAL4 , International5 = SDL_SCANCODE_INTERNATIONAL5 , International6 = SDL_SCANCODE_INTERNATIONAL6 , International7 = SDL_SCANCODE_INTERNATIONAL7 , International8 = SDL_SCANCODE_INTERNATIONAL8 , International9 = SDL_SCANCODE_INTERNATIONAL9 , Lang1 = SDL_SCANCODE_LANG1 , Lang2 = SDL_SCANCODE_LANG2 , Lang3 = SDL_SCANCODE_LANG3 , Lang4 = SDL_SCANCODE_LANG4 , Lang5 = SDL_SCANCODE_LANG5 , Lang6 = SDL_SCANCODE_LANG6 , Lang7 = SDL_SCANCODE_LANG7 , Lang8 = SDL_SCANCODE_LANG8 , Lang9 = SDL_SCANCODE_LANG9 , AltErase = SDL_SCANCODE_ALTERASE , SysReq = SDL_SCANCODE_SYSREQ , Cancel = SDL_SCANCODE_CANCEL , Clear = SDL_SCANCODE_CLEAR , Prior = SDL_SCANCODE_PRIOR , Return2 = SDL_SCANCODE_RETURN2 , Separator = SDL_SCANCODE_SEPARATOR , Out = SDL_SCANCODE_OUT , Oper = SDL_SCANCODE_OPER , ClearAgain = SDL_SCANCODE_CLEARAGAIN , Crsel = SDL_SCANCODE_CRSEL , Exsel = SDL_SCANCODE_EXSEL , Kp00 = SDL_SCANCODE_KP_00 , Kp000 = SDL_SCANCODE_KP_000 , ThousandsSeparator = SDL_SCANCODE_THOUSANDSSEPARATOR , DecimalSeparator = SDL_SCANCODE_DECIMALSEPARATOR , CurrencyUnit = SDL_SCANCODE_CURRENCYUNIT , CurrencySubunit = SDL_SCANCODE_CURRENCYSUBUNIT , KpLeftParen = SDL_SCANCODE_KP_LEFTPAREN , KpRightParan = SDL_SCANCODE_KP_RIGHTPAREN , KpLeftBrace = SDL_SCANCODE_KP_LEFTBRACE , KpRightBrace = SDL_SCANCODE_KP_RIGHTBRACE , KpTab = SDL_SCANCODE_KP_TAB , KpBackspace = SDL_SCANCODE_KP_BACKSPACE , KpA = SDL_SCANCODE_KP_A , KpB = SDL_SCANCODE_KP_B , KpC = SDL_SCANCODE_KP_C , KpD = SDL_SCANCODE_KP_D , KpE = SDL_SCANCODE_KP_E , KpF = SDL_SCANCODE_KP_F , KpXor = SDL_SCANCODE_KP_XOR , KpPower = SDL_SCANCODE_KP_POWER , KpPercent = SDL_SCANCODE_KP_PERCENT , KpLess = SDL_SCANCODE_KP_LESS , KpGreater = SDL_SCANCODE_KP_GREATER , KpAmpersand = SDL_SCANCODE_KP_AMPERSAND , KpDoubleAmpersand = SDL_SCANCODE_KP_DBLAMPERSAND , KpVerticalBar = SDL_SCANCODE_KP_VERTICALBAR , KpDoubleVerticalBar = SDL_SCANCODE_KP_DBLVERTICALBAR , KpColon = SDL_SCANCODE_KP_COLON , KpHash = SDL_SCANCODE_KP_HASH , KpSpace = SDL_SCANCODE_KP_SPACE , KpAt = SDL_SCANCODE_KP_AT , KpExclam = SDL_SCANCODE_KP_EXCLAM , KpMemStore = SDL_SCANCODE_KP_MEMSTORE , KpMemRecall = SDL_SCANCODE_KP_MEMRECALL , KpMemClear = SDL_SCANCODE_KP_MEMCLEAR , KpMemAdd = SDL_SCANCODE_KP_MEMADD , KpMemSubtract = SDL_SCANCODE_KP_MEMSUBTRACT , KpMemMultiply = SDL_SCANCODE_KP_MEMMULTIPLY , KpMemDivide = SDL_SCANCODE_KP_MEMDIVIDE , KpPlusMinus = SDL_SCANCODE_KP_PLUSMINUS , KpClear = SDL_SCANCODE_KP_CLEAR , KpClearEntry = SDL_SCANCODE_KP_CLEARENTRY , KpBinary = SDL_SCANCODE_KP_BINARY , KpOctal = SDL_SCANCODE_KP_OCTAL , KpDecimal = SDL_SCANCODE_KP_DECIMAL , KpHexadecimal = SDL_SCANCODE_KP_HEXADECIMAL , LCtrl = SDL_SCANCODE_LCTRL , LShift = SDL_SCANCODE_LSHIFT , LAlt = SDL_SCANCODE_LALT , LGui = SDL_SCANCODE_LGUI , RCtrl = SDL_SCANCODE_RCTRL , RShift = SDL_SCANCODE_RSHIFT , RAlt = SDL_SCANCODE_RALT , RGui = SDL_SCANCODE_RGUI , Mode = SDL_SCANCODE_MODE , MediaNextTrack = SDL_SCANCODE_MEDIA_NEXT_TRACK , MediaPreviousTrack = SDL_SCANCODE_MEDIA_PREVIOUS_TRACK , MediaStop = SDL_SCANCODE_MEDIA_STOP , MediaPlay = SDL_SCANCODE_MEDIA_PLAY , MediaSelect = SDL_SCANCODE_MEDIA_SELECT , AcSearch = SDL_SCANCODE_AC_SEARCH , AcHome = SDL_SCANCODE_AC_HOME , AcBack = SDL_SCANCODE_AC_BACK , AcForward = SDL_SCANCODE_AC_FORWARD , AcStop = SDL_SCANCODE_AC_STOP , AcRefresh = SDL_SCANCODE_AC_REFRESH , AcBookmarks = SDL_SCANCODE_AC_BOOKMARKS , Eject = SDL_SCANCODE_MEDIA_EJECT , Sleep = SDL_SCANCODE_SLEEP , AudioRewind = SDL_SCANCODE_MEDIA_REWIND , AudioFastForward = SDL_SCANCODE_MEDIA_FAST_FORWARD , SoftLeft = SDL_SCANCODE_SOFTLEFT , SoftRight = SDL_SCANCODE_SOFTRIGHT , Call = SDL_SCANCODE_CALL , EndCall = SDL_SCANCODE_ENDCALL , NumKeys = NUM_KEYS } |
| Enumeration of keys in the ASW library. More... | |
| enum class | CursorId { Default = SDL_SYSTEM_CURSOR_DEFAULT , Text = SDL_SYSTEM_CURSOR_TEXT , Wait = SDL_SYSTEM_CURSOR_WAIT , Crosshair = SDL_SYSTEM_CURSOR_CROSSHAIR , Progress = SDL_SYSTEM_CURSOR_PROGRESS , NwseResize = SDL_SYSTEM_CURSOR_NWSE_RESIZE , NeswResize = SDL_SYSTEM_CURSOR_NESW_RESIZE , EwResize = SDL_SYSTEM_CURSOR_EW_RESIZE , NsResize = SDL_SYSTEM_CURSOR_NS_RESIZE , Move = SDL_SYSTEM_CURSOR_MOVE , NotAllowed = SDL_SYSTEM_CURSOR_NOT_ALLOWED , Pointer = SDL_SYSTEM_CURSOR_POINTER , NwResize = SDL_SYSTEM_CURSOR_NW_RESIZE , NResize = SDL_SYSTEM_CURSOR_N_RESIZE , NeResize = SDL_SYSTEM_CURSOR_NE_RESIZE , EResize = SDL_SYSTEM_CURSOR_E_RESIZE , SEResize = SDL_SYSTEM_CURSOR_SE_RESIZE , SResize = SDL_SYSTEM_CURSOR_S_RESIZE , SWResize = SDL_SYSTEM_CURSOR_SW_RESIZE , WResize = SDL_SYSTEM_CURSOR_W_RESIZE , NumCursors = NUM_CURSORS } |
| System cursor Ids. More... | |
| enum class | ControllerButton { A = SDL_GAMEPAD_BUTTON_SOUTH , B = SDL_GAMEPAD_BUTTON_EAST , X = SDL_GAMEPAD_BUTTON_WEST , Y = SDL_GAMEPAD_BUTTON_NORTH , Back = SDL_GAMEPAD_BUTTON_BACK , Guide = SDL_GAMEPAD_BUTTON_GUIDE , Start = SDL_GAMEPAD_BUTTON_START , LeftStick = SDL_GAMEPAD_BUTTON_LEFT_STICK , RightStick = SDL_GAMEPAD_BUTTON_RIGHT_STICK , LeftShoulder = SDL_GAMEPAD_BUTTON_LEFT_SHOULDER , RightShoulder = SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER , DPadUp = SDL_GAMEPAD_BUTTON_DPAD_UP , DPadDown = SDL_GAMEPAD_BUTTON_DPAD_DOWN , DPadLeft = SDL_GAMEPAD_BUTTON_DPAD_LEFT , DPadRight = SDL_GAMEPAD_BUTTON_DPAD_RIGHT , Misc1 = SDL_GAMEPAD_BUTTON_MISC1 , RightPaddle1 = SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1 , LeftPaddle1 = SDL_GAMEPAD_BUTTON_LEFT_PADDLE1 , RightPaddle2 = SDL_GAMEPAD_BUTTON_RIGHT_PADDLE2 , LeftPaddle2 = SDL_GAMEPAD_BUTTON_LEFT_PADDLE2 , TouchPad = SDL_GAMEPAD_BUTTON_TOUCHPAD , NumControllerButtons = NUM_CONTROLLER_BUTTONS } |
| Mappings from SDL game controller buttons to ASW buttons. More... | |
| enum class | ControllerAxis { LeftX = SDL_GAMEPAD_AXIS_LEFTX , LeftY = SDL_GAMEPAD_AXIS_LEFTY , RightX = SDL_GAMEPAD_AXIS_RIGHTX , RightY = SDL_GAMEPAD_AXIS_RIGHTY , LeftTrigger = SDL_GAMEPAD_AXIS_LEFT_TRIGGER , RightTrigger = SDL_GAMEPAD_AXIS_RIGHT_TRIGGER , NumControllerAxes = NUM_CONTROLLER_AXES } |
| Mappings from SDL game controller axes to ASW axes. More... | |
| enum class | ControllerStick { Left , Right } |
| Analog sticks on a game controller. More... | |
| enum class | InputDevice { KeyboardMouse , Controller } |
| Device the player used most recently. More... | |
Functions | |
| void | bind_action (std::string_view name, ActionBinding binding) |
| Register a binding for a named action. | |
| void | unbind_action (std::string_view name) |
| Remove all bindings for a named action. | |
| void | clear_actions () |
| Remove all registered actions and their bindings. | |
| bool | get_action_down (std::string_view name) |
| Check if an action was triggered (first pressed) this frame. | |
| bool | get_action_up (std::string_view name) |
| Check if an action was released this frame. | |
| bool | get_action (std::string_view name) |
| Check if an action is currently held down. | |
| float | get_action_strength (std::string_view name) |
| Get the analogue strength of an action (0.0 – 1.0). | |
| void | update_actions () |
| Update cached action states from current raw input. | |
| const MouseState & | get_mouse () |
| Get the current mouse state. | |
| bool | get_mouse_button (asw::input::MouseButton button) |
| Check if a mouse button is down. | |
| bool | get_mouse_button_down (asw::input::MouseButton button) |
| Check if a mouse button was pressed since the last update. | |
| bool | get_mouse_button_up (asw::input::MouseButton button) |
| Check if a mouse button was released since the last update. | |
| const KeyState & | get_keyboard () |
| Get the current keyboard state. | |
| bool | get_key (asw::input::Key key) |
| Check if a key is down. | |
| bool | get_key_down (asw::input::Key key) |
| Check if a key was pressed since the last update. | |
| bool | get_key_repeat (asw::input::Key key) |
| Check if a key was pressed or auto-repeated since the last update. | |
| bool | get_key_up (asw::input::Key key) |
| Check if a key was released since the last update. | |
| void | set_cursor (asw::input::CursorId cursor) |
| Change cursor. | |
| void | set_cursor_visible (bool visible) |
| Show or hide the mouse cursor, for games that draw their own. | |
| void | simulate_key_down (asw::input::Key key) |
| Simulate a key being pressed. | |
| void | simulate_key_up (asw::input::Key key) |
| Simulate a key being released. | |
| void | simulate_mouse_move (const asw::Vec2< float > &position) |
| Simulate the mouse moving. | |
| void | simulate_mouse_button_down (asw::input::MouseButton button) |
| Simulate a mouse button being pressed. | |
| void | simulate_mouse_button_up (asw::input::MouseButton button) |
| Simulate a mouse button being released. | |
| bool | get_controller_button (uint32_t index, asw::input::ControllerButton button) |
| Check if a controller button is down. | |
| bool | get_controller_button_down (uint32_t index, asw::input::ControllerButton button) |
| Check if a controller button was pressed since the last update. | |
| bool | get_controller_button_up (uint32_t index, asw::input::ControllerButton button) |
| Check if a controller button was released since the last update. | |
| float | get_controller_axis (uint32_t index, asw::input::ControllerAxis axis) |
| Get the value of a controller axis with the dead zone applied. | |
| Vec2< float > | get_controller_stick (uint32_t index, asw::input::ControllerStick stick) |
| Get the position of a controller stick with the dead zone applied. | |
| void | set_controller_dead_zone (uint32_t index, float dead_zone) |
| Set the joystick deadzone for a controller. | |
| bool | rumble_controller (uint32_t index, float low_frequency, float high_frequency, uint32_t duration_ms) |
| Rumble a controller's main motors. | |
| bool | rumble_controller_triggers (uint32_t index, float left, float right, uint32_t duration_ms) |
| Rumble a controller's trigger motors. | |
| bool | controller_has_rumble (uint32_t index) |
| Check if a controller supports rumble. | |
| bool | controller_has_trigger_rumble (uint32_t index) |
| Check if a controller supports trigger rumble. | |
| InputDevice | get_last_device () |
| Get the device the player used most recently. | |
| int | get_controller_count () |
| Get the number of controller slots. | |
| bool | is_controller_connected (uint32_t index) |
| Check if a controller is connected at an index. | |
| std::string | get_controller_name (uint32_t index) |
| Get the name of a controller. | |
| const std::string & | get_text_input () |
| Get the text input received this frame. | |
| void | reset () |
| Reset all input states. Called by the core. | |
| void | _shutdown () |
| Free cached cursors. Called by asw::core::shutdown(). | |
| void | _append_text (const char *text) |
| Event Hooks. | |
| void | _key_down (SDL_Scancode scancode, bool repeat=false) |
| Key down hook. | |
| void | _key_up (SDL_Scancode scancode) |
| Key up hook. | |
| void | _mouse_button_down (uint8_t button) |
| Mouse button down hook. | |
| void | _mouse_button_up (uint8_t button) |
| Mouse button up hook. | |
| void | _mouse_motion (float x, float y, float delta_x, float delta_y) |
| Mouse motion hook. | |
| void | _mouse_wheel (float delta_z) |
| Mouse wheel hook. | |
| void | _controller_added (SDL_JoystickID id) |
| Controller added hook. | |
| void | _controller_removed (SDL_JoystickID id) |
| Controller removed hook. | |
| void | _controller_axis_motion (SDL_JoystickID id, uint32_t axis, float value) |
| Axis moved hook. | |
| void | _controller_button_down (SDL_JoystickID id, uint32_t button) |
| Button down hook. | |
| void | _controller_button_up (SDL_JoystickID id, uint32_t button) |
| Button up hook. | |
Variables | |
| constexpr int | NUM_MOUSE_BUTTONS = 6 |
| Number of mouse buttons in the ASW library. | |
| constexpr int | NUM_KEYS = SDL_SCANCODE_COUNT |
| Number of keys in the ASW library. | |
| constexpr int | NUM_CURSORS = SDL_SYSTEM_CURSOR_COUNT |
| Cursor count. | |
| constexpr int | NUM_CONTROLLER_BUTTONS = SDL_GAMEPAD_BUTTON_COUNT |
| Number of buttons on a game controller. | |
| constexpr int | NUM_CONTROLLER_AXES = SDL_GAMEPAD_AXIS_COUNT |
| Number of axes on a game controller. | |
| constexpr uint32_t | ANY_CONTROLLER = UINT32_MAX |
| Pass as a controller index to read every connected controller. | |
| using asw::input::ActionBinding = std::variant<KeyBinding, MouseButtonBinding, ControllerButtonBinding, ControllerAxisBinding> |
| using asw::input::KeyState |
Keyboard state stores the current state of the keyboard. It is updated by the core.
| using asw::input::MouseState |
Mouse state stores the current state of the mouse. It is updated by the core.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Enumeration of keys in the ASW library.
|
strong |
| void asw::input::_append_text | ( | const char * | text | ) |
| void asw::input::_controller_added | ( | SDL_JoystickID | id | ) |
| void asw::input::_controller_axis_motion | ( | SDL_JoystickID | id, |
| uint32_t | axis, | ||
| float | value ) |
| void asw::input::_controller_button_down | ( | SDL_JoystickID | id, |
| uint32_t | button ) |
| void asw::input::_controller_button_up | ( | SDL_JoystickID | id, |
| uint32_t | button ) |
| void asw::input::_controller_removed | ( | SDL_JoystickID | id | ) |
| void asw::input::_key_down | ( | SDL_Scancode | scancode, |
| bool | repeat = false ) |
| void asw::input::_key_up | ( | SDL_Scancode | scancode | ) |
| void asw::input::_mouse_button_down | ( | uint8_t | button | ) |
| void asw::input::_mouse_button_up | ( | uint8_t | button | ) |
| void asw::input::_mouse_motion | ( | float | x, |
| float | y, | ||
| float | delta_x, | ||
| float | delta_y ) |
| void asw::input::_mouse_wheel | ( | float | delta_z | ) |
| void asw::input::_shutdown | ( | ) |
Free cached cursors. Called by asw::core::shutdown().
| void asw::input::bind_action | ( | std::string_view | name, |
| ActionBinding | binding ) |
Register a binding for a named action.
Multiple bindings can be added to the same action; any active binding will satisfy the action (logical OR).
| name | The action name. |
| binding | The input binding to associate with the action. |
Definition at line 151 of file action.cpp.
| void asw::input::clear_actions | ( | ) |
Remove all registered actions and their bindings.
Definition at line 163 of file action.cpp.
| bool asw::input::controller_has_rumble | ( | uint32_t | index | ) |
| bool asw::input::controller_has_trigger_rumble | ( | uint32_t | index | ) |
| bool asw::input::get_action | ( | std::string_view | name | ) |
Check if an action is currently held down.
| name | The action name. |
Definition at line 180 of file action.cpp.
| bool asw::input::get_action_down | ( | std::string_view | name | ) |
Check if an action was triggered (first pressed) this frame.
| name | The action name. |
Definition at line 168 of file action.cpp.
| float asw::input::get_action_strength | ( | std::string_view | name | ) |
Get the analogue strength of an action (0.0 – 1.0).
For button/key bindings this is 0 or 1. For axis bindings it is the normalised axis value clamped to the range [threshold, 1.0]. Returns the maximum strength across all active bindings.
| name | The action name. |
Definition at line 186 of file action.cpp.
| bool asw::input::get_action_up | ( | std::string_view | name | ) |
Check if an action was released this frame.
| name | The action name. |
Definition at line 174 of file action.cpp.
| float asw::input::get_controller_axis | ( | uint32_t | index, |
| asw::input::ControllerAxis | axis ) |
Get the value of a controller axis with the dead zone applied.
Stick axes use a radial dead zone, so a stick pushed straight along one axis reads zero on the other. Values past the dead zone are rescaled to start from zero.
| index | The index of the controller to check, or ANY_CONTROLLER. |
| axis | The axis to check. |
| bool asw::input::get_controller_button | ( | uint32_t | index, |
| asw::input::ControllerButton | button ) |
| bool asw::input::get_controller_button_down | ( | uint32_t | index, |
| asw::input::ControllerButton | button ) |
| bool asw::input::get_controller_button_up | ( | uint32_t | index, |
| asw::input::ControllerButton | button ) |
| int asw::input::get_controller_count | ( | ) |
Get the number of controller slots.
Each pad keeps its index while other pads are unplugged. A pad plugged back in gets its old index, told apart by serial number, or by model when it has no serial. A new pad fills the first empty slot. So this is the highest connected index plus one, and 0 when no controller is connected.
| std::string asw::input::get_controller_name | ( | uint32_t | index | ) |
| asw::Vec2< float > asw::input::get_controller_stick | ( | uint32_t | index, |
| asw::input::ControllerStick | stick ) |
Get the position of a controller stick with the dead zone applied.
| index | The index of the controller to check, or ANY_CONTROLLER. |
| stick | The stick to check. |
| bool asw::input::get_key | ( | asw::input::Key | key | ) |
| bool asw::input::get_key_down | ( | asw::input::Key | key | ) |
| bool asw::input::get_key_repeat | ( | asw::input::Key | key | ) |
Check if a key was pressed or auto-repeated since the last update.
A held key repeats at the rate the operating system sets. Use this for text editing and menu movement, and get_key_down() for game actions.
| key | The key to check. |
| bool asw::input::get_key_up | ( | asw::input::Key | key | ) |
| const asw::input::KeyState & asw::input::get_keyboard | ( | ) |
| asw::input::InputDevice asw::input::get_last_device | ( | ) |
Get the device the player used most recently.
Useful for showing keyboard or controller prompts. Key presses, mouse clicks and mouse motion count as the keyboard and mouse. Button presses and axes past the dead zone count as a controller.
| const asw::input::MouseState & asw::input::get_mouse | ( | ) |
| bool asw::input::get_mouse_button | ( | asw::input::MouseButton | button | ) |
| bool asw::input::get_mouse_button_down | ( | asw::input::MouseButton | button | ) |
| bool asw::input::get_mouse_button_up | ( | asw::input::MouseButton | button | ) |
| const std::string & asw::input::get_text_input | ( | ) |
| bool asw::input::is_controller_connected | ( | uint32_t | index | ) |
| void asw::input::reset | ( | ) |
| bool asw::input::rumble_controller | ( | uint32_t | index, |
| float | low_frequency, | ||
| float | high_frequency, | ||
| uint32_t | duration_ms ) |
Rumble a controller's main motors.
Each call replaces the previous rumble on that controller. Call with both intensities at 0 to stop early.
| index | The index of the controller, or ANY_CONTROLLER for all connected controllers. |
| low_frequency | Intensity of the low frequency (left) motor, between 0.0f and 1.0f. |
| high_frequency | Intensity of the high frequency (right) motor, between 0.0f and 1.0f. |
| duration_ms | How long to rumble, in milliseconds. |
| bool asw::input::rumble_controller_triggers | ( | uint32_t | index, |
| float | left, | ||
| float | right, | ||
| uint32_t | duration_ms ) |
Rumble a controller's trigger motors.
Only some controllers, such as Xbox One and Series controllers, have trigger motors. Each call replaces the previous trigger rumble on that controller. Call with both intensities at 0 to stop early.
| index | The index of the controller, or ANY_CONTROLLER for all connected controllers. |
| left | Intensity of the left trigger motor, between 0.0f and 1.0f. |
| right | Intensity of the right trigger motor, between 0.0f and 1.0f. |
| duration_ms | How long to rumble, in milliseconds. |
| void asw::input::set_controller_dead_zone | ( | uint32_t | index, |
| float | dead_zone ) |
| void asw::input::set_cursor | ( | asw::input::CursorId | cursor | ) |
| void asw::input::set_cursor_visible | ( | bool | visible | ) |
| void asw::input::simulate_key_down | ( | asw::input::Key | key | ) |
| void asw::input::simulate_key_up | ( | asw::input::Key | key | ) |
| void asw::input::simulate_mouse_button_down | ( | asw::input::MouseButton | button | ) |
| void asw::input::simulate_mouse_button_up | ( | asw::input::MouseButton | button | ) |
| void asw::input::simulate_mouse_move | ( | const asw::Vec2< float > & | position | ) |
Simulate the mouse moving.
| position | The new position in logical (render) coordinates, the same space get_mouse() reports. |
| void asw::input::unbind_action | ( | std::string_view | name | ) |
Remove all bindings for a named action.
| name | The action name to remove. |
Definition at line 156 of file action.cpp.
| void asw::input::update_actions | ( | ) |
Update cached action states from current raw input.
Called automatically by asw::core::update() after events are processed — you do not need to call this yourself unless you are managing the input loop manually.
Definition at line 192 of file action.cpp.
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |