9#ifndef AVARA3D_INPUT_DESKTOPINPUTCONTEXT_H
10#define AVARA3D_INPUT_DESKTOPINPUTCONTEXT_H
12#include <unordered_set>
15#include "a3d/input/InputContext.h"
33 enum class Key :
int {
143 KeypadMultiply = 332,
144 KeypadSubtract = 333,
243 virtual void rebaseMouseMotion();
244 void releaseAllInputs();
249 std::unordered_set<Key> _keysDown;
250 std::unordered_set<MouseButton> _mouseButtonsDown;
251 std::unordered_set<Key> _keysPressed;
252 std::unordered_set<Key> _keysPressedCleared;
253 std::unordered_set<MouseButton> _mouseButtonsPressed;
254 std::unordered_set<MouseButton> _mouseButtonsPressedCleared;
255 std::unordered_set<Key> _keysReleased;
256 std::unordered_set<MouseButton> _mouseButtonsReleased;
Exposes keyboard, pointer-button, pointer-motion, and scroll state.
std::unordered_set< Key > keysPressed()
Returns and consumes all currently unread key-press transitions.
MouseButton
Identifies one of up to eight pointer buttons.
bool keyPressed(Key key)
Returns and consumes an unread press transition for key.
bool mouseButtonReleased(MouseButton button)
Returns and consumes an unread release transition for button.
const math::vec2 & mouseScrollWheelDelta() const
Returns scroll displacement observed during the current input update.
bool keyReleased(Key key)
Returns and consumes an unread release transition for key.
const math::vec2 & mousePositionDelta() const
Returns pointer displacement observed during the current input update.
bool mouseButtonPressed(MouseButton button)
Returns and consumes an unread press transition for button.
std::unordered_set< Key > keysDown()
Returns a copy of all keys currently held down.
Key
Identifies keyboard keys reported by desktop-style input contexts.
bool mouseButtonDown(MouseButton button)
Returns whether button is currently held down.
DesktopInputContext()
Creates a DesktopInputContext with no active input state.
std::unordered_set< MouseButton > mouseButtonsDown()
Returns a copy of all pointer buttons currently held down.
bool keyDown(Key key)
Returns whether key is currently held down.
std::unordered_set< MouseButton > mouseButtonsPressed()
Returns and consumes all currently unread pointer-button press transitions.
const math::vec2 & mousePosition() const
Returns the current pointer position in logical viewport coordinates.
Base interface for Scene input state updated once per Runner host update.
Timing information for one input update.