#ifndef IXR_H #define IXR_H #include "tier1/interface.h" #include "tier2/iappsystem.h" #include "materialsystem/imaterialsystem.h" #include "trig.h" struct XRRenderSurface_t { uint32_t m_uWidth; uint32_t m_uHeight; Vector m_vPosition; Quat m_vRotation; float m_fFov; }; abstract_class IXRHeadset { public: virtual uint32_t GetSurfaceCount() = 0; virtual XRRenderSurface_t GetSurface( uint32_t i ) = 0; virtual void SetSurfaceImage( uint32_t i, IImage *pImage ) = 0; }; abstract_class IXRController { public: }; abstract_class IXRManager: public IAppSystem2 { public: virtual void Frame() = 0; virtual void PreRender() = 0; virtual void PostRender() = 0; virtual void CopySwapchain() = 0; virtual uint32_t GetHeadsetCount() = 0; virtual IXRHeadset *GetHeadset( uint32_t i ) = 0; }; #define XR_INTERFACE_VERSION "XR001" #define OPEN_XR_INTERFACE_VERSION "Open" XR_INTERFACE_VERSION #endif