50 lines
912 B
C++
50 lines
912 B
C++
#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
|
|
|