|
| OpenXR (Context *) |
|
void | SetUserExtensions (const StringVector &extensions) |
| Configure the user extensions. Should be called before InitializeSystem.
|
|
bool | InitializeSystem (RenderBackend backend) |
| Initialize the OpenXR subsystem. Renderer backend is not yet initialized at this point.
|
|
const OpenXRTweaks & | GetTweaks () const |
|
const StringVector | GetExtensions () const |
|
|
bool | InitializeSession (const VRSessionParameters ¶ms) override |
|
void | ShutdownSession () override |
| Shuts down the VR session.
|
|
bool | IsConnected () const override |
| Returns whether the engine is connected to VR session.
|
|
bool | IsRunning () const override |
| Returns whether the VR frame loop is running.
|
|
bool | IsVisible () const override |
| Returns whether the VR session is presented to the user.
|
|
bool | IsFocused () const override |
| Return whether the VR session accepts user input.
|
|
VRRuntime | GetRuntime () const override |
| Return the classification of VR runtime being used,.
|
|
const char * | GetRuntimeName () const override |
| Return a string name for the runtime, spaces are not allowed as this will be passed along to shaders.
|
|
void | TriggerHaptic (VRHand hand, float durationSeconds, float cyclesPerSec, float amplitude) override |
| Activates a haptic for a given hand.
|
|
Matrix3x4 | GetHandTransform (VRHand hand) const override |
| Returns the transform for a given hand in head relative space.
|
|
Matrix3x4 | GetHandAimTransform (VRHand hand) const override |
| Transform matrix of the hand aim base position.
|
|
Ray | GetHandAimRay (VRHand hand) const override |
| Returns the aiming ray for a given hand.
|
|
void | GetHandVelocity (VRHand hand, Vector3 *linear, Vector3 *angular) const override |
| Return linear and/or angular velocity of a hand.
|
|
Matrix3x4 | GetEyeLocalTransform (VREye eye) const override |
| Return the head-relative eye transform.
|
|
Matrix4 | GetProjection (VREye eye, float nearDist, float farDist) const override |
| Return the projection matrix for an eye.
|
|
Matrix3x4 | GetHeadTransform () const override |
| Return the head transform in stage space (or local if no stage).
|
|
void | SetCurrentActionSet (SharedPtr< XRActionGroup > set) override |
|
| VirtualReality (Context *context) |
|
virtual void | ConnectToRig (const VRRigDesc &rig) |
| Connects session to the rig.
|
|
bool | IsRoomScale () const |
| Returns true if this VR configuration is running at room scale.
|
|
const VRRigDesc & | GetRig () const |
| Returns currently connected rig.
|
|
float | GetIPDCorrection () const |
| IPD correction factor in millimeters.
|
|
float | GetScaleCorrection () const |
| Scale correction factor, premultiplied into all transforms.
|
|
void | SetIPDCorrection (float value) |
|
void | SetScaleCorrection (float value) |
| Scale correction can also be done on the VRRig node.
|
|
int | GetRecommendedMultiSample () const |
| Returns recommended MSAA level.
|
|
int | GetMultiSample () const |
| Returns the currently chosen MSAA level.
|
|
IntRect | GetLeftEyeRect () const |
| Viewport rectangle for left eye, required for multipass single-RT.
|
|
IntRect | GetRightEyeRect () const |
| Viewport rectangle for right eye, required for multipass single-RT.
|
|
XRBinding * | GetInputBinding (const ea::string &path) const |
| Attempts to retrieve an input binding.
|
|
XRBinding * | GetInputBinding (const ea::string &path, VRHand hand) const |
| Attempts to retrieve a hand specific input binding.
|
|
XRActionGroup * | GetCurrentActionSet () const |
| Returns the currently bound action set, null if no action set.
|
|
virtual void | SetCurrentActionSet (const ea::string &setName) |
| Sets the current action set by name.
|
|
ea::string | GetSystemName () const |
| Returns the system name, ie. Windows Mixed Reality.
|
|
| Object (Context *context) |
| Construct.
|
|
| ~Object () override |
| Destruct. Clean up self from event sender & receiver structures.
|
|
virtual StringHash | GetType () const =0 |
|
virtual const ea::string & | GetTypeName () const =0 |
|
virtual const TypeInfo * | GetTypeInfo () const =0 |
| Return type info.
|
|
virtual bool | IsInstanceOf (StringHash type) const =0 |
| Check whether current instance implements specified type.
|
|
virtual void | OnEvent (Object *sender, StringHash eventType, VariantMap &eventData) |
| Handle event.
|
|
virtual void | SerializeInBlock (Archive &archive) |
| Serialize content from/to archive. May throw ArchiveException.
|
|
template<typename T > |
bool | IsInstanceOf () const |
| Check current instance is type of specified class.
|
|
template<typename T > |
T * | Cast () |
| Cast the object to specified most derived class.
|
|
template<typename T > |
const T * | Cast () const |
| Cast the object to specified most derived class.
|
|
void | SubscribeToEventManual (StringHash eventType, EventHandler *handler) |
| Subscribe to an event that can be sent by any sender.
|
|
void | SubscribeToEventManual (Object *sender, StringHash eventType, EventHandler *handler) |
| Subscribe to a specific sender's event.
|
|
template<class T > |
void | SubscribeToEvent (StringHash eventType, T handler) |
| Subscribe to an event that can be sent by any sender.
|
|
template<class T > |
void | SubscribeToEvent (Object *sender, StringHash eventType, T handler) |
| Subscribe to a specific sender's event.
|
|
void | UnsubscribeFromEvent (StringHash eventType) |
| Unsubscribe from an event.
|
|
void | UnsubscribeFromEvent (Object *sender, StringHash eventType) |
| Unsubscribe from a specific sender's event.
|
|
void | UnsubscribeFromEvents (Object *sender) |
| Unsubscribe from a specific sender's events.
|
|
void | UnsubscribeFromAllEvents () |
| Unsubscribe from all events.
|
|
void | UnsubscribeFromAllEventsExcept (const ea::vector< StringHash > &exceptions) |
| Unsubscribe from all events except those listed.
|
|
void | UnsubscribeFromAllEventsExcept (const ea::vector< Object * > &exceptions) |
| Unsubscribe from all events except those with listed senders.
|
|
void | SendEvent (StringHash eventType) |
| Send event to all subscribers.
|
|
void | SendEvent (StringHash eventType, VariantMap &eventData) |
| Send event with parameters to all subscribers.
|
|
VariantMap & | GetEventDataMap () const |
| Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
|
|
template<typename... Args> |
void | SendEvent (StringHash eventType, const Args &... args) |
| Send event with variadic parameter pairs to all subscribers. The parameters are (paramID, paramValue) pairs.
|
|
Context * | GetContext () const |
| Return execution context.
|
|
const Variant & | GetGlobalVar (StringHash key) const |
|
const VariantMap & | GetGlobalVars () const |
|
void | SetGlobalVar (StringHash key, const Variant &value) |
|
Object * | GetSubsystem (StringHash type) const |
| Return subsystem by type.
|
|
Object * | GetEventSender () const |
| Return active event sender. Null outside event handling.
|
|
EventHandler * | GetEventHandler () const |
| Return active event handler. Null outside event handling.
|
|
bool | HasSubscribedToEvent (StringHash eventType) const |
| Return whether has subscribed to an event without specific sender.
|
|
bool | HasSubscribedToEvent (Object *sender, StringHash eventType) const |
| Return whether has subscribed to a specific sender's event.
|
|
bool | HasEventHandlers () const |
| Return whether has subscribed to any event.
|
|
template<class T > |
T * | GetSubsystem () const |
| Template version of returning a subsystem.
|
|
const ea::string & | GetCategory () const |
|
void | SendEvent (StringHash eventType, const VariantMap &eventData) |
| Send event with parameters to all subscribers.
|
|
void | SetBlockEvents (bool block) |
| Block object from sending and receiving events.
|
|
bool | GetBlockEvents () const |
| Return sending and receiving events blocking status.
|
|
| RefCounted () |
| Construct. Allocate the reference count structure and set an initial self weak reference.
|
|
virtual | ~RefCounted () |
| Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
|
|
| RefCounted (const RefCounted &rhs)=delete |
| Prevent copy construction.
|
|
RefCounted & | operator= (const RefCounted &rhs)=delete |
| Prevent assignment.
|
|
int | AddRef () |
|
int | ReleaseRef () |
|
int | Refs () const |
|
int | WeakRefs () const |
|
RefCount * | RefCountPtr () const |
| Return pointer to the reference count structure.
|
|
bool | HasScriptObject () const |
| Return true if script runtime object wrapping this native object exists.
|
|
bool | IsScriptStrongRef () const |
| Return true if script reference is strong.
|
|
Register as a subsystem, Initialize sometime after GFX has been initialized but before Audio is initialized ... otherwise it won't get the right audio target. Or reinit audio querying for the default device.
Currently setup around a VR experience. Minor changes will be required for additive / HoloLens. Mobile AR would be best done with another class that's pared down to the specifics that apply instead of trying to make this class into a monster.
Expectations for the VR-Rig:
Scene
- "VRRig" NETWORKED, this is effectively the tracking volume center floor
- "Head" NETWORKED
- "Left_Eye" LOCAL
- "Right_Eye" LOCAL
- "Left_Hand" NETWORKED, will have enabled status set based on controller availability
- "Right_Hand" NETWORKED, will have enabled status set based on controller availability
To-Do:
- Trackers
- Multiple Action-Sets
- Hand Skeleton