evan 2026.1.4
Evan
Loading...
Searching...
No Matches
XrManageActions.hpp
1/*
2** ETIB PROJECT, 2026
3** evan
4** File description:
5** XrManageActions
6*/
7
8#pragma once
9
10#include <utility/logging/loggable.hpp>
11#include <utility/logging/default_logger.hpp>
12
13#include "evan/openxr/actions/XrHandsMotionActions.hpp"
14#include "evan/openxr/actions/XrManageButtonsActions.hpp"
15#include "evan/openxr/actions/XrManageThumbStickActions.hpp"
16
17#include <memory>
18
19namespace evan
20{
21 class XrDeviceBackend;
22
38 protected utility::logging::Loggable<XrManageActions,
39 utility::logging::DefaultLogger>
40 {
41 public:
67
69
85 std::vector<std::shared_ptr<utility::event::Event>>
87
94
101 std::unique_ptr<XrHandsMotionActions> _handsMotionActions;
102
109 std::unique_ptr<XrManageButtonsActions> _manageButtonsActions;
110
116 std::unique_ptr<XrManageThumbStickActions> _manageThumbStickActions;
117
118 private:
133 void createActionSet(XrDeviceBackend &deviceBackend);
134
149 void attachSessionActionSet(XrDeviceBackend &deviceBackend);
150
165 void bindActionSets(XrDeviceBackend &deviceBackend);
166 };
167} // namespace evan
The XrDeviceBackend class is responsible for managing the OpenXR device backend, including instance c...
The XrManageActions class is responsible for managing all action sets and actions in an OpenXR applic...
std::unique_ptr< XrHandsMotionActions > _handsMotionActions
Action manager for hand tracking actions.
std::unique_ptr< XrManageButtonsActions > _manageButtonsActions
Action manager for button actions.
XrActionSet _actionSet
The primary OpenXR action set for the application.
std::unique_ptr< XrManageThumbStickActions > _manageThumbStickActions
Action manager for thumb stick analog inputs.
std::vector< std::shared_ptr< utility::event::Event > > pollActions(XrDeviceBackend &deviceBackend)
Polls for input events from the OpenXR runtime.
Small result wrapper used by helpers that must return both a status and a value (e....
Definition Error.hpp:89