[WebVR] Add OpenVR to the tree and to the build
[WebKit-https.git] / Source / ThirdParty / openvr / src / ivrclientcore.h
1 //========= Copyright Valve Corporation ============//
2 #pragma once
3
4 namespace vr
5 {
6
7 class IVRClientCore
8 {
9 public:
10        /** Initializes the system */
11        virtual EVRInitError Init( vr::EVRApplicationType eApplicationType, const char *pStartupInfo ) = 0;
12
13        /** cleans up everything in vrclient.dll and prepares the DLL to be unloaded */
14        virtual void Cleanup() = 0;
15
16        /** checks to see if the specified interface/version is supported in this vrclient.dll */
17        virtual EVRInitError IsInterfaceVersionValid( const char *pchInterfaceVersion ) = 0;
18
19        /** Retrieves any interface from vrclient.dll */
20        virtual void *GetGenericInterface( const char *pchNameAndVersion, EVRInitError *peError ) = 0;
21
22        /** Returns true if any driver has an HMD attached. Can be called outside of Init/Cleanup */
23        virtual bool BIsHmdPresent() = 0;
24
25        /** Returns an English error string from inside vrclient.dll which might be newer than the API DLL */
26        virtual const char *GetEnglishStringForHmdError( vr::EVRInitError eError ) = 0;
27
28        /** Returns an error symbol from inside vrclient.dll which might be newer than the API DLL */
29        virtual const char *GetIDForVRInitError( vr::EVRInitError eError ) = 0;
30 };
31
32 static const char * const IVRClientCore_Version = "IVRClientCore_003";
33
34
35 }