mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-06 05:37:48 +00:00
GEEKING
This commit is contained in:
@@ -0,0 +1,183 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_CAPI_Util.h
|
||||
\brief This header provides LibOVR utility function declarations
|
||||
\copyright Copyright 2015 Oculus VR, LLC All Rights reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef OVR_CAPI_Util_h
|
||||
#define OVR_CAPI_Util_h
|
||||
|
||||
|
||||
#include "OVR_CAPI.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/// Enumerates modifications to the projection matrix based on the application's needs.
|
||||
///
|
||||
/// \see ovrMatrix4f_Projection
|
||||
///
|
||||
typedef enum ovrProjectionModifier_
|
||||
{
|
||||
/// Use for generating a default projection matrix that is:
|
||||
/// * Left-handed.
|
||||
/// * Near depth values stored in the depth buffer are smaller than far depth values.
|
||||
/// * Both near and far are explicitly defined.
|
||||
/// * With a clipping range that is (0 to w).
|
||||
ovrProjection_None = 0x00,
|
||||
|
||||
/// Enable if using right-handed transformations in your application.
|
||||
ovrProjection_RightHanded = 0x01,
|
||||
|
||||
/// After the projection transform is applied, far values stored in the depth buffer will be less than closer depth values.
|
||||
/// NOTE: Enable only if the application is using a floating-point depth buffer for proper precision.
|
||||
ovrProjection_FarLessThanNear = 0x02,
|
||||
|
||||
/// When this flag is used, the zfar value pushed into ovrMatrix4f_Projection() will be ignored
|
||||
/// NOTE: Enable only if ovrProjection_FarLessThanNear is also enabled where the far clipping plane will be pushed to infinity.
|
||||
ovrProjection_FarClipAtInfinity = 0x04,
|
||||
|
||||
/// Enable if the application is rendering with OpenGL and expects a projection matrix with a clipping range of (-w to w).
|
||||
/// Ignore this flag if your application already handles the conversion from D3D range (0 to w) to OpenGL.
|
||||
ovrProjection_ClipRangeOpenGL = 0x08,
|
||||
} ovrProjectionModifier;
|
||||
|
||||
|
||||
/// Return values for ovr_Detect.
|
||||
///
|
||||
/// \see ovr_Detect
|
||||
///
|
||||
typedef struct OVR_ALIGNAS(8) ovrDetectResult_
|
||||
{
|
||||
/// Is ovrFalse when the Oculus Service is not running.
|
||||
/// This means that the Oculus Service is either uninstalled or stopped.
|
||||
/// IsOculusHMDConnected will be ovrFalse in this case.
|
||||
/// Is ovrTrue when the Oculus Service is running.
|
||||
/// This means that the Oculus Service is installed and running.
|
||||
/// IsOculusHMDConnected will reflect the state of the HMD.
|
||||
ovrBool IsOculusServiceRunning;
|
||||
|
||||
/// Is ovrFalse when an Oculus HMD is not detected.
|
||||
/// If the Oculus Service is not running, this will be ovrFalse.
|
||||
/// Is ovrTrue when an Oculus HMD is detected.
|
||||
/// This implies that the Oculus Service is also installed and running.
|
||||
ovrBool IsOculusHMDConnected;
|
||||
|
||||
OVR_UNUSED_STRUCT_PAD(pad0, 6) ///< \internal struct padding
|
||||
|
||||
} ovrDetectResult;
|
||||
|
||||
OVR_STATIC_ASSERT(sizeof(ovrDetectResult) == 8, "ovrDetectResult size mismatch");
|
||||
|
||||
|
||||
/// Detects Oculus Runtime and Device Status
|
||||
///
|
||||
/// Checks for Oculus Runtime and Oculus HMD device status without loading the LibOVRRT
|
||||
/// shared library. This may be called before ovr_Initialize() to help decide whether or
|
||||
/// not to initialize LibOVR.
|
||||
///
|
||||
/// \param[in] timeoutMsec Specifies a timeout to wait for HMD to be attached or 0 to poll.
|
||||
///
|
||||
/// \return Returns an ovrDetectResult object indicating the result of detection.
|
||||
///
|
||||
/// \see ovrDetectResult
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrDetectResult) ovr_Detect(int timeoutMsec);
|
||||
|
||||
// On the Windows platform,
|
||||
#ifdef _WIN32
|
||||
/// This is the Windows Named Event name that is used to check for HMD connected state.
|
||||
#define OVR_HMD_CONNECTED_EVENT_NAME L"OculusHMDConnected"
|
||||
#endif // _WIN32
|
||||
|
||||
|
||||
/// Used to generate projection from ovrEyeDesc::Fov.
|
||||
///
|
||||
/// \param[in] fov Specifies the ovrFovPort to use.
|
||||
/// \param[in] znear Distance to near Z limit.
|
||||
/// \param[in] zfar Distance to far Z limit.
|
||||
/// \param[in] projectionModFlags A combination of the ovrProjectionModifier flags.
|
||||
///
|
||||
/// \return Returns the calculated projection matrix.
|
||||
///
|
||||
/// \see ovrProjectionModifier
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrMatrix4f) ovrMatrix4f_Projection(ovrFovPort fov, float znear, float zfar, unsigned int projectionModFlags);
|
||||
|
||||
|
||||
/// Extracts the required data from the result of ovrMatrix4f_Projection.
|
||||
///
|
||||
/// \param[in] projection Specifies the project matrix from which to extract ovrTimewarpProjectionDesc.
|
||||
/// \param[in] projectionModFlags A combination of the ovrProjectionModifier flags.
|
||||
/// \return Returns the extracted ovrTimewarpProjectionDesc.
|
||||
/// \see ovrTimewarpProjectionDesc
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrTimewarpProjectionDesc) ovrTimewarpProjectionDesc_FromProjection(ovrMatrix4f projection, unsigned int projectionModFlags);
|
||||
|
||||
|
||||
/// Generates an orthographic sub-projection.
|
||||
///
|
||||
/// Used for 2D rendering, Y is down.
|
||||
///
|
||||
/// \param[in] projection The perspective matrix that the orthographic matrix is derived from.
|
||||
/// \param[in] orthoScale Equal to 1.0f / pixelsPerTanAngleAtCenter.
|
||||
/// \param[in] orthoDistance Equal to the distance from the camera in meters, such as 0.8m.
|
||||
/// \param[in] hmdToEyeViewOffsetX Specifies the offset of the eye from the center.
|
||||
///
|
||||
/// \return Returns the calculated projection matrix.
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrMatrix4f) ovrMatrix4f_OrthoSubProjection(ovrMatrix4f projection, ovrVector2f orthoScale,
|
||||
float orthoDistance, float hmdToEyeViewOffsetX);
|
||||
|
||||
|
||||
|
||||
/// Computes offset eye poses based on headPose returned by ovrTrackingState.
|
||||
///
|
||||
/// \param[in] headPose Indicates the HMD position and orientation to use for the calculation.
|
||||
/// \param[in] hmdToEyeViewOffset Can be ovrEyeRenderDesc.HmdToEyeViewOffset returned from
|
||||
/// ovr_GetRenderDesc. For monoscopic rendering, use a vector that is the average
|
||||
/// of the two vectors for both eyes.
|
||||
/// \param[out] outEyePoses If outEyePoses are used for rendering, they should be passed to
|
||||
/// ovr_SubmitFrame in ovrLayerEyeFov::RenderPose or ovrLayerEyeFovDepth::RenderPose.
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(void) ovr_CalcEyePoses(ovrPosef headPose,
|
||||
const ovrVector3f hmdToEyeViewOffset[2],
|
||||
ovrPosef outEyePoses[2]);
|
||||
|
||||
|
||||
/// Returns the predicted head pose in outHmdTrackingState and offset eye poses in outEyePoses.
|
||||
///
|
||||
/// This is a thread-safe function where caller should increment frameIndex with every frame
|
||||
/// and pass that index where applicable to functions called on the rendering thread.
|
||||
/// Assuming outEyePoses are used for rendering, it should be passed as a part of ovrLayerEyeFov.
|
||||
/// The caller does not need to worry about applying HmdToEyeViewOffset to the returned outEyePoses variables.
|
||||
///
|
||||
/// \param[in] hmd Specifies an ovrHmd previously returned by ovr_Create.
|
||||
/// \param[in] frameIndex Specifies the targeted frame index, or 0 to refer to one frame after
|
||||
/// the last time ovr_SubmitFrame was called.
|
||||
/// \param[in] hmdToEyeViewOffset Can be ovrEyeRenderDesc.HmdToEyeViewOffset returned from
|
||||
/// ovr_GetRenderDesc. For monoscopic rendering, use a vector that is the average
|
||||
/// of the two vectors for both eyes.
|
||||
/// \param[in] latencyMarker Specifies that this call is the point in time where
|
||||
/// the "App-to-Mid-Photon" latency timer starts from. If a given ovrLayer
|
||||
/// provides "SensorSampleTimestamp", that will override the value stored here.
|
||||
/// \param[out] outEyePoses The predicted eye poses.
|
||||
/// \param[out] outHmdTrackingState The predicted ovrTrackingState. May be NULL, in which case it is ignored.
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(void) ovr_GetEyePoses(ovrSession session, long long frameIndex, ovrBool latencyMarker,
|
||||
const ovrVector3f hmdToEyeViewOffset[2],
|
||||
ovrPosef outEyePoses[2],
|
||||
ovrTrackingState* outHmdTrackingState);
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
|
||||
#endif // Header include guard
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,70 @@
|
||||
/************************************************************************************
|
||||
|
||||
Filename : OVR_StereoProjection.h
|
||||
Content : Stereo projection functions
|
||||
Created : November 30, 2013
|
||||
Authors : Tom Fosyth
|
||||
|
||||
Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
|
||||
|
||||
Licensed under the Oculus VR Rift SDK License Version 3.2 (the "License");
|
||||
you may not use the Oculus VR Rift SDK except in compliance with the License,
|
||||
which is provided at the time of installation or download, or which
|
||||
otherwise accompanies this software in either electronic or hard copy form.
|
||||
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.oculusvr.com/licenses/LICENSE-3.2
|
||||
|
||||
Unless required by applicable law or agreed to in writing, the Oculus VR SDK
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef OVR_StereoProjection_h
|
||||
#define OVR_StereoProjection_h
|
||||
|
||||
|
||||
#include "Extras/OVR_Math.h"
|
||||
|
||||
|
||||
namespace OVR {
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
// ***** Stereo Enumerations
|
||||
|
||||
// StereoEye specifies which eye we are rendering for; it is used to
|
||||
// retrieve StereoEyeParams.
|
||||
enum StereoEye
|
||||
{
|
||||
StereoEye_Left,
|
||||
StereoEye_Right,
|
||||
StereoEye_Center
|
||||
};
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
// ***** Propjection functions
|
||||
|
||||
Matrix4f CreateProjection ( bool rightHanded, bool isOpenGL, FovPort fov, StereoEye eye,
|
||||
float zNear = 0.01f, float zFar = 10000.0f,
|
||||
bool flipZ = false, bool farAtInfinity = false);
|
||||
|
||||
Matrix4f CreateOrthoSubProjection ( bool rightHanded, StereoEye eyeType,
|
||||
float tanHalfFovX, float tanHalfFovY,
|
||||
float unitsX, float unitsY, float distanceFromCamera,
|
||||
float interpupillaryDistance, Matrix4f const &projection,
|
||||
float zNear = 0.0f, float zFar = 0.0f,
|
||||
bool flipZ = false, bool farAtInfinity = false);
|
||||
|
||||
ScaleAndOffset2D CreateNDCScaleAndOffsetFromFov ( FovPort fov );
|
||||
|
||||
|
||||
} //namespace OVR
|
||||
|
||||
#endif // OVR_StereoProjection_h
|
||||
@@ -0,0 +1,21 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR.h
|
||||
\brief The main public interface to Oculus for C++ Developers.
|
||||
\copyright Copyright 2015 Oculus VR, LLC All Rights reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef OVR_h
|
||||
#define OVR_h
|
||||
|
||||
#include "OVR_Version.h"
|
||||
#include "OVR_CAPI.h"
|
||||
|
||||
/* The following includes are deprecated from this location and will be removed from a future version of this library. */
|
||||
#include "Kernel/OVR_Types.h"
|
||||
#include "Kernel/OVR_RefCount.h"
|
||||
#include "Kernel/OVR_Std.h"
|
||||
#include "Kernel/OVR_Alg.h"
|
||||
#include "Extras/OVR_Math.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
#include "OVR_CAPI_0_8_0.h"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,48 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_CAPI_Audio.h
|
||||
\brief CAPI audio functions.
|
||||
\copyright Copyright 2015 Oculus VR, LLC. All Rights reserved.
|
||||
************************************************************************************/
|
||||
|
||||
|
||||
#ifndef OVR_CAPI_Audio_h
|
||||
#define OVR_CAPI_Audio_h
|
||||
|
||||
#include "OVR_CAPI.h"
|
||||
#include <Windows.h>
|
||||
|
||||
#define OVR_AUDIO_MAX_DEVICE_STR_SIZE 128
|
||||
|
||||
/// Gets the ID of the preferred VR audio device.
|
||||
///
|
||||
/// Multiple calls to ovr_CreateSwapTextureSetD3D11 for the same ovrHmd is supported, but applications
|
||||
/// cannot rely on switching between ovrSwapTextureSets at runtime without a performance penalty.
|
||||
///
|
||||
/// \param[out] deviceOutId The ID of the user's preferred VR audio device to use, which will be valid upon a successful return value, else it will be NULL.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetAudioDeviceOutWaveId(UINT* deviceOutId);
|
||||
|
||||
|
||||
/// Gets the GUID of the preferred VR audio device as a string.
|
||||
///
|
||||
/// \param[out] deviceOutStrBuffer A buffer where the GUID string for the device will copied to.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetAudioDeviceOutGuidStr(WCHAR deviceOutStrBuffer[OVR_AUDIO_MAX_DEVICE_STR_SIZE]);
|
||||
|
||||
|
||||
/// Gets the GUID of the preferred VR audio device.
|
||||
///
|
||||
/// \param[out] deviceOutGuid The GUID of the user's preferred VR audio device to use, which will be valid upon a successful return value, else it will be NULL.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_GetAudioDeviceOutGuid(GUID* deviceOutGuid);
|
||||
|
||||
#endif // OVR_CAPI_Audio_h
|
||||
@@ -0,0 +1,128 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_CAPI_D3D.h
|
||||
\brief D3D specific structures used by the CAPI interface.
|
||||
\copyright Copyright 2014 Oculus VR, LLC All Rights reserved.
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef OVR_CAPI_D3D_h
|
||||
#define OVR_CAPI_D3D_h
|
||||
|
||||
#include "OVR_CAPI.h"
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4324) // structure was padded due to __declspec(align())
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
// ***** D3D11 Specific
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(push, 0)
|
||||
#endif
|
||||
#include <d3d11.h>
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
/// Used to pass D3D11 eye texture data to ovr_EndFrame.
|
||||
typedef struct OVR_ALIGNAS(OVR_PTR_SIZE) ovrD3D11TextureData_
|
||||
{
|
||||
ovrTextureHeader Header; ///< General device settings.
|
||||
OVR_ON64(OVR_UNUSED_STRUCT_PAD(pad0, 4)) ///< \internal struct padding.
|
||||
ID3D11Texture2D* pTexture; ///< The D3D11 texture containing the undistorted eye image.
|
||||
ID3D11ShaderResourceView* pSRView; ///< The D3D11 shader resource view for this texture.
|
||||
} ovrD3D11TextureData;
|
||||
|
||||
OVR_STATIC_ASSERT(sizeof(ovrTexture) >= sizeof(ovrD3D11TextureData), "Insufficient size.");
|
||||
OVR_STATIC_ASSERT(sizeof(ovrD3D11TextureData) == sizeof(ovrTextureHeader) OVR_ON64(+4) + 2 * OVR_PTR_SIZE, "size mismatch");
|
||||
|
||||
|
||||
/// Contains D3D11-specific texture information.
|
||||
union ovrD3D11Texture
|
||||
{
|
||||
ovrTexture Texture; ///< General device settings.
|
||||
ovrD3D11TextureData D3D11; ///< D3D11-specific settings.
|
||||
};
|
||||
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
/// Flags used when creating a swap texture set for a D3D11 renderer
|
||||
typedef enum ovrSwapTextureSetD3D11Flags_
|
||||
{
|
||||
ovrSwapTextureSetD3D11_Typeless = 0x0001, ///< Forces creation of a DXGI_*_TYPELESS texture. ShaderResourceView still uses specified format.
|
||||
|
||||
ovrSwapTextureSetD3D11_EnumSize = 0x7fffffff ///< \internal Force type int32_t.
|
||||
} ovrSwapTextureSetD3D11Flags;
|
||||
|
||||
/// Create Texture Set suitable for use with D3D11.
|
||||
///
|
||||
/// Multiple calls to ovr_CreateSwapTextureSetD3D11 for the same ovrHmd are supported, but applications
|
||||
/// cannot rely on switching between ovrSwapTextureSets at runtime without a performance penalty.
|
||||
///
|
||||
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||
/// \param[in] device Specifies the associated ID3D11Device, which must be the one that the textures will be used with in the application's process.
|
||||
/// \param[in] desc Specifies requested texture properties. See notes for more info about texture format.
|
||||
/// \param[in] miscFlags Specifies misc bit flags of type \a ovrSwapTextureSetD3D11Flags used when creating the swap textures
|
||||
/// \param[out] outTextureSet Specifies the created ovrSwapTextureSet, which will be valid upon a successful return value, else it will be NULL.
|
||||
/// This texture set must be eventually destroyed via ovr_DestroySwapTextureSet before destroying the HMD with ovr_Destroy.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
/// \note The texture format provided in \a desc should be thought of as the format the distortion-compositor will use for the
|
||||
/// ShaderResourceView when reading the contents of the texture. To that end, it is highly recommended that the application
|
||||
/// requests swap-texture-set formats that are in sRGB-space (e.g. DXGI_FORMAT_R8G8B8A8_UNORM_SRGB) as the compositor
|
||||
/// does sRGB-correct rendering. As such, the compositor relies on the GPU's hardware sampler to do the sRGB-to-linear
|
||||
/// conversion. If the application still prefers to render to a linear format (e.g. DXGI_FORMAT_R8G8B8A8_UNORM) while handling the
|
||||
/// linear-to-gamma conversion via HLSL code, then the application must still request the corresponding sRGB format and also use
|
||||
/// the \a ovrSwapTextureSetD3D11_Typeless flag. This will allow the application to create a RenderTargetView that is the desired
|
||||
/// linear format while the compositor continues to treat it as sRGB. Failure to do so will cause the compositor to apply
|
||||
/// unexpected gamma conversions leading to gamma-curve artifacts. The \a ovrSwapTextureSetD3D11_Typeless flag for depth buffer
|
||||
/// formats (e.g. DXGI_FORMAT_D32) are ignored as they are always converted to be typeless.
|
||||
///
|
||||
/// \see ovr_DestroySwapTextureSet
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateSwapTextureSetD3D11(ovrSession session,
|
||||
ID3D11Device* device,
|
||||
const D3D11_TEXTURE2D_DESC* desc,
|
||||
unsigned int miscFlags,
|
||||
ovrSwapTextureSet** outTextureSet);
|
||||
|
||||
/// Create Mirror Texture which is auto-refreshed to mirror Rift contents produced by this application.
|
||||
///
|
||||
/// A second call to ovr_CreateMirrorTextureD3D11 for a given ovrHmd before destroying the first one
|
||||
/// is not supported and will result in an error return.
|
||||
///
|
||||
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||
/// \param[in] device Specifies the associated ID3D11Device, which must be the one that the textures will be used with in the application's process.
|
||||
/// \param[in] desc Specifies requested texture properties. See notes for info about texture format.
|
||||
/// \param[in] miscFlags Specifies misc bit flags of type \a ovrSwapTextureSetD3D11Flags used when creating the swap textures
|
||||
/// \param[out] outMirrorTexture Specifies the created ovrTexture, which will be valid upon a successful return value, else it will be NULL.
|
||||
/// This texture must be eventually destroyed via ovr_DestroyMirrorTexture before destroying the HMD with ovr_Destroy.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
/// \note The texture format provided in \a desc should be thought of as the format the compositor will use for the RenderTargetView when
|
||||
/// writing into mirror texture. To that end, it is highly recommended that the application requests a mirror texture format that is
|
||||
/// in sRGB-space (e.g. DXGI_FORMAT_R8G8B8A8_UNORM_SRGB) as the compositor does sRGB-correct rendering. If however the application wants
|
||||
/// to still read the mirror texture as a linear format (e.g. DXGI_FORMAT_R8G8B8A8_UNORM) and handle the sRGB-to-linear conversion in
|
||||
/// HLSL code, then it is recommended the application still requests an sRGB format and also use the \a ovrSwapTextureSetD3D11_Typeless
|
||||
/// flag. This will allow the application to bind a ShaderResourceView that is a linear format while the compositor continues
|
||||
/// to treat is as sRGB. Failure to do so will cause the compositor to apply unexpected gamma conversions leading to
|
||||
/// gamma-curve artifacts.
|
||||
///
|
||||
/// \see ovr_DestroyMirrorTexture
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateMirrorTextureD3D11(ovrSession session,
|
||||
ID3D11Device* device,
|
||||
const D3D11_TEXTURE2D_DESC* desc,
|
||||
unsigned int miscFlags,
|
||||
ovrTexture** outMirrorTexture);
|
||||
|
||||
|
||||
|
||||
#endif // OVR_CAPI_D3D_h
|
||||
@@ -0,0 +1,103 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_CAPI_GL.h
|
||||
\brief OpenGL-specific structures used by the CAPI interface.
|
||||
\copyright Copyright 2013 Oculus VR, LLC. All Rights reserved.
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef OVR_CAPI_GL_h
|
||||
#define OVR_CAPI_GL_h
|
||||
|
||||
#include "OVR_CAPI.h"
|
||||
|
||||
// We avoid gl.h #includes here which interferes with some users' use of alternatives and typedef GLuint manually.
|
||||
typedef unsigned int GLuint;
|
||||
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4324) // structure was padded due to __declspec(align())
|
||||
#endif
|
||||
|
||||
/// Used to pass GL eye texture data to ovr_EndFrame.
|
||||
typedef struct ovrGLTextureData_s
|
||||
{
|
||||
ovrTextureHeader Header; ///< General device settings.
|
||||
GLuint TexId; ///< The OpenGL name for this texture.
|
||||
} ovrGLTextureData;
|
||||
|
||||
OVR_STATIC_ASSERT(sizeof(ovrTexture) >= sizeof(ovrGLTextureData), "Insufficient size.");
|
||||
OVR_STATIC_ASSERT(sizeof(ovrGLTextureData) == sizeof(ovrTextureHeader) + 4, "size mismatch");
|
||||
|
||||
/// Contains OpenGL-specific texture information.
|
||||
typedef union ovrGLTexture_s
|
||||
{
|
||||
ovrTexture Texture; ///< General device settings.
|
||||
ovrGLTextureData OGL; ///< OpenGL-specific settings.
|
||||
} ovrGLTexture;
|
||||
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/// Creates a Texture Set suitable for use with OpenGL.
|
||||
///
|
||||
/// Multiple calls to ovr_CreateSwapTextureSetD3D11 for the same ovrHmd are supported, but applications
|
||||
/// cannot rely on switching between ovrSwapTextureSets at runtime without a performance penalty.
|
||||
///
|
||||
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||
/// \param[in] format Specifies the texture format.
|
||||
/// \param[in] width Specifies the requested texture width.
|
||||
/// \param[in] height Specifies the requested texture height.
|
||||
/// \param[out] outTextureSet Specifies the created ovrSwapTextureSet, which will be valid upon a successful return value, else it will be NULL.
|
||||
/// This texture set must be eventually destroyed via ovr_DestroySwapTextureSet before destroying the HMD with ovr_Destroy.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
/// \note The \a format provided should be thought of as the format the distortion compositor will use when reading the contents of the
|
||||
/// texture. To that end, it is highly recommended that the application requests swap-texture-set formats that are in sRGB-space (e.g. GL_SRGB_ALPHA8)
|
||||
/// as the distortion compositor does sRGB-correct rendering. Furthermore, the app should then make sure "glEnable(GL_FRAMEBUFFER_SRGB);"
|
||||
/// is called before rendering into these textures. Even though it is not recommended, if the application would like to treat the
|
||||
/// texture as a linear format and do linear-to-gamma conversion in GLSL, then the application can avoid calling "glEnable(GL_FRAMEBUFFER_SRGB);",
|
||||
/// but should still pass in GL_SRGB_ALPHA8 (not GL_RGBA) for the \a format. Failure to do so will cause the distortion compositor
|
||||
/// to apply incorrect gamma conversions leading to gamma-curve artifacts.
|
||||
///
|
||||
/// \see ovr_DestroySwapTextureSet
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateSwapTextureSetGL(ovrSession session, GLuint format,
|
||||
int width, int height,
|
||||
ovrSwapTextureSet** outTextureSet);
|
||||
|
||||
|
||||
/// Creates a Mirror Texture which is auto-refreshed to mirror Rift contents produced by this application.
|
||||
///
|
||||
/// A second call to ovr_CreateMirrorTextureGL for a given ovrHmd before destroying the first one
|
||||
/// is not supported and will result in an error return.
|
||||
///
|
||||
/// \param[in] session Specifies an ovrSession previously returned by ovr_Create.
|
||||
/// \param[in] format Specifies the texture format.
|
||||
/// \param[in] width Specifies the requested texture width.
|
||||
/// \param[in] height Specifies the requested texture height.
|
||||
/// \param[out] outMirrorTexture Specifies the created ovrSwapTexture, which will be valid upon a successful return value, else it will be NULL.
|
||||
/// This texture must be eventually destroyed via ovr_DestroyMirrorTexture before destroying the HMD with ovr_Destroy.
|
||||
///
|
||||
/// \return Returns an ovrResult indicating success or failure. In the case of failure, use
|
||||
/// ovr_GetLastErrorInfo to get more information.
|
||||
///
|
||||
/// \note The \a format provided should be thought of as the format the distortion compositor will use when writing into the mirror
|
||||
/// texture. It is highly recommended that mirror textures are requested as GL_SRGB_ALPHA8 because the distortion compositor
|
||||
/// does sRGB-correct rendering. If the application requests a non-sRGB format (e.g. GL_RGBA) as the mirror texture,
|
||||
/// then the application might have to apply a manual linear-to-gamma conversion when reading from the mirror texture.
|
||||
/// Failure to do so can result in incorrect gamma conversions leading to gamma-curve artifacts and color banding.
|
||||
///
|
||||
/// \see ovr_DestroyMirrorTexture
|
||||
///
|
||||
OVR_PUBLIC_FUNCTION(ovrResult) ovr_CreateMirrorTextureGL(ovrSession session, GLuint format,
|
||||
int width, int height,
|
||||
ovrTexture** outMirrorTexture);
|
||||
|
||||
|
||||
#endif // OVR_CAPI_GL_h
|
||||
@@ -0,0 +1,61 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_CAPI.h
|
||||
\brief Keys for CAPI calls
|
||||
\copyright Copyright 2014 Oculus VR, LLC All Rights reserved.
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef OVR_CAPI_Keys_h
|
||||
#define OVR_CAPI_Keys_h
|
||||
|
||||
#include "OVR_Version.h"
|
||||
|
||||
|
||||
#define OVR_KEY_USER "User" // string
|
||||
#define OVR_KEY_NAME "Name" // string
|
||||
#define OVR_KEY_GENDER "Gender" // string "Male", "Female", or "Unknown"
|
||||
#define OVR_KEY_PLAYER_HEIGHT "PlayerHeight" // float meters
|
||||
#define OVR_KEY_EYE_HEIGHT "EyeHeight" // float meters
|
||||
#define OVR_KEY_IPD "IPD" // float meters
|
||||
#define OVR_KEY_NECK_TO_EYE_DISTANCE "NeckEyeDistance" // float[2] meters
|
||||
#define OVR_KEY_EYE_RELIEF_DIAL "EyeReliefDial" // int in range of 0-10
|
||||
#define OVR_KEY_EYE_TO_NOSE_DISTANCE "EyeToNoseDist" // float[2] meters
|
||||
#define OVR_KEY_MAX_EYE_TO_PLATE_DISTANCE "MaxEyeToPlateDist" // float[2] meters
|
||||
#define OVR_KEY_EYE_CUP "EyeCup" // char[16] "A", "B", or "C"
|
||||
#define OVR_KEY_CUSTOM_EYE_RENDER "CustomEyeRender" // bool
|
||||
//Legacy profile value tied to the device and serial
|
||||
#define OVR_KEY_CAMERA_POSITION_1 "CenteredFromWorld" // double[7] ovrPosef quat rotation x, y, z, w, translation x, y, z
|
||||
//New value that now only ties to the device so that swapping headsets retains the offset from the tracker
|
||||
#define OVR_KEY_CAMERA_POSITION_2 "CenteredFromWorld2" // double[7] ovrPosef quat rotation x, y, z, w, translation x, y, z
|
||||
#define OVR_KEY_CAMERA_POSITION OVR_KEY_CAMERA_POSITION_2
|
||||
|
||||
|
||||
// Default measurements empirically determined at Oculus to make us happy
|
||||
// The neck model numbers were derived as an average of the male and female averages from ANSUR-88
|
||||
// NECK_TO_EYE_HORIZONTAL = H22 - H43 = INFRAORBITALE_BACK_OF_HEAD - TRAGION_BACK_OF_HEAD
|
||||
// NECK_TO_EYE_VERTICAL = H21 - H15 = GONION_TOP_OF_HEAD - ECTOORBITALE_TOP_OF_HEAD
|
||||
// These were determined to be the best in a small user study, clearly beating out the previous default values
|
||||
#define OVR_DEFAULT_GENDER "Unknown"
|
||||
#define OVR_DEFAULT_PLAYER_HEIGHT 1.778f
|
||||
#define OVR_DEFAULT_EYE_HEIGHT 1.675f
|
||||
#define OVR_DEFAULT_IPD 0.064f
|
||||
#define OVR_DEFAULT_NECK_TO_EYE_HORIZONTAL 0.0805f
|
||||
#define OVR_DEFAULT_NECK_TO_EYE_VERTICAL 0.075f
|
||||
#define OVR_DEFAULT_EYE_RELIEF_DIAL 3
|
||||
#define OVR_DEFAULT_CAMERA_POSITION {0,0,0,1,0,0,0}
|
||||
|
||||
#define OVR_PERF_HUD_MODE "PerfHudMode" // allowed values are defined in enum ovrPerfHudMode
|
||||
|
||||
#define OVR_LAYER_HUD_MODE "LayerHudMode" // allowed values are defined in enum ovrLayerHudMode
|
||||
#define OVR_LAYER_HUD_CURRENT_LAYER "LayerHudCurrentLayer" // The layer to show
|
||||
#define OVR_LAYER_HUD_SHOW_ALL_LAYERS "LayerHudShowAll" // Hide other layers when the hud is enabled
|
||||
|
||||
#define OVR_DEBUG_HUD_STEREO_MODE "DebugHudStereoMode" // allowed values are defined in enum ovrDebugHudStereoMode
|
||||
#define OVR_DEBUG_HUD_STEREO_GUIDE_INFO_ENABLE "DebugHudStereoGuideInfoEnable" // bool
|
||||
#define OVR_DEBUG_HUD_STEREO_GUIDE_SIZE "DebugHudStereoGuideSize2f" // float[2]
|
||||
#define OVR_DEBUG_HUD_STEREO_GUIDE_POSITION "DebugHudStereoGuidePosition3f" // float[3]
|
||||
#define OVR_DEBUG_HUD_STEREO_GUIDE_YAWPITCHROLL "DebugHudStereoGuideYawPitchRoll3f" // float[3]
|
||||
#define OVR_DEBUG_HUD_STEREO_GUIDE_COLOR "DebugHudStereoGuideColor4f" // float[4]
|
||||
|
||||
|
||||
|
||||
#endif // OVR_CAPI_Keys_h
|
||||
@@ -0,0 +1,145 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_ErrorCode.h
|
||||
\brief This header provides LibOVR error code declarations.
|
||||
\copyright Copyright 2015 Oculus VR, LLC All Rights reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef OVR_ErrorCode_h
|
||||
#define OVR_ErrorCode_h
|
||||
|
||||
|
||||
#include "OVR_Version.h"
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef OVR_RESULT_DEFINED
|
||||
#define OVR_RESULT_DEFINED ///< Allows ovrResult to be independently defined.
|
||||
/// API call results are represented at the highest level by a single ovrResult.
|
||||
typedef int32_t ovrResult;
|
||||
#endif
|
||||
|
||||
|
||||
/// \brief Indicates if an ovrResult indicates success.
|
||||
///
|
||||
/// Some functions return additional successful values other than ovrSucces and
|
||||
/// require usage of this macro to indicate successs.
|
||||
///
|
||||
#if !defined(OVR_SUCCESS)
|
||||
#define OVR_SUCCESS(result) (result >= 0)
|
||||
#endif
|
||||
|
||||
|
||||
/// \brief Indicates if an ovrResult indicates an unqualified success.
|
||||
///
|
||||
/// This is useful for indicating that the code intentionally wants to
|
||||
/// check for result == ovrSuccess as opposed to OVR_SUCCESS(), which
|
||||
/// checks for result >= ovrSuccess.
|
||||
///
|
||||
#if !defined(OVR_UNQUALIFIED_SUCCESS)
|
||||
#define OVR_UNQUALIFIED_SUCCESS(result) (result == ovrSuccess)
|
||||
#endif
|
||||
|
||||
|
||||
/// \brief Indicates if an ovrResult indicates failure.
|
||||
///
|
||||
#if !defined(OVR_FAILURE)
|
||||
#define OVR_FAILURE(result) (!OVR_SUCCESS(result))
|
||||
#endif
|
||||
|
||||
|
||||
// Success is a value greater or equal to 0, while all error types are negative values.
|
||||
#ifndef OVR_SUCCESS_DEFINED
|
||||
#define OVR_SUCCESS_DEFINED ///< Allows ovrResult to be independently defined.
|
||||
typedef enum ovrSuccessType_
|
||||
{
|
||||
/// This is a general success result. Use OVR_SUCCESS to test for success.
|
||||
ovrSuccess = 0,
|
||||
|
||||
/// Returned from a call to SubmitFrame. The call succeeded, but what the app
|
||||
/// rendered will not be visible on the HMD. Ideally the app should continue
|
||||
/// calling SubmitFrame, but not do any rendering. When the result becomes
|
||||
/// ovrSuccess, rendering should continue as usual.
|
||||
ovrSuccess_NotVisible = 1000,
|
||||
|
||||
ovrSuccess_HMDFirmwareMismatch = 4100, ///< The HMD Firmware is out of date but is acceptable.
|
||||
ovrSuccess_TrackerFirmwareMismatch = 4101, ///< The Tracker Firmware is out of date but is acceptable.
|
||||
ovrSuccess_ControllerFirmwareMismatch = 4104, ///< The controller firmware is out of date but is acceptable.
|
||||
|
||||
} ovrSuccessType;
|
||||
#endif
|
||||
|
||||
|
||||
typedef enum ovrErrorType_
|
||||
{
|
||||
/* General errors */
|
||||
ovrError_MemoryAllocationFailure = -1000, ///< Failure to allocate memory.
|
||||
ovrError_SocketCreationFailure = -1001, ///< Failure to create a socket.
|
||||
ovrError_InvalidSession = -1002, ///< Invalid ovrSession parameter provided.
|
||||
ovrError_Timeout = -1003, ///< The operation timed out.
|
||||
ovrError_NotInitialized = -1004, ///< The system or component has not been initialized.
|
||||
ovrError_InvalidParameter = -1005, ///< Invalid parameter provided. See error info or log for details.
|
||||
ovrError_ServiceError = -1006, ///< Generic service error. See error info or log for details.
|
||||
ovrError_NoHmd = -1007, ///< The given HMD doesn't exist.
|
||||
|
||||
/* Audio error range, reserved for Audio errors. */
|
||||
ovrError_AudioReservedBegin = -2000, ///< First Audio error.
|
||||
ovrError_AudioDeviceNotFound = -2001, ///< Failure to find the specified audio device.
|
||||
ovrError_AudioComError = -2002, ///< Generic COM error.
|
||||
ovrError_AudioReservedEnd = -2999, ///< Last Audio error.
|
||||
|
||||
/* Initialization errors. */
|
||||
ovrError_Initialize = -3000, ///< Generic initialization error.
|
||||
ovrError_LibLoad = -3001, ///< Couldn't load LibOVRRT.
|
||||
ovrError_LibVersion = -3002, ///< LibOVRRT version incompatibility.
|
||||
ovrError_ServiceConnection = -3003, ///< Couldn't connect to the OVR Service.
|
||||
ovrError_ServiceVersion = -3004, ///< OVR Service version incompatibility.
|
||||
ovrError_IncompatibleOS = -3005, ///< The operating system version is incompatible.
|
||||
ovrError_DisplayInit = -3006, ///< Unable to initialize the HMD display.
|
||||
ovrError_ServerStart = -3007, ///< Unable to start the server. Is it already running?
|
||||
ovrError_Reinitialization = -3008, ///< Attempting to re-initialize with a different version.
|
||||
ovrError_MismatchedAdapters = -3009, ///< Chosen rendering adapters between client and service do not match
|
||||
ovrError_LeakingResources = -3010, ///< Calling application has leaked resources
|
||||
ovrError_ClientVersion = -3011, ///< Client version too old to connect to service
|
||||
ovrError_OutOfDateOS = -3012, ///< The operating system is out of date.
|
||||
ovrError_OutOfDateGfxDriver = -3013, ///< The graphics driver is out of date.
|
||||
ovrError_IncompatibleGPU = -3014, ///< The graphics hardware is not supported
|
||||
ovrError_NoValidVRDisplaySystem = -3015, ///< No valid VR display system found.
|
||||
|
||||
/* Hardware errors */
|
||||
ovrError_InvalidBundleAdjustment = -4000, ///< Headset has no bundle adjustment data.
|
||||
ovrError_USBBandwidth = -4001, ///< The USB hub cannot handle the camera frame bandwidth.
|
||||
ovrError_USBEnumeratedSpeed = -4002, ///< The USB camera is not enumerating at the correct device speed.
|
||||
ovrError_ImageSensorCommError = -4003, ///< Unable to communicate with the image sensor.
|
||||
ovrError_GeneralTrackerFailure = -4004, ///< We use this to report various tracker issues that don't fit in an easily classifiable bucket.
|
||||
ovrError_ExcessiveFrameTruncation = -4005, ///< A more than acceptable number of frames are coming back truncated.
|
||||
ovrError_ExcessiveFrameSkipping = -4006, ///< A more than acceptable number of frames have been skipped.
|
||||
ovrError_SyncDisconnected = -4007, ///< The tracker is not receiving the sync signal (cable disconnected?)
|
||||
ovrError_TrackerMemoryReadFailure = -4008, ///< Failed to read memory from the tracker
|
||||
ovrError_TrackerMemoryWriteFailure = -4009, ///< Failed to write memory from the tracker
|
||||
ovrError_TrackerFrameTimeout = -4010, ///< Timed out waiting for a camera frame
|
||||
ovrError_TrackerTruncatedFrame = -4011, ///< Truncated frame returned from tracker
|
||||
ovrError_HMDFirmwareMismatch = -4100, ///< The HMD Firmware is out of date and is unacceptable.
|
||||
ovrError_TrackerFirmwareMismatch = -4101, ///< The Tracker Firmware is out of date and is unacceptable.
|
||||
ovrError_BootloaderDeviceDetected = -4102, ///< A bootloader HMD is detected by the service
|
||||
ovrError_TrackerCalibrationError = -4103, ///< The tracker calibration is missing or incorrect
|
||||
ovrError_ControllerFirmwareMismatch = -4104, ///< The controller firmware is out of date and is unacceptable
|
||||
|
||||
/* Synchronization errors */
|
||||
ovrError_Incomplete = -5000, ///<Requested async work not yet complete.
|
||||
ovrError_Abandoned = -5001, ///<Requested async work was abandoned and result is incomplete.
|
||||
|
||||
/* Rendering errors */
|
||||
ovrError_DisplayLost = -6000, ///<In the event of a system-wide graphics reset or cable unplug this is returned to the app
|
||||
|
||||
/* Fatal errors */
|
||||
ovrError_RuntimeException = -7000, ///< A runtime exception occurred. The application is required to shutdown LibOVR and re-initialize it before this error state will be cleared.
|
||||
|
||||
} ovrErrorType;
|
||||
|
||||
|
||||
#endif /* OVR_ErrorCode_h */
|
||||
@@ -0,0 +1,25 @@
|
||||
/********************************************************************************//**
|
||||
\file OVRKernel.h
|
||||
\brief This contains references to all OVR Kernel headers in Src folder.
|
||||
\copyright Copyright 2015 Oculus VR, LLC All Rights reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
/* This header file is deprecated and will be removed from a future version of this library */
|
||||
|
||||
#ifndef OVR_Kernel_h
|
||||
#define OVR_Kernel_h
|
||||
|
||||
#include "Kernel/OVR_Types.h"
|
||||
#include "Kernel/OVR_Allocator.h"
|
||||
#include "Kernel/OVR_RefCount.h"
|
||||
#include "Kernel/OVR_Log.h"
|
||||
#include "Kernel/OVR_System.h"
|
||||
#include "Kernel/OVR_Nullptr.h"
|
||||
#include "Kernel/OVR_String.h"
|
||||
#include "Kernel/OVR_Array.h"
|
||||
#include "Kernel/OVR_Timer.h"
|
||||
#include "Kernel/OVR_SysFile.h"
|
||||
#include "Extras/OVR_Math.h"
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/********************************************************************************//**
|
||||
\file OVR_Version.h
|
||||
\brief This header provides LibOVR version identification.
|
||||
\copyright Copyright 2014 Oculus VR, LLC All Rights reserved.
|
||||
*************************************************************************************/
|
||||
|
||||
#ifndef OVR_Version_h
|
||||
#define OVR_Version_h
|
||||
|
||||
|
||||
|
||||
/// Conventional string-ification macro.
|
||||
#if !defined(OVR_STRINGIZE)
|
||||
#define OVR_STRINGIZEIMPL(x) #x
|
||||
#define OVR_STRINGIZE(x) OVR_STRINGIZEIMPL(x)
|
||||
#endif
|
||||
|
||||
|
||||
// We are on major version 6 of the beta pre-release SDK. At some point we will
|
||||
// transition to product version 1 and reset the major version back to 1 (first
|
||||
// product release, version 1.0).
|
||||
#define OVR_PRODUCT_VERSION 0
|
||||
#define OVR_MAJOR_VERSION 8
|
||||
#define OVR_MINOR_VERSION 0
|
||||
#define OVR_PATCH_VERSION 0
|
||||
#define OVR_BUILD_NUMBER 0
|
||||
|
||||
// This is the major version of the service that the DLL is compatible with.
|
||||
// When we backport changes to old versions of the DLL we update the old DLLs
|
||||
// to move this version number up to the latest version.
|
||||
// The DLL is responsible for checking that the service is the version it supports
|
||||
// and returning an appropriate error message if it has not been made compatible.
|
||||
#define OVR_DLL_COMPATIBLE_MAJOR_VERSION 8
|
||||
|
||||
#define OVR_FEATURE_VERSION 0
|
||||
|
||||
|
||||
/// "Product.Major.Minor.Patch"
|
||||
#if !defined(OVR_VERSION_STRING)
|
||||
#define OVR_VERSION_STRING OVR_STRINGIZE(OVR_PRODUCT_VERSION.OVR_MAJOR_VERSION.OVR_MINOR_VERSION.OVR_PATCH_VERSION)
|
||||
#endif
|
||||
|
||||
|
||||
/// "Product.Major.Minor.Patch.Build"
|
||||
#if !defined(OVR_DETAILED_VERSION_STRING)
|
||||
#define OVR_DETAILED_VERSION_STRING OVR_STRINGIZE(OVR_PRODUCT_VERSION.OVR_MAJOR_VERSION.OVR_MINOR_VERSION.OVR_PATCH_VERSION.OVR_BUILD_NUMBER)
|
||||
#endif
|
||||
|
||||
// This is the product version for the Oculus Display Driver. A continuous
|
||||
// process will propagate this value to all dependent files
|
||||
#define OVR_DISPLAY_DRIVER_PRODUCT_VERSION "1.2.8.0"
|
||||
|
||||
// This is the product version for the Oculus Position Tracker Driver. A
|
||||
// continuous process will propagate this value to all dependent files
|
||||
#define OVR_POSITIONAL_TRACKER_DRIVER_PRODUCT_VERSION "1.0.14.0"
|
||||
|
||||
/// \brief file description for version info
|
||||
/// This appears in the user-visible file properties. It is intended to convey publicly
|
||||
/// available additional information such as feature builds.
|
||||
#if !defined(OVR_FILE_DESCRIPTION_STRING)
|
||||
#if defined(_DEBUG)
|
||||
#define OVR_FILE_DESCRIPTION_STRING "dev build debug"
|
||||
#else
|
||||
#define OVR_FILE_DESCRIPTION_STRING "dev build"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif // OVR_Version_h
|
||||
Reference in New Issue
Block a user