2736 lines
115 KiB
C#
2736 lines
115 KiB
C#
//========= Copyright 2017-2018, HTC Corporation. All rights reserved. ===========
|
|
//
|
|
// Purpose: This file contains C#/managed code bindings for the OpenVR interfaces
|
|
//
|
|
//================================================================================
|
|
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
using HVR;
|
|
|
|
namespace HVR
|
|
{
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVRSystem
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _GetRecommendedRenderTargetSize(ref uint pnWidth, ref uint pnHeight);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRecommendedRenderTargetSize GetRecommendedRenderTargetSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate HVRMatrix44_t _GetProjectionMatrix(EHVREye eEye, float fNearZ, float fFarZ, EHVRTextureType eProjType);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetProjectionMatrix GetProjectionMatrix;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _GetProjectionRaw(EHVREye eEye, ref float pfLeft, ref float pfRight, ref float pfTop, ref float pfBottom);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetProjectionRaw GetProjectionRaw;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate HVRMatrix34_t _GetEyeToHeadTransform(EHVREye eEye);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetEyeToHeadTransform GetEyeToHeadTransform;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync, ref ulong pulFrameCounter);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetTimeSinceLastVsync GetTimeSinceLastVsync;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _GetDeviceToAbsoluteTrackingPose(EHVRTrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, [In, Out] HVRTrackedDevicePose_t[] pTrackedDevicePoseArray, uint unTrackedDevicePoseArrayCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetDeviceToAbsoluteTrackingPose GetDeviceToAbsoluteTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate HVRMatrix34_t _GetRawZeroPoseToStandingAbsoluteTrackingPose();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRawZeroPoseToStandingAbsoluteTrackingPose GetRawZeroPoseToStandingAbsoluteTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetTrackedDeviceIndexForControllerRole(EHVRTrackedControllerRole unDeviceType);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetTrackedDeviceIndexForControllerRole GetTrackedDeviceIndexForControllerRole;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedControllerRole _GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetControllerRoleForTrackedDeviceIndex GetControllerRoleForTrackedDeviceIndex;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedDeviceClass _GetTrackedDeviceClass(uint unDeviceIndex);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetTrackedDeviceClass GetTrackedDeviceClass;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _IsTrackedDeviceConnected(uint unDeviceIndex);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _IsTrackedDeviceConnected IsTrackedDeviceConnected;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetBoolTrackedDeviceProperty(uint unDeviceIndex, EHVRTrackedDeviceProperty prop, ref EHVRTrackedPropertyError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetBoolTrackedDeviceProperty GetBoolTrackedDeviceProperty;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate float _GetFloatTrackedDeviceProperty(uint unDeviceIndex, EHVRTrackedDeviceProperty prop, ref EHVRTrackedPropertyError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetFloatTrackedDeviceProperty GetFloatTrackedDeviceProperty;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate int _GetInt32TrackedDeviceProperty(uint unDeviceIndex, EHVRTrackedDeviceProperty prop, ref EHVRTrackedPropertyError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetInt32TrackedDeviceProperty GetInt32TrackedDeviceProperty;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate ulong _GetUint64TrackedDeviceProperty(uint unDeviceIndex, EHVRTrackedDeviceProperty prop, ref EHVRTrackedPropertyError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetUint64TrackedDeviceProperty GetUint64TrackedDeviceProperty;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetStringTrackedDeviceProperty(uint unDeviceIndex, EHVRTrackedDeviceProperty prop, System.Text.StringBuilder pchValue, uint unBufferSize, ref EHVRTrackedPropertyError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetStringTrackedDeviceProperty GetStringTrackedDeviceProperty;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate HVRMatrix34_t _GetMatrix34TrackedDeviceProperty(uint unDeviceIndex, EHVRTrackedDeviceProperty prop, ref EHVRTrackedPropertyError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetMatrix34TrackedDeviceProperty GetMatrix34TrackedDeviceProperty;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _PollNextEvent(ref HVREvent_t pEvent, uint uncbVREvent);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _PollNextEvent PollNextEvent;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate HVRHiddenAreaMesh_t _GetHiddenAreaMesh(EHVREye eEye, EHVRHiddenAreaMeshType type);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetHiddenAreaMesh GetHiddenAreaMesh;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetControllerState(uint unControllerDeviceIndex, ref HVRControllerState_t pControllerState);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetControllerState GetControllerState;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetControllerStateWithPose(EHVRTrackingUniverseOrigin eOrigin, uint unControllerDeviceIndex, ref HVRControllerState_t pControllerState, uint unControllerStateSize, ref HVRTrackedDevicePose_t pTrackedDevicePose);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetControllerStateWithPose GetControllerStateWithPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _TriggerHapticPulse(uint unControllerDeviceIndex, uint unAxisId, char usDurationMicroSec);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _TriggerHapticPulse TriggerHapticPulse;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _IsInputFocusCapturedByAnotherProcess();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _IsInputFocusCapturedByAnotherProcess IsInputFocusCapturedByAnotherProcess;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate HVRChaperoneCalibrationState _GetCalibrationState();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetCalibrationState GetCalibrationState;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetPlayAreaSize(ref float pSizeX, ref float pSizeZ);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetPlayAreaSize GetPlayAreaSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetPlayAreaRect(ref HVRQuad_t rect);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetPlayAreaRect GetPlayAreaRect;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVRCompositor
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetTrackingSpace(EHVRTrackingUniverseOrigin eTrackingOrigin);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetTrackingSpace SetTrackingSpace;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackingUniverseOrigin _GetTrackingSpace();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetTrackingSpace GetTrackingSpace;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRCompositorError _WaitGetPoses([In, Out] HVRTrackedDevicePose_t[] pRenderPoseArray, uint unRenderPoseArrayCount, [In, Out] HVRTrackedDevicePose_t[] pGamePoseArray, uint unGamePoseArrayCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _WaitGetPoses WaitGetPoses;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRCompositorError _GetLastPoses([In, Out] HVRTrackedDevicePose_t[] pRenderPoseArray, uint unRenderPoseArrayCount, [In, Out] HVRTrackedDevicePose_t[] pGamePoseArray, uint unGamePoseArrayCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetLastPoses GetLastPoses;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRCompositorError _Submit(EHVREye eEye, ref HVRTexture_t pTexture, ref HVRTextureBounds_t pBounds, EHVRSubmitFlags nSubmitFlags);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _Submit Submit;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _PostPresentHandoff();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _PostPresentHandoff PostPresentHandoff;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _FadeToColor(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _FadeToColor FadeToColor;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _CanRenderScene();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _CanRenderScene CanRenderScene;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SuspendRendering(bool bSuspend);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SuspendRendering SuspendRendering;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVROverlay
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _FindOverlay(string pchOverlayKey, ref ulong pOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _FindOverlay FindOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _CreateOverlay(string pchOverlayKey, string pchOverlayFriendlyName, ref ulong pOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _CreateOverlay CreateOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _DestroyOverlay(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _DestroyOverlay DestroyOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetHighQualityOverlay(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetHighQualityOverlay SetHighQualityOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate ulong _GetHighQualityOverlay();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetHighQualityOverlay GetHighQualityOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetOverlayKey(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EHVROverlayError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayKey GetOverlayKey;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetOverlayName(ulong ulOverlayHandle, System.Text.StringBuilder pchValue, uint unBufferSize, ref EHVROverlayError pError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayName GetOverlayName;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayImageData(ulong ulOverlayHandle, IntPtr pvBuffer, uint unBufferSize, ref uint punWidth, ref uint punHeight);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayImageData GetOverlayImageData;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate IntPtr _GetOverlayErrorNameFromEnum(EHVROverlayError error);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayErrorNameFromEnum GetOverlayErrorNameFromEnum;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayRenderingPid(ulong ulOverlayHandle, uint unPID);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayRenderingPid SetOverlayRenderingPid;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetOverlayRenderingPid(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayRenderingPid GetOverlayRenderingPid;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayFlag(ulong ulOverlayHandle, HVROverlayFlags eOverlayFlag, bool bEnabled);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayFlag SetOverlayFlag;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayFlag(ulong ulOverlayHandle, HVROverlayFlags eOverlayFlag, ref bool bEnabled);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayFlag GetOverlayFlag;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayColor(ulong ulOverlayHandle, float fRed, float fGreen, float fBlue);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayColor SetOverlayColor;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayColor(ulong ulOverlayHandle, ref float pfRed, ref float pfGreen, ref float pfBlue);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayColor GetOverlayColor;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayAlpha(ulong ulOverlayHandle, float fAlpha);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayAlpha SetOverlayAlpha;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayAlpha(ulong ulOverlayHandle, ref float pfAlpha);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayAlpha GetOverlayAlpha;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTexelAspect(ulong ulOverlayHandle, float fTexelAspect);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTexelAspect SetOverlayTexelAspect;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTexelAspect(ulong ulOverlayHandle, ref float pfTexelAspect);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTexelAspect GetOverlayTexelAspect;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlaySortOrder(ulong ulOverlayHandle, uint unSortOrder);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlaySortOrder SetOverlaySortOrder;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlaySortOrder(ulong ulOverlayHandle, ref uint punSortOrder);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlaySortOrder GetOverlaySortOrder;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayWidthInMeters(ulong ulOverlayHandle, float fWidthInMeters);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayWidthInMeters SetOverlayWidthInMeters;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayWidthInMeters(ulong ulOverlayHandle, ref float pfWidthInMeters);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayWidthInMeters GetOverlayWidthInMeters;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayAutoCurveDistanceRangeInMeters SetOverlayAutoCurveDistanceRangeInMeters;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, ref float fMinDistanceInMeters, ref float fMaxDistanceInMeters);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayAutoCurveDistanceRangeInMeters GetOverlayAutoCurveDistanceRangeInMeters;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTextureBounds(ulong ulOverlayHandle, ref HVRTextureBounds_t pOverlayTextureBounds);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTextureBounds SetOverlayTextureBounds;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTextureBounds(ulong ulOverlayHandle, ref HVRTextureBounds_t pOverlayTextureBounds);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTextureBounds GetOverlayTextureBounds;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTransformType(ulong ulOverlayHandle, ref HVROverlayTransformType peTransformType);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTransformType GetOverlayTransformType;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTransformAbsolute(ulong ulOverlayHandle, EHVRTrackingUniverseOrigin eTrackingOrigin, ref HVRMatrix34_t pmatTrackingOriginToOverlayTransform);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTransformAbsolute SetOverlayTransformAbsolute;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTransformAbsolute(ulong ulOverlayHandle, ref EHVRTrackingUniverseOrigin peTrackingOrigin, ref HVRMatrix34_t pmatTrackingOriginToOverlayTransform);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTransformAbsolute GetOverlayTransformAbsolute;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, uint unTrackedDevice, ref HVRMatrix34_t pmatTrackedDeviceToOverlayTransform);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTransformTrackedDeviceRelative SetOverlayTransformTrackedDeviceRelative;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle, ref uint punTrackedDevice, ref HVRMatrix34_t pmatTrackedDeviceToOverlayTransform);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTransformTrackedDeviceRelative GetOverlayTransformTrackedDeviceRelative;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, uint unDeviceIndex, string pchComponentName);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTransformTrackedDeviceComponent SetOverlayTransformTrackedDeviceComponent;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle, ref uint punDeviceIndex, string pchComponentName, uint unComponentNameSize);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTransformTrackedDeviceComponent GetOverlayTransformTrackedDeviceComponent;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _ShowOverlay(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ShowOverlay ShowOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _HideOverlay(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _HideOverlay HideOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _IsOverlayVisible(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _IsOverlayVisible IsOverlayVisible;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTexture(ulong ulOverlayHandle, ref HVRTexture_t pTexture);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTexture SetOverlayTexture;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _ClearOverlayTexture(ulong ulOverlayHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ClearOverlayTexture ClearOverlayTexture;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayRaw(ulong ulOverlayHandle, IntPtr pvBuffer, uint unWidth, uint unHeight, uint unDepth);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayRaw SetOverlayRaw;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayFromFile(ulong ulOverlayHandle, string pchFilePath);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayFromFile SetOverlayFromFile;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTexture(ulong ulOverlayHandle, ref IntPtr pNativeTextureHandle, IntPtr pNativeTextureRef, ref uint pWidth, ref uint pHeight, ref uint pNativeFormat, ref EHVRTextureType pAPI, ref EHVRColorSpace pColorSpace);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTexture GetOverlayTexture;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _GetOverlayTextureSize(ulong ulOverlayHandle, ref uint pWidth, ref uint pHeight);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetOverlayTextureSize GetOverlayTextureSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayStereoTexture(ulong ulOverlayHandle, ref HVRTexture_t pTexture, EHVREye eye);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayStereoTexture SetOverlayStereoTexture;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayStereoMode(ulong ulOverlayHandle, bool bEnabled);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayStereoMode SetOverlayStereoMode;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayStereoTextureBounds(ulong ulOverlayHandle, ref HVRTextureBounds_t pOverlayTextureBounds, EHVREye eye);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayStereoTextureBounds SetOverlayStereoTextureBounds;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetOverlayTextureUpsideDownFlag(ulong ulOverlayHandle, bool flag);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetOverlayTextureUpsideDownFlag SetOverlayTextureUpsideDownFlag;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _CreateDesktopCaptureOverlay(uint targetHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _CreateDesktopCaptureOverlay CreateDesktopCaptureOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _DestroyDesktopCaptureOverlay(uint targetHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _DestroyDesktopCaptureOverlay DestroyDesktopCaptureOverlay;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetDesktopCaptureOverlayWidth(uint targetHandle, float width);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetDesktopCaptureOverlayWidth SetDesktopCaptureOverlayWidth;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetDesktopCaptureOverlayAbsolutePose(uint targetHandle, ref HVRMatrix34_t pmatTrackedDeviceToOverlayTransform);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetDesktopCaptureOverlayAbsolutePose SetDesktopCaptureOverlayAbsolutePose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVROverlayError _SetDesktopCaptureOverlayCurveDistance(uint targetHandle, float minDist, float maxDist);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetDesktopCaptureOverlayCurveDistance SetDesktopCaptureOverlayCurveDistance;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVRRenderModels
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRRenderModelError _LoadRenderModel_Async(string pchRenderModelName, ref IntPtr ppRenderModel);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _LoadRenderModel_Async LoadRenderModel_Async;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _FreeRenderModel(IntPtr pRenderModel);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _FreeRenderModel FreeRenderModel;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRRenderModelError _LoadTexture_Async(int textureId, ref IntPtr ppTexture);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _LoadTexture_Async LoadTexture_Async;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _FreeTexture(IntPtr pTexture);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _FreeTexture FreeTexture;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRRenderModelError _LoadTextureD3D11_Async(int textureId, IntPtr pD3D11Device, ref IntPtr ppD3D11Texture2D);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _LoadTextureD3D11_Async LoadTextureD3D11_Async;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRRenderModelError _LoadIntoTextureD3D11_Async(int textureId, IntPtr pDstTexture);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _LoadIntoTextureD3D11_Async LoadIntoTextureD3D11_Async;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _FreeTextureD3D11(IntPtr pD3D11Texture2D);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _FreeTextureD3D11 FreeTextureD3D11;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetRenderModelName(uint unRenderModelIndex, System.Text.StringBuilder pchRenderModelName, uint unRenderModelNameLen);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRenderModelName GetRenderModelName;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetRenderModelCount();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRenderModelCount GetRenderModelCount;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetComponentCount(string pchRenderModelName);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetComponentCount GetComponentCount;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetComponentName(string pchRenderModelName, uint unComponentIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameLen);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetComponentName GetComponentName;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate ulong _GetComponentButtonMask(string pchRenderModelName, string pchComponentName);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetComponentButtonMask GetComponentButtonMask;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetComponentRenderModelName(string pchRenderModelName, string pchComponentName, System.Text.StringBuilder pchComponentRenderModelName, uint unComponentRenderModelNameLen);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetComponentRenderModelName GetComponentRenderModelName;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetComponentStateForDevicePath(string pchRenderModelName, string pchComponentName, ulong devicePath, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetComponentStateForDevicePath GetComponentStateForDevicePath;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetComponentState(string pchRenderModelName, string pchComponentName, ref HVRControllerState_t pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetComponentState GetComponentState;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _RenderModelHasComponent(string pchRenderModelName, string pchComponentName);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _RenderModelHasComponent RenderModelHasComponent;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetRenderModelThumbnailURL(string pchRenderModelName, System.Text.StringBuilder pchThumbnailURL, uint unThumbnailURLLen, ref EHVRRenderModelError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRenderModelThumbnailURL GetRenderModelThumbnailURL;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate uint _GetRenderModelOriginalPath(string pchRenderModelName, System.Text.StringBuilder pchOriginalPath, uint unOriginalPathLen, ref EHVRRenderModelError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRenderModelOriginalPath GetRenderModelOriginalPath;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate IntPtr _GetRenderModelErrorNameFromEnum(EHVRRenderModelError error);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetRenderModelErrorNameFromEnum GetRenderModelErrorNameFromEnum;
|
|
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVRTrackedCamera
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate IntPtr _GetCameraErrorNameFromEnum(EHVRTrackedCameraError eCameraError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetCameraErrorNameFromEnum GetCameraErrorNameFromEnum;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _HasCamera(uint nDeviceIndex, ref bool pHasCamera);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _HasCamera HasCamera;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetCameraFrameSize(uint nDeviceIndex, EHVRTrackedCameraFrameType eFrameType, ref uint pnWidth, ref uint pnHeight, ref uint pnFrameBufferSize);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetCameraFrameSize GetCameraFrameSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetCameraIntrinsics(uint nDeviceIndex, uint nCameraIndex, EHVRTrackedCameraFrameType eFrameType, ref HVRVector2_t pFocalLength, ref HVRVector2_t pCenter);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetCameraIntrinsics GetCameraIntrinsics;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetCameraProjection(uint nDeviceIndex, uint nCameraIndex, EHVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, ref HVRMatrix44_t pProjection);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetCameraProjection GetCameraProjection;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _AcquireVideoStreamingService(uint nDeviceIndex, ref ulong pHandle);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _AcquireVideoStreamingService AcquireVideoStreamingService;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _ReleaseVideoStreamingService(ulong hTrackedCamera);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ReleaseVideoStreamingService ReleaseVideoStreamingService;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetVideoStreamFrameBuffer(ulong hTrackedCamera, EHVRTrackedCameraFrameType eFrameType, IntPtr pFrameBuffer, uint nFrameBufferSize, ref HVRCameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetVideoStreamFrameBuffer GetVideoStreamFrameBuffer;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetVideoStreamTextureSize(uint nDeviceIndex, EHVRTrackedCameraFrameType eFrameType, ref HVRTextureBounds_t pTextureBounds, ref uint pnWidth, ref uint pnHeight);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetVideoStreamTextureSize GetVideoStreamTextureSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetVideoStreamTextureD3D11(ulong hTrackedCamera, EHVRTrackedCameraFrameType eFrameType, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceView, ref HVRCameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetVideoStreamTextureD3D11 GetVideoStreamTextureD3D11;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetVideoStreamSeperateTextureD3D11(ulong hTrackedCamera, EHVRTrackedCameraFrameType eFrameType, IntPtr pD3D11DeviceOrResource, ref IntPtr ppD3D11ShaderResourceViewLeft, ref IntPtr ppD3D11ShaderResourceViewRight, ref HVRCameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetVideoStreamSeperateTextureD3D11 GetVideoStreamSeperateTextureD3D11;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _GetVideoStreamTextureGL(ulong hTrackedCamera, EHVRTrackedCameraFrameType eFrameType, ref uint pglTextureId, ref HVRCameraVideoStreamFrameHeader_t pFrameHeader, uint nFrameHeaderSize);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetVideoStreamTextureGL GetVideoStreamTextureGL;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate EHVRTrackedCameraError _ReleaseVideoStreamTextureGL(ulong hTrackedCamera, uint glTextureId);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ReleaseVideoStreamTextureGL ReleaseVideoStreamTextureGL;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVRSettings
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate IntPtr _GetSettingsErrorNameFromEnum(EHVRSettingsError eError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetSettingsErrorNameFromEnum GetSettingsErrorNameFromEnum;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _Sync(bool bForce, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _Sync Sync;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetBool(string pchSection, string pchSettingsKey, bool bValue, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetBool SetBool;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetInt32(string pchSection, string pchSettingsKey, int nValue, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetInt32 SetInt32;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetFloat(string pchSection, string pchSettingsKey, float flValue, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetFloat SetFloat;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetString(string pchSection, string pchSettingsKey, string pchValue, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetString SetString;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetBool(string pchSection, string pchSettingsKey, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetBool GetBool;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate int _GetInt32(string pchSection, string pchSettingsKey, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetInt32 GetInt32;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate float _GetFloat(string pchSection, string pchSettingsKey, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetFloat GetFloat;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _GetString(string pchSection, string pchSettingsKey, System.Text.StringBuilder pchValue, uint unValueLen, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetString GetString;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _RemoveSection(string pchSection, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _RemoveSection RemoveSection;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _RemoveKeyInSection(string pchSection, string pchSettingsKey, ref EHVRSettingsError peError);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _RemoveKeyInSection RemoveKeyInSection;
|
|
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct IHVRChaperoneSetup
|
|
{
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _CommitWorkingCopy(EHVRChaperoneConfigFile configFile);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _CommitWorkingCopy CommitWorkingCopy;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _RevertWorkingCopy();
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _RevertWorkingCopy RevertWorkingCopy;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetWorkingPlayAreaSize(ref float pSizeX, ref float pSizeZ);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetWorkingPlayAreaSize GetWorkingPlayAreaSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetWorkingPlayAreaRect(ref HVRQuad_t rect);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetWorkingPlayAreaRect GetWorkingPlayAreaRect;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetWorkingCollisionBoundsInfo([In, Out] HVRQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetWorkingCollisionBoundsInfo GetWorkingCollisionBoundsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetLiveCollisionBoundsInfo([In, Out] HVRQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetLiveCollisionBoundsInfo GetLiveCollisionBoundsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetWorkingSeatedZeroPoseToRawTrackingPose(ref HVRMatrix34_t pmatSeatedZeroPoseToRawTrackingPose);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetWorkingSeatedZeroPoseToRawTrackingPose GetWorkingSeatedZeroPoseToRawTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetWorkingStandingZeroPoseToRawTrackingPose(ref HVRMatrix34_t pmatStandingZeroPoseToRawTrackingPose);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetWorkingStandingZeroPoseToRawTrackingPose GetWorkingStandingZeroPoseToRawTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetWorkingPlayAreaSize(float sizeX, float sizeZ);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetWorkingPlayAreaSize SetWorkingPlayAreaSize;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetWorkingCollisionBoundsInfo([In, Out] HVRQuad_t[] pQuadsBuffer, uint unQuadsCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetWorkingCollisionBoundsInfo SetWorkingCollisionBoundsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetWorkingSeatedZeroPoseToRawTrackingPose(ref HVRMatrix34_t pMatSeatedZeroPoseToRawTrackingPose);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetWorkingSeatedZeroPoseToRawTrackingPose SetWorkingSeatedZeroPoseToRawTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetWorkingStandingZeroPoseToRawTrackingPose(ref HVRMatrix34_t pMatStandingZeroPoseToRawTrackingPose);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetWorkingStandingZeroPoseToRawTrackingPose SetWorkingStandingZeroPoseToRawTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _ReloadFromDisk(EHVRChaperoneConfigFile configFile);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ReloadFromDisk ReloadFromDisk;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetLiveSeatedZeroPoseToRawTrackingPose(ref HVRMatrix34_t pmatSeatedZeroPoseToRawTrackingPose);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetLiveSeatedZeroPoseToRawTrackingPose GetLiveSeatedZeroPoseToRawTrackingPose;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate void _SetWorkingCollisionBoundsTagsInfo([In, Out] byte[] pTagsBuffer, uint unTagCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetWorkingCollisionBoundsTagsInfo SetWorkingCollisionBoundsTagsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetLiveCollisionBoundsTagsInfo([In, Out] byte[] pTagsBuffer, ref uint punTagCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetLiveCollisionBoundsTagsInfo GetLiveCollisionBoundsTagsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _SetWorkingPhysicalBoundsInfo([In, Out] HVRQuad_t[] pQuadsBuffer, uint unQuadsCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _SetWorkingPhysicalBoundsInfo SetWorkingPhysicalBoundsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetLivePhysicalBoundsInfo([In, Out] HVRQuad_t[] pQuadsBuffer, ref uint punQuadsCount);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _GetLivePhysicalBoundsInfo GetLivePhysicalBoundsInfo;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _ExportLiveToBuffer(System.Text.StringBuilder pBuffer, ref uint pnBufferLength);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ExportLiveToBuffer ExportLiveToBuffer;
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _ImportFromBufferToWorking(string pBuffer, uint nImportFlags);
|
|
[MarshalAs(UnmanagedType.FunctionPtr)]
|
|
internal _ImportFromBufferToWorking ImportFromBufferToWorking;
|
|
}
|
|
|
|
public class CHVRSystem
|
|
{
|
|
IHVRSystem FnTable;
|
|
internal CHVRSystem(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVRSystem)Marshal.PtrToStructure(pInterface, typeof(IHVRSystem));
|
|
}
|
|
public void GetRecommendedRenderTargetSize(ref uint pnWidth,ref uint pnHeight)
|
|
{
|
|
pnWidth = 0;
|
|
pnHeight = 0;
|
|
FnTable.GetRecommendedRenderTargetSize(ref pnWidth,ref pnHeight);
|
|
}
|
|
public HVRMatrix44_t GetProjectionMatrix(EHVREye eEye,float fNearZ,float fFarZ, EHVRTextureType eProjType)
|
|
{
|
|
HVRMatrix44_t result = FnTable.GetProjectionMatrix(eEye,fNearZ,fFarZ,eProjType);
|
|
return result;
|
|
}
|
|
public void GetProjectionRaw(EHVREye eEye,ref float pfLeft,ref float pfRight,ref float pfTop,ref float pfBottom)
|
|
{
|
|
pfLeft = 0;
|
|
pfRight = 0;
|
|
pfTop = 0;
|
|
pfBottom = 0;
|
|
FnTable.GetProjectionRaw(eEye,ref pfLeft,ref pfRight,ref pfTop,ref pfBottom);
|
|
}
|
|
|
|
public HVRMatrix34_t GetEyeToHeadTransform(EHVREye eEye)
|
|
{
|
|
HVRMatrix34_t result = FnTable.GetEyeToHeadTransform(eEye);
|
|
return result;
|
|
}
|
|
public bool GetTimeSinceLastVsync(ref float pfSecondsSinceLastVsync,ref ulong pulFrameCounter)
|
|
{
|
|
pfSecondsSinceLastVsync = 0;
|
|
pulFrameCounter = 0;
|
|
bool result = FnTable.GetTimeSinceLastVsync(ref pfSecondsSinceLastVsync,ref pulFrameCounter);
|
|
return result;
|
|
}
|
|
public void GetDeviceToAbsoluteTrackingPose(EHVRTrackingUniverseOrigin eOrigin,float fPredictedSecondsToPhotonsFromNow,HVRTrackedDevicePose_t [] pTrackedDevicePoseArray)
|
|
{
|
|
FnTable.GetDeviceToAbsoluteTrackingPose(eOrigin,fPredictedSecondsToPhotonsFromNow,pTrackedDevicePoseArray,(uint) pTrackedDevicePoseArray.Length);
|
|
}
|
|
public HVRMatrix34_t GetRawZeroPoseToStandingAbsoluteTrackingPose()
|
|
{
|
|
HVRMatrix34_t result = FnTable.GetRawZeroPoseToStandingAbsoluteTrackingPose();
|
|
return result;
|
|
}
|
|
public uint GetTrackedDeviceIndexForControllerRole(EHVRTrackedControllerRole unDeviceType)
|
|
{
|
|
uint result = FnTable.GetTrackedDeviceIndexForControllerRole(unDeviceType);
|
|
return result;
|
|
}
|
|
public EHVRTrackedControllerRole GetControllerRoleForTrackedDeviceIndex(uint unDeviceIndex)
|
|
{
|
|
EHVRTrackedControllerRole result = FnTable.GetControllerRoleForTrackedDeviceIndex(unDeviceIndex);
|
|
return result;
|
|
}
|
|
public EHVRTrackedDeviceClass GetTrackedDeviceClass(uint unDeviceIndex)
|
|
{
|
|
EHVRTrackedDeviceClass result = FnTable.GetTrackedDeviceClass(unDeviceIndex);
|
|
return result;
|
|
}
|
|
public bool IsTrackedDeviceConnected(uint unDeviceIndex)
|
|
{
|
|
bool result = FnTable.IsTrackedDeviceConnected(unDeviceIndex);
|
|
return result;
|
|
}
|
|
public bool GetBoolTrackedDeviceProperty(uint unDeviceIndex,EHVRTrackedDeviceProperty prop,ref EHVRTrackedPropertyError pError)
|
|
{
|
|
bool result = FnTable.GetBoolTrackedDeviceProperty(unDeviceIndex,prop,ref pError);
|
|
return result;
|
|
}
|
|
public float GetFloatTrackedDeviceProperty(uint unDeviceIndex,EHVRTrackedDeviceProperty prop,ref EHVRTrackedPropertyError pError)
|
|
{
|
|
float result = FnTable.GetFloatTrackedDeviceProperty(unDeviceIndex,prop,ref pError);
|
|
return result;
|
|
}
|
|
public int GetInt32TrackedDeviceProperty(uint unDeviceIndex,EHVRTrackedDeviceProperty prop,ref EHVRTrackedPropertyError pError)
|
|
{
|
|
int result = FnTable.GetInt32TrackedDeviceProperty(unDeviceIndex,prop,ref pError);
|
|
return result;
|
|
}
|
|
public ulong GetUint64TrackedDeviceProperty(uint unDeviceIndex,EHVRTrackedDeviceProperty prop,ref EHVRTrackedPropertyError pError)
|
|
{
|
|
ulong result = FnTable.GetUint64TrackedDeviceProperty(unDeviceIndex,prop,ref pError);
|
|
return result;
|
|
}
|
|
public uint GetStringTrackedDeviceProperty(uint unDeviceIndex,EHVRTrackedDeviceProperty prop,System.Text.StringBuilder pchValue,uint unBufferSize,ref EHVRTrackedPropertyError pError)
|
|
{
|
|
uint result = FnTable.GetStringTrackedDeviceProperty(unDeviceIndex,prop,pchValue,unBufferSize,ref pError);
|
|
return result;
|
|
}
|
|
public HVRMatrix34_t GetMatrix34TrackedDeviceProperty(uint unDeviceIndex,EHVRTrackedDeviceProperty prop,ref EHVRTrackedPropertyError pError)
|
|
{
|
|
HVRMatrix34_t result = FnTable.GetMatrix34TrackedDeviceProperty(unDeviceIndex,prop,ref pError);
|
|
return result;
|
|
}
|
|
public bool PollNextEvent(ref HVREvent_t pEvent,uint uncbVREvent)
|
|
{
|
|
bool result = FnTable.PollNextEvent(ref pEvent,uncbVREvent);
|
|
return result;
|
|
}
|
|
public HVRHiddenAreaMesh_t GetHiddenAreaMesh(EHVREye eEye, EHVRHiddenAreaMeshType type)
|
|
{
|
|
HVRHiddenAreaMesh_t result = FnTable.GetHiddenAreaMesh(eEye, type);
|
|
return result;
|
|
}
|
|
public bool GetControllerState(uint unControllerDeviceIndex,ref HVRControllerState_t pControllerState, uint unControllerStateSize)
|
|
{
|
|
bool result = FnTable.GetControllerState(unControllerDeviceIndex,ref pControllerState);
|
|
return result;
|
|
}
|
|
public bool GetControllerStateWithPose(EHVRTrackingUniverseOrigin eOrigin,uint unControllerDeviceIndex,ref HVRControllerState_t pControllerState, uint unControllerStateSize, ref HVRTrackedDevicePose_t pTrackedDevicePose)
|
|
{
|
|
bool result = FnTable.GetControllerStateWithPose(eOrigin,unControllerDeviceIndex,ref pControllerState, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(HVRControllerState_t)),ref pTrackedDevicePose);
|
|
return result;
|
|
}
|
|
public void TriggerHapticPulse(uint unControllerDeviceIndex,uint unAxisId,char usDurationMicroSec)
|
|
{
|
|
FnTable.TriggerHapticPulse(unControllerDeviceIndex,unAxisId,usDurationMicroSec);
|
|
}
|
|
public bool IsInputFocusCapturedByAnotherProcess()
|
|
{
|
|
return FnTable.IsInputFocusCapturedByAnotherProcess();
|
|
}
|
|
public bool GetPlayAreaSize(ref float pSizeX,ref float pSizeZ)
|
|
{
|
|
pSizeX = 0;
|
|
pSizeZ = 0;
|
|
bool result = FnTable.GetPlayAreaSize(ref pSizeX,ref pSizeZ);
|
|
return result;
|
|
}
|
|
public bool GetPlayAreaRect(ref HVRQuad_t rect)
|
|
{
|
|
bool result = FnTable.GetPlayAreaRect(ref rect);
|
|
return result;
|
|
}
|
|
public HVRChaperoneCalibrationState GetCalibrationState()
|
|
{
|
|
HVRChaperoneCalibrationState result = FnTable.GetCalibrationState();
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public class CHVRCompositor
|
|
{
|
|
IHVRCompositor FnTable;
|
|
internal CHVRCompositor(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVRCompositor)Marshal.PtrToStructure(pInterface, typeof(IHVRCompositor));
|
|
}
|
|
public void SetTrackingSpace(EHVRTrackingUniverseOrigin eTrackingOrigin)
|
|
{
|
|
FnTable.SetTrackingSpace(eTrackingOrigin);
|
|
}
|
|
public EHVRTrackingUniverseOrigin GetTrackingSpace()
|
|
{
|
|
return FnTable.GetTrackingSpace();
|
|
}
|
|
public EHVRCompositorError WaitGetPoses(HVRTrackedDevicePose_t [] pRenderPoseArray,HVRTrackedDevicePose_t [] pGamePoseArray)
|
|
{
|
|
EHVRCompositorError result = FnTable.WaitGetPoses(pRenderPoseArray,(uint) pRenderPoseArray.Length,pGamePoseArray,(uint) pGamePoseArray.Length);
|
|
return result;
|
|
}
|
|
public EHVRCompositorError GetLastPoses(HVRTrackedDevicePose_t [] pRenderPoseArray,HVRTrackedDevicePose_t [] pGamePoseArray)
|
|
{
|
|
EHVRCompositorError result = FnTable.GetLastPoses(pRenderPoseArray,(uint) pRenderPoseArray.Length,pGamePoseArray,(uint) pGamePoseArray.Length);
|
|
return result;
|
|
}
|
|
public EHVRCompositorError Submit(EHVREye eEye,ref HVRTexture_t pTexture,ref HVRTextureBounds_t pBounds,EHVRSubmitFlags nSubmitFlags)
|
|
{
|
|
EHVRCompositorError result = FnTable.Submit(eEye,ref pTexture,ref pBounds,nSubmitFlags);
|
|
return result;
|
|
}
|
|
public void PostPresentHandoff()
|
|
{
|
|
FnTable.PostPresentHandoff();
|
|
}
|
|
public void FadeToColor(float fSeconds,float fRed,float fGreen,float fBlue,float fAlpha,bool bBackground)
|
|
{
|
|
FnTable.FadeToColor(fSeconds,fRed,fGreen,fBlue,fAlpha,bBackground);
|
|
}
|
|
public void SuspendRendering(bool bSuspend)
|
|
{
|
|
FnTable.SuspendRendering(bSuspend);
|
|
}
|
|
|
|
public bool CanRenderScene()
|
|
{
|
|
bool ret = FnTable.CanRenderScene();
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
public class CHVROverlay
|
|
{
|
|
IHVROverlay FnTable;
|
|
internal CHVROverlay(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVROverlay)Marshal.PtrToStructure(pInterface, typeof(IHVROverlay));
|
|
}
|
|
public EHVROverlayError FindOverlay(string pchOverlayKey,ref ulong pOverlayHandle)
|
|
{
|
|
pOverlayHandle = 0;
|
|
EHVROverlayError result = FnTable.FindOverlay(pchOverlayKey,ref pOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError CreateOverlay(string pchOverlayKey,string pchOverlayFriendlyName,ref ulong pOverlayHandle)
|
|
{
|
|
pOverlayHandle = 0;
|
|
EHVROverlayError result = FnTable.CreateOverlay(pchOverlayKey,pchOverlayFriendlyName,ref pOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError DestroyOverlay(ulong ulOverlayHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.DestroyOverlay(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetHighQualityOverlay(ulong ulOverlayHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.SetHighQualityOverlay(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public ulong GetHighQualityOverlay()
|
|
{
|
|
ulong result = FnTable.GetHighQualityOverlay();
|
|
return result;
|
|
}
|
|
public uint GetOverlayKey(ulong ulOverlayHandle,System.Text.StringBuilder pchValue,uint unBufferSize,ref EHVROverlayError pError)
|
|
{
|
|
uint result = FnTable.GetOverlayKey(ulOverlayHandle,pchValue,unBufferSize,ref pError);
|
|
return result;
|
|
}
|
|
public uint GetOverlayName(ulong ulOverlayHandle,System.Text.StringBuilder pchValue,uint unBufferSize,ref EHVROverlayError pError)
|
|
{
|
|
uint result = FnTable.GetOverlayName(ulOverlayHandle,pchValue,unBufferSize,ref pError);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayImageData(ulong ulOverlayHandle,IntPtr pvBuffer,uint unBufferSize,ref uint punWidth,ref uint punHeight)
|
|
{
|
|
punWidth = 0;
|
|
punHeight = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayImageData(ulOverlayHandle,pvBuffer,unBufferSize,ref punWidth,ref punHeight);
|
|
return result;
|
|
}
|
|
public string GetOverlayErrorNameFromEnum(EHVROverlayError error)
|
|
{
|
|
IntPtr result = FnTable.GetOverlayErrorNameFromEnum(error);
|
|
return Marshal.PtrToStringAnsi(result);
|
|
}
|
|
public EHVROverlayError SetOverlayRenderingPid(ulong ulOverlayHandle,uint unPID)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayRenderingPid(ulOverlayHandle,unPID);
|
|
return result;
|
|
}
|
|
public uint GetOverlayRenderingPid(ulong ulOverlayHandle)
|
|
{
|
|
uint result = FnTable.GetOverlayRenderingPid(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayFlag(ulong ulOverlayHandle, HVROverlayFlags eOverlayFlag, bool bEnabled)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayFlag(ulOverlayHandle, eOverlayFlag, bEnabled);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayFlag(ulong ulOverlayHandle, HVROverlayFlags eOverlayFlag, ref bool bEnabled)
|
|
{
|
|
EHVROverlayError result = FnTable.GetOverlayFlag(ulOverlayHandle, eOverlayFlag, ref bEnabled);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayColor(ulong ulOverlayHandle,float fRed,float fGreen,float fBlue)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayColor(ulOverlayHandle,fRed,fGreen,fBlue);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayColor(ulong ulOverlayHandle,ref float pfRed,ref float pfGreen,ref float pfBlue)
|
|
{
|
|
pfRed = 0;
|
|
pfGreen = 0;
|
|
pfBlue = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayColor(ulOverlayHandle,ref pfRed,ref pfGreen,ref pfBlue);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayAlpha(ulong ulOverlayHandle,float fAlpha)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayAlpha(ulOverlayHandle,fAlpha);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayAlpha(ulong ulOverlayHandle,ref float pfAlpha)
|
|
{
|
|
pfAlpha = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayAlpha(ulOverlayHandle,ref pfAlpha);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTexelAspect(ulong ulOverlayHandle,float fTexelAspect)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTexelAspect(ulOverlayHandle,fTexelAspect);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTexelAspect(ulong ulOverlayHandle,ref float pfTexelAspect)
|
|
{
|
|
pfTexelAspect = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayTexelAspect(ulOverlayHandle,ref pfTexelAspect);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlaySortOrder(ulong ulOverlayHandle,uint unSortOrder)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlaySortOrder(ulOverlayHandle,unSortOrder);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlaySortOrder(ulong ulOverlayHandle,ref uint punSortOrder)
|
|
{
|
|
punSortOrder = 0;
|
|
EHVROverlayError result = FnTable.GetOverlaySortOrder(ulOverlayHandle,ref punSortOrder);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayWidthInMeters(ulong ulOverlayHandle,float fWidthInMeters)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayWidthInMeters(ulOverlayHandle,fWidthInMeters);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayWidthInMeters(ulong ulOverlayHandle,ref float pfWidthInMeters)
|
|
{
|
|
pfWidthInMeters = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayWidthInMeters(ulOverlayHandle,ref pfWidthInMeters);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayAutoCurveDistanceRangeInMeters(ulOverlayHandle, fMinDistanceInMeters, fMaxDistanceInMeters);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayAutoCurveDistanceRangeInMeters(ulong ulOverlayHandle, ref float fMinDistanceInMeters, ref float fMaxDistanceInMeters)
|
|
{
|
|
EHVROverlayError result = FnTable.GetOverlayAutoCurveDistanceRangeInMeters(ulOverlayHandle, ref fMinDistanceInMeters, ref fMaxDistanceInMeters);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTextureBounds(ulong ulOverlayHandle, ref HVRTextureBounds_t pOverlayTextureBounds)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTextureBounds(ulOverlayHandle, ref pOverlayTextureBounds);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTextureBounds(ulong ulOverlayHandle, ref HVRTextureBounds_t pOverlayTextureBounds)
|
|
{
|
|
EHVROverlayError result = FnTable.GetOverlayTextureBounds(ulOverlayHandle, ref pOverlayTextureBounds);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTransformType(ulong ulOverlayHandle,ref HVROverlayTransformType peTransformType)
|
|
{
|
|
EHVROverlayError result = FnTable.GetOverlayTransformType(ulOverlayHandle,ref peTransformType);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTransformAbsolute(ulong ulOverlayHandle,EHVRTrackingUniverseOrigin eTrackingOrigin,ref HVRMatrix34_t pmatTrackingOriginToOverlayTransform)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTransformAbsolute(ulOverlayHandle,eTrackingOrigin,ref pmatTrackingOriginToOverlayTransform);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTransformAbsolute(ulong ulOverlayHandle,ref EHVRTrackingUniverseOrigin peTrackingOrigin,ref HVRMatrix34_t pmatTrackingOriginToOverlayTransform)
|
|
{
|
|
EHVROverlayError result = FnTable.GetOverlayTransformAbsolute(ulOverlayHandle,ref peTrackingOrigin,ref pmatTrackingOriginToOverlayTransform);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle,uint unTrackedDevice,ref HVRMatrix34_t pmatTrackedDeviceToOverlayTransform)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTransformTrackedDeviceRelative(ulOverlayHandle,unTrackedDevice,ref pmatTrackedDeviceToOverlayTransform);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTransformTrackedDeviceRelative(ulong ulOverlayHandle,ref uint punTrackedDevice,ref HVRMatrix34_t pmatTrackedDeviceToOverlayTransform)
|
|
{
|
|
punTrackedDevice = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayTransformTrackedDeviceRelative(ulOverlayHandle,ref punTrackedDevice,ref pmatTrackedDeviceToOverlayTransform);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle,uint unDeviceIndex,string pchComponentName)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTransformTrackedDeviceComponent(ulOverlayHandle,unDeviceIndex,pchComponentName);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTransformTrackedDeviceComponent(ulong ulOverlayHandle,ref uint punDeviceIndex,string pchComponentName,uint unComponentNameSize)
|
|
{
|
|
punDeviceIndex = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayTransformTrackedDeviceComponent(ulOverlayHandle,ref punDeviceIndex,pchComponentName,unComponentNameSize);
|
|
return result;
|
|
}
|
|
public EHVROverlayError ShowOverlay(ulong ulOverlayHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.ShowOverlay(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError HideOverlay(ulong ulOverlayHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.HideOverlay(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public bool IsOverlayVisible(ulong ulOverlayHandle)
|
|
{
|
|
bool result = FnTable.IsOverlayVisible(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTexture(ulong ulOverlayHandle,ref HVRTexture_t pTexture)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTexture(ulOverlayHandle,ref pTexture);
|
|
return result;
|
|
}
|
|
public EHVROverlayError ClearOverlayTexture(ulong ulOverlayHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.ClearOverlayTexture(ulOverlayHandle);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayRaw(ulong ulOverlayHandle,IntPtr pvBuffer,uint unWidth,uint unHeight,uint unDepth)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayRaw(ulOverlayHandle,pvBuffer,unWidth,unHeight,unDepth);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayFromFile(ulong ulOverlayHandle,string pchFilePath)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayFromFile(ulOverlayHandle,pchFilePath);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTexture(ulong ulOverlayHandle,ref IntPtr pNativeTextureHandle,IntPtr pNativeTextureRef,ref uint pWidth,ref uint pHeight,ref uint pNativeFormat,ref EHVRTextureType pAPI,ref EHVRColorSpace pColorSpace)
|
|
{
|
|
pWidth = 0;
|
|
pHeight = 0;
|
|
pNativeFormat = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayTexture(ulOverlayHandle,ref pNativeTextureHandle,pNativeTextureRef,ref pWidth,ref pHeight,ref pNativeFormat,ref pAPI,ref pColorSpace);
|
|
return result;
|
|
}
|
|
public EHVROverlayError GetOverlayTextureSize(ulong ulOverlayHandle,ref uint pWidth,ref uint pHeight)
|
|
{
|
|
pWidth = 0;
|
|
pHeight = 0;
|
|
EHVROverlayError result = FnTable.GetOverlayTextureSize(ulOverlayHandle,ref pWidth,ref pHeight);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayStereoTexture(ulong ulOverlayHandle, ref HVRTexture_t pTexture, EHVREye eye)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayStereoTexture(ulOverlayHandle, ref pTexture, eye);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayStereoMode(ulong ulOverlayHandle, bool bEnabled)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayStereoMode(ulOverlayHandle, bEnabled);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayStereoTextureBounds(ulong ulOverlayHandle, ref HVRTextureBounds_t pOverlayTextureBounds, EHVREye eye)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayStereoTextureBounds(ulOverlayHandle, ref pOverlayTextureBounds, eye);
|
|
return result;
|
|
}
|
|
public EHVROverlayError SetOverlayTextureUpsideDownFlag(ulong ulOverlayHandle, bool flag)
|
|
{
|
|
EHVROverlayError result = FnTable.SetOverlayTextureUpsideDownFlag(ulOverlayHandle, flag);
|
|
return result;
|
|
}
|
|
|
|
public EHVROverlayError CreateDesktopCaptureOverlay(uint targetHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.CreateDesktopCaptureOverlay(targetHandle);
|
|
return result;
|
|
}
|
|
|
|
public EHVROverlayError DestroyDesktopCaptureOverlay(uint targetHandle)
|
|
{
|
|
EHVROverlayError result = FnTable.DestroyDesktopCaptureOverlay(targetHandle);
|
|
return result;
|
|
}
|
|
|
|
public EHVROverlayError SetDesktopCaptureOverlayWidth(uint targetHandle, float width)
|
|
{
|
|
EHVROverlayError result = FnTable.SetDesktopCaptureOverlayWidth(targetHandle, width);
|
|
return result;
|
|
}
|
|
|
|
public EHVROverlayError SetDesktopCaptureOverlayAbsolutePose(
|
|
uint targetHandle, ref HVRMatrix34_t pmatTrackedDeviceToOverlayTransform)
|
|
{
|
|
EHVROverlayError result = FnTable.SetDesktopCaptureOverlayAbsolutePose(targetHandle, ref pmatTrackedDeviceToOverlayTransform);
|
|
return result;
|
|
}
|
|
|
|
public EHVROverlayError SetDesktopCaptureOverlayCurveDistance(uint targetHandle, float minDist, float maxDist)
|
|
{
|
|
EHVROverlayError result = FnTable.SetDesktopCaptureOverlayCurveDistance(targetHandle, minDist, maxDist);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public class CHVRRenderModels
|
|
{
|
|
IHVRRenderModels FnTable;
|
|
internal CHVRRenderModels(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVRRenderModels)Marshal.PtrToStructure(pInterface, typeof(IHVRRenderModels));
|
|
}
|
|
public EHVRRenderModelError LoadRenderModel_Async(string pchRenderModelName, ref IntPtr ppRenderModel)
|
|
{
|
|
EHVRRenderModelError result = FnTable.LoadRenderModel_Async(pchRenderModelName, ref ppRenderModel);
|
|
return result;
|
|
}
|
|
public void FreeRenderModel(IntPtr pRenderModel)
|
|
{
|
|
FnTable.FreeRenderModel(pRenderModel);
|
|
}
|
|
public EHVRRenderModelError LoadTexture_Async(int textureId, ref IntPtr ppTexture)
|
|
{
|
|
EHVRRenderModelError result = FnTable.LoadTexture_Async(textureId, ref ppTexture);
|
|
return result;
|
|
}
|
|
public void FreeTexture(IntPtr pTexture)
|
|
{
|
|
FnTable.FreeTexture(pTexture);
|
|
}
|
|
public EHVRRenderModelError LoadTextureD3D11_Async(int textureId, IntPtr pD3D11Device, ref IntPtr ppD3D11Texture2D)
|
|
{
|
|
EHVRRenderModelError result = FnTable.LoadTextureD3D11_Async(textureId, pD3D11Device, ref ppD3D11Texture2D);
|
|
return result;
|
|
}
|
|
public EHVRRenderModelError LoadIntoTextureD3D11_Async(int textureId, IntPtr pDstTexture)
|
|
{
|
|
EHVRRenderModelError result = FnTable.LoadIntoTextureD3D11_Async(textureId, pDstTexture);
|
|
return result;
|
|
}
|
|
public void FreeTextureD3D11(IntPtr pD3D11Texture2D)
|
|
{
|
|
FnTable.FreeTextureD3D11(pD3D11Texture2D);
|
|
}
|
|
public uint GetRenderModelName(uint unRenderModelIndex, System.Text.StringBuilder pchRenderModelName, uint unRenderModelNameLen)
|
|
{
|
|
uint result = FnTable.GetRenderModelName(unRenderModelIndex, pchRenderModelName, unRenderModelNameLen);
|
|
return result;
|
|
}
|
|
public uint GetRenderModelCount()
|
|
{
|
|
uint result = FnTable.GetRenderModelCount();
|
|
return result;
|
|
}
|
|
public uint GetComponentCount(string pchRenderModelName)
|
|
{
|
|
uint result = FnTable.GetComponentCount(pchRenderModelName);
|
|
return result;
|
|
}
|
|
public uint GetComponentName(string pchRenderModelName, uint unComponentIndex, System.Text.StringBuilder pchComponentName, uint unComponentNameLen)
|
|
{
|
|
uint result = FnTable.GetComponentName(pchRenderModelName, unComponentIndex, pchComponentName, unComponentNameLen);
|
|
return result;
|
|
}
|
|
public ulong GetComponentButtonMask(string pchRenderModelName, string pchComponentName)
|
|
{
|
|
ulong result = FnTable.GetComponentButtonMask(pchRenderModelName, pchComponentName);
|
|
return result;
|
|
}
|
|
public uint GetComponentRenderModelName(string pchRenderModelName, string pchComponentName, System.Text.StringBuilder pchComponentRenderModelName, uint unComponentRenderModelNameLen)
|
|
{
|
|
uint result = FnTable.GetComponentRenderModelName(pchRenderModelName, pchComponentName, pchComponentRenderModelName, unComponentRenderModelNameLen);
|
|
return result;
|
|
}
|
|
public bool GetComponentStateForDevicePath(string pchRenderModelName, string pchComponentName, ulong devicePath, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState)
|
|
{
|
|
bool result = FnTable.GetComponentStateForDevicePath(pchRenderModelName, pchComponentName, devicePath, ref pState, ref pComponentState);
|
|
return result;
|
|
}
|
|
// This is a terrible hack to workaround the fact that VRControllerState_t and VREvent_t were
|
|
// originally mis-compiled with the wrong packing for Linux and OSX.
|
|
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
|
|
internal delegate bool _GetComponentStatePacked(string pchRenderModelName, string pchComponentName, ref VRControllerState_t_Packed pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState);
|
|
[StructLayout(LayoutKind.Explicit)]
|
|
struct GetComponentStateUnion
|
|
{
|
|
[FieldOffset(0)]
|
|
public IHVRRenderModels._GetComponentState pGetComponentState;
|
|
[FieldOffset(0)]
|
|
public _GetComponentStatePacked pGetComponentStatePacked;
|
|
}
|
|
public bool GetComponentState(string pchRenderModelName, string pchComponentName, ref HVRControllerState_t pControllerState, ref RenderModel_ControllerMode_State_t pState, ref RenderModel_ComponentState_t pComponentState)
|
|
{
|
|
#if !UNITY_METRO
|
|
if ((System.Environment.OSVersion.Platform == System.PlatformID.MacOSX) ||
|
|
(System.Environment.OSVersion.Platform == System.PlatformID.Unix))
|
|
{
|
|
GetComponentStateUnion u;
|
|
VRControllerState_t_Packed state_packed = new VRControllerState_t_Packed(pControllerState);
|
|
u.pGetComponentStatePacked = null;
|
|
u.pGetComponentState = FnTable.GetComponentState;
|
|
bool packed_result = u.pGetComponentStatePacked(pchRenderModelName, pchComponentName, ref state_packed, ref pState, ref pComponentState);
|
|
|
|
state_packed.Unpack(ref pControllerState);
|
|
return packed_result;
|
|
}
|
|
#endif
|
|
bool result = FnTable.GetComponentState(pchRenderModelName, pchComponentName, ref pControllerState, ref pState, ref pComponentState);
|
|
return result;
|
|
}
|
|
public bool RenderModelHasComponent(string pchRenderModelName, string pchComponentName)
|
|
{
|
|
bool result = FnTable.RenderModelHasComponent(pchRenderModelName, pchComponentName);
|
|
return result;
|
|
}
|
|
public uint GetRenderModelThumbnailURL(string pchRenderModelName, System.Text.StringBuilder pchThumbnailURL, uint unThumbnailURLLen, ref EHVRRenderModelError peError)
|
|
{
|
|
uint result = FnTable.GetRenderModelThumbnailURL(pchRenderModelName, pchThumbnailURL, unThumbnailURLLen, ref peError);
|
|
return result;
|
|
}
|
|
public uint GetRenderModelOriginalPath(string pchRenderModelName, System.Text.StringBuilder pchOriginalPath, uint unOriginalPathLen, ref EHVRRenderModelError peError)
|
|
{
|
|
uint result = FnTable.GetRenderModelOriginalPath(pchRenderModelName, pchOriginalPath, unOriginalPathLen, ref peError);
|
|
return result;
|
|
}
|
|
public string GetRenderModelErrorNameFromEnum(EHVRRenderModelError error)
|
|
{
|
|
IntPtr result = FnTable.GetRenderModelErrorNameFromEnum(error);
|
|
return Marshal.PtrToStringAnsi(result);
|
|
}
|
|
}
|
|
|
|
public class CHVRTrackedCamera
|
|
{
|
|
IHVRTrackedCamera FnTable;
|
|
internal CHVRTrackedCamera(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVRTrackedCamera)Marshal.PtrToStructure(pInterface, typeof(IHVRTrackedCamera));
|
|
}
|
|
public string GetCameraErrorNameFromEnum(EHVRTrackedCameraError eCameraError)
|
|
{
|
|
IntPtr result = FnTable.GetCameraErrorNameFromEnum(eCameraError);
|
|
return Marshal.PtrToStringAnsi(result);
|
|
}
|
|
public EHVRTrackedCameraError HasCamera(uint nDeviceIndex,ref bool pHasCamera)
|
|
{
|
|
pHasCamera = false;
|
|
EHVRTrackedCameraError result = FnTable.HasCamera(nDeviceIndex,ref pHasCamera);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetCameraFrameSize(uint nDeviceIndex,EHVRTrackedCameraFrameType eFrameType,ref uint pnWidth,ref uint pnHeight,ref uint pnFrameBufferSize)
|
|
{
|
|
pnWidth = 0;
|
|
pnHeight = 0;
|
|
pnFrameBufferSize = 0;
|
|
EHVRTrackedCameraError result = FnTable.GetCameraFrameSize(nDeviceIndex,eFrameType,ref pnWidth,ref pnHeight,ref pnFrameBufferSize);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetCameraIntrinsics(uint nDeviceIndex, uint nCameraIndex, EHVRTrackedCameraFrameType eFrameType,ref HVRVector2_t pFocalLength,ref HVRVector2_t pCenter)
|
|
{
|
|
EHVRTrackedCameraError result = FnTable.GetCameraIntrinsics(nDeviceIndex, nCameraIndex, eFrameType, ref pFocalLength,ref pCenter);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetCameraProjection(uint nDeviceIndex,uint nCameraIndex, EHVRTrackedCameraFrameType eFrameType,float flZNear,float flZFar,ref HVRMatrix44_t pProjection)
|
|
{
|
|
EHVRTrackedCameraError result = FnTable.GetCameraProjection(nDeviceIndex,nCameraIndex, eFrameType,flZNear,flZFar,ref pProjection);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError AcquireVideoStreamingService(uint nDeviceIndex,ref ulong pHandle)
|
|
{
|
|
pHandle = 0;
|
|
EHVRTrackedCameraError result = FnTable.AcquireVideoStreamingService(nDeviceIndex,ref pHandle);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError ReleaseVideoStreamingService(ulong hTrackedCamera)
|
|
{
|
|
EHVRTrackedCameraError result = FnTable.ReleaseVideoStreamingService(hTrackedCamera);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetVideoStreamFrameBuffer(ulong hTrackedCamera,EHVRTrackedCameraFrameType eFrameType,IntPtr pFrameBuffer,uint nFrameBufferSize,ref HVRCameraVideoStreamFrameHeader_t pFrameHeader,uint nFrameHeaderSize)
|
|
{
|
|
EHVRTrackedCameraError result = FnTable.GetVideoStreamFrameBuffer(hTrackedCamera,eFrameType,pFrameBuffer,nFrameBufferSize,ref pFrameHeader,nFrameHeaderSize);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetVideoStreamTextureSize(uint nDeviceIndex,EHVRTrackedCameraFrameType eFrameType,ref HVRTextureBounds_t pTextureBounds,ref uint pnWidth,ref uint pnHeight)
|
|
{
|
|
pnWidth = 0;
|
|
pnHeight = 0;
|
|
EHVRTrackedCameraError result = FnTable.GetVideoStreamTextureSize(nDeviceIndex,eFrameType,ref pTextureBounds,ref pnWidth,ref pnHeight);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetVideoStreamTextureD3D11(ulong hTrackedCamera,EHVRTrackedCameraFrameType eFrameType,IntPtr pD3D11DeviceOrResource,ref IntPtr ppD3D11ShaderResourceView,ref HVRCameraVideoStreamFrameHeader_t pFrameHeader,uint nFrameHeaderSize)
|
|
{
|
|
EHVRTrackedCameraError result = FnTable.GetVideoStreamTextureD3D11(hTrackedCamera,eFrameType,pD3D11DeviceOrResource,ref ppD3D11ShaderResourceView,ref pFrameHeader,nFrameHeaderSize);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError GetVideoStreamTextureGL(ulong hTrackedCamera,EHVRTrackedCameraFrameType eFrameType,ref uint pglTextureId,ref HVRCameraVideoStreamFrameHeader_t pFrameHeader,uint nFrameHeaderSize)
|
|
{
|
|
pglTextureId = 0;
|
|
EHVRTrackedCameraError result = FnTable.GetVideoStreamTextureGL(hTrackedCamera,eFrameType,ref pglTextureId,ref pFrameHeader,nFrameHeaderSize);
|
|
return result;
|
|
}
|
|
public EHVRTrackedCameraError ReleaseVideoStreamTextureGL(ulong hTrackedCamera,uint glTextureId)
|
|
{
|
|
EHVRTrackedCameraError result = FnTable.ReleaseVideoStreamTextureGL(hTrackedCamera,glTextureId);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public class CHVRSettings
|
|
{
|
|
IHVRSettings FnTable;
|
|
internal CHVRSettings(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVRSettings)Marshal.PtrToStructure(pInterface, typeof(IHVRSettings));
|
|
}
|
|
public string GetSettingsErrorNameFromEnum(EHVRSettingsError eError)
|
|
{
|
|
IntPtr result = FnTable.GetSettingsErrorNameFromEnum(eError);
|
|
return Marshal.PtrToStringAnsi(result);
|
|
}
|
|
public bool Sync(bool bForce,ref EHVRSettingsError peError)
|
|
{
|
|
bool result = FnTable.Sync(bForce,ref peError);
|
|
return result;
|
|
}
|
|
public void SetBool(string pchSection,string pchSettingsKey,bool bValue,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.SetBool(pchSection,pchSettingsKey,bValue,ref peError);
|
|
}
|
|
public void SetInt32(string pchSection,string pchSettingsKey,int nValue,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.SetInt32(pchSection,pchSettingsKey,nValue,ref peError);
|
|
}
|
|
public void SetFloat(string pchSection,string pchSettingsKey,float flValue,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.SetFloat(pchSection,pchSettingsKey,flValue,ref peError);
|
|
}
|
|
public void SetString(string pchSection,string pchSettingsKey,string pchValue,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.SetString(pchSection,pchSettingsKey,pchValue,ref peError);
|
|
}
|
|
public bool GetBool(string pchSection,string pchSettingsKey,ref EHVRSettingsError peError)
|
|
{
|
|
bool result = FnTable.GetBool(pchSection,pchSettingsKey,ref peError);
|
|
return result;
|
|
}
|
|
public int GetInt32(string pchSection,string pchSettingsKey,ref EHVRSettingsError peError)
|
|
{
|
|
int result = FnTable.GetInt32(pchSection,pchSettingsKey,ref peError);
|
|
return result;
|
|
}
|
|
public float GetFloat(string pchSection,string pchSettingsKey,ref EHVRSettingsError peError)
|
|
{
|
|
float result = FnTable.GetFloat(pchSection,pchSettingsKey,ref peError);
|
|
return result;
|
|
}
|
|
public void GetString(string pchSection,string pchSettingsKey,System.Text.StringBuilder pchValue,uint unValueLen,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.GetString(pchSection,pchSettingsKey,pchValue,unValueLen,ref peError);
|
|
}
|
|
public void RemoveSection(string pchSection,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.RemoveSection(pchSection,ref peError);
|
|
}
|
|
public void RemoveKeyInSection(string pchSection,string pchSettingsKey,ref EHVRSettingsError peError)
|
|
{
|
|
FnTable.RemoveKeyInSection(pchSection,pchSettingsKey,ref peError);
|
|
}
|
|
}
|
|
|
|
public class CHVRChaperoneSetup
|
|
{
|
|
IHVRChaperoneSetup FnTable;
|
|
internal CHVRChaperoneSetup(IntPtr pInterface)
|
|
{
|
|
FnTable = (IHVRChaperoneSetup)Marshal.PtrToStructure(pInterface, typeof(IHVRChaperoneSetup));
|
|
}
|
|
public bool CommitWorkingCopy(EHVRChaperoneConfigFile configFile)
|
|
{
|
|
bool result = FnTable.CommitWorkingCopy(configFile);
|
|
return result;
|
|
}
|
|
public void RevertWorkingCopy()
|
|
{
|
|
FnTable.RevertWorkingCopy();
|
|
}
|
|
public bool GetWorkingPlayAreaSize(ref float pSizeX,ref float pSizeZ)
|
|
{
|
|
pSizeX = 0;
|
|
pSizeZ = 0;
|
|
bool result = FnTable.GetWorkingPlayAreaSize(ref pSizeX,ref pSizeZ);
|
|
return result;
|
|
}
|
|
public bool GetWorkingPlayAreaRect(ref HVRQuad_t rect)
|
|
{
|
|
bool result = FnTable.GetWorkingPlayAreaRect(ref rect);
|
|
return result;
|
|
}
|
|
public bool GetWorkingCollisionBoundsInfo(out HVRQuad_t [] pQuadsBuffer)
|
|
{
|
|
uint punQuadsCount = 0;
|
|
bool result = FnTable.GetWorkingCollisionBoundsInfo(null,ref punQuadsCount);
|
|
pQuadsBuffer= new HVRQuad_t[punQuadsCount];
|
|
result = FnTable.GetWorkingCollisionBoundsInfo(pQuadsBuffer,ref punQuadsCount);
|
|
return result;
|
|
}
|
|
public bool GetLiveCollisionBoundsInfo(out HVRQuad_t [] pQuadsBuffer)
|
|
{
|
|
uint punQuadsCount = 0;
|
|
bool result = FnTable.GetLiveCollisionBoundsInfo(null,ref punQuadsCount);
|
|
pQuadsBuffer= new HVRQuad_t[punQuadsCount];
|
|
result = FnTable.GetLiveCollisionBoundsInfo(pQuadsBuffer,ref punQuadsCount);
|
|
return result;
|
|
}
|
|
public bool GetWorkingSeatedZeroPoseToRawTrackingPose(ref HVRMatrix34_t pmatSeatedZeroPoseToRawTrackingPose)
|
|
{
|
|
bool result = FnTable.GetWorkingSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose);
|
|
return result;
|
|
}
|
|
public bool GetWorkingStandingZeroPoseToRawTrackingPose(ref HVRMatrix34_t pmatStandingZeroPoseToRawTrackingPose)
|
|
{
|
|
bool result = FnTable.GetWorkingStandingZeroPoseToRawTrackingPose(ref pmatStandingZeroPoseToRawTrackingPose);
|
|
return result;
|
|
}
|
|
public void SetWorkingPlayAreaSize(float sizeX,float sizeZ)
|
|
{
|
|
FnTable.SetWorkingPlayAreaSize(sizeX,sizeZ);
|
|
}
|
|
public void SetWorkingCollisionBoundsInfo(HVRQuad_t [] pQuadsBuffer)
|
|
{
|
|
FnTable.SetWorkingCollisionBoundsInfo(pQuadsBuffer,(uint) pQuadsBuffer.Length);
|
|
}
|
|
public void SetWorkingSeatedZeroPoseToRawTrackingPose(ref HVRMatrix34_t pMatSeatedZeroPoseToRawTrackingPose)
|
|
{
|
|
FnTable.SetWorkingSeatedZeroPoseToRawTrackingPose(ref pMatSeatedZeroPoseToRawTrackingPose);
|
|
}
|
|
public void SetWorkingStandingZeroPoseToRawTrackingPose(ref HVRMatrix34_t pMatStandingZeroPoseToRawTrackingPose)
|
|
{
|
|
FnTable.SetWorkingStandingZeroPoseToRawTrackingPose(ref pMatStandingZeroPoseToRawTrackingPose);
|
|
}
|
|
public void ReloadFromDisk(EHVRChaperoneConfigFile configFile)
|
|
{
|
|
FnTable.ReloadFromDisk(configFile);
|
|
}
|
|
public bool GetLiveSeatedZeroPoseToRawTrackingPose(ref HVRMatrix34_t pmatSeatedZeroPoseToRawTrackingPose)
|
|
{
|
|
bool result = FnTable.GetLiveSeatedZeroPoseToRawTrackingPose(ref pmatSeatedZeroPoseToRawTrackingPose);
|
|
return result;
|
|
}
|
|
public void SetWorkingCollisionBoundsTagsInfo(byte [] pTagsBuffer)
|
|
{
|
|
FnTable.SetWorkingCollisionBoundsTagsInfo(pTagsBuffer,(uint) pTagsBuffer.Length);
|
|
}
|
|
public bool GetLiveCollisionBoundsTagsInfo(out byte [] pTagsBuffer)
|
|
{
|
|
uint punTagCount = 0;
|
|
bool result = FnTable.GetLiveCollisionBoundsTagsInfo(null,ref punTagCount);
|
|
pTagsBuffer= new byte[punTagCount];
|
|
result = FnTable.GetLiveCollisionBoundsTagsInfo(pTagsBuffer,ref punTagCount);
|
|
return result;
|
|
}
|
|
public bool SetWorkingPhysicalBoundsInfo(HVRQuad_t [] pQuadsBuffer)
|
|
{
|
|
bool result = FnTable.SetWorkingPhysicalBoundsInfo(pQuadsBuffer,(uint) pQuadsBuffer.Length);
|
|
return result;
|
|
}
|
|
public bool GetLivePhysicalBoundsInfo(out HVRQuad_t [] pQuadsBuffer)
|
|
{
|
|
uint punQuadsCount = 0;
|
|
bool result = FnTable.GetLivePhysicalBoundsInfo(null,ref punQuadsCount);
|
|
pQuadsBuffer= new HVRQuad_t[punQuadsCount];
|
|
result = FnTable.GetLivePhysicalBoundsInfo(pQuadsBuffer,ref punQuadsCount);
|
|
return result;
|
|
}
|
|
public bool ExportLiveToBuffer(System.Text.StringBuilder pBuffer,ref uint pnBufferLength)
|
|
{
|
|
pnBufferLength = 0;
|
|
bool result = FnTable.ExportLiveToBuffer(pBuffer,ref pnBufferLength);
|
|
return result;
|
|
}
|
|
public bool ImportFromBufferToWorking(string pBuffer,uint nImportFlags)
|
|
{
|
|
bool result = FnTable.ImportFromBufferToWorking(pBuffer,nImportFlags);
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public class HVRInterop
|
|
{
|
|
[DllImportAttribute("ViveVR_api", EntryPoint = "HVR_Init")]
|
|
internal static extern EHVRErrorCode HVR_InitInternal(EHVRApplicationType eApplicationType);
|
|
[DllImportAttribute("ViveVR_api", EntryPoint = "HVR_ShutDown")]
|
|
internal static extern EHVRErrorCode HVR_ShutdownInternal();
|
|
[DllImportAttribute("ViveVR_api", EntryPoint = "HVR_GetGenericInterface")]
|
|
internal static extern IntPtr HVR_GetGenericInterface([In, MarshalAs(UnmanagedType.LPStr)] string pchInterfaceVersion, ref EHVRErrorCode peError);
|
|
}
|
|
|
|
public enum EHVREye
|
|
{
|
|
EHVREye_Left = 0,
|
|
EHVREye_Right = 1,
|
|
}
|
|
|
|
public enum EHVRTextureType
|
|
{
|
|
EHVRTextureType_DirectX = 0,
|
|
EHVRTextureType_OpenGL = 1,
|
|
EHVRTextureType_Vulkan = 2,
|
|
EHVRTextureType_IOSurface = 3,
|
|
EHVRTextureType_DirectX12 = 4,
|
|
}
|
|
|
|
public enum EHVRColorSpace
|
|
{
|
|
EHVRColorSpace_Auto = 0,
|
|
EHVRColorSpace_Gamma = 1,
|
|
EHVRColorSpace_Linear = 2,
|
|
}
|
|
|
|
public enum EHVRSubmitFlags
|
|
{
|
|
EHVRSubmitFlags_Default = 0,
|
|
EHVRSubmitFlags_LensDistortionAlreadyApplied = 1,
|
|
EHVRSubmitFlags_GlRenderBuffer = 2,
|
|
EHVRSubmitFlags_Reserved = 4,
|
|
EHVRSubmitFlags_TextureWithPose = 8,
|
|
}
|
|
|
|
public enum EHVRTrackingUniverseOrigin
|
|
{
|
|
EHVRTrackingUniverseOrigin_Seated = 0,
|
|
EHVRTrackingUniverseOrigin_Standing = 1,
|
|
EHVRTrackingUniverseOrigin_RawAndUncalibrated = 2,
|
|
}
|
|
|
|
public enum EHVRTrackingResult
|
|
{
|
|
EHVRTrackingResult_Uninitialized = 1,
|
|
EHVRTrackingResult_Calibrating_InProgress = 100,
|
|
EHVRTrackingResult_Calibrating_OutOfRange = 101,
|
|
EHVRTrackingResult_Running_OK = 200,
|
|
EHVRTrackingResult_Running_OutOfRange = 201,
|
|
}
|
|
|
|
public enum EHVRTrackedControllerRole
|
|
{
|
|
EHVRTrackedControllerRole_Invalid = 0,
|
|
EHVRTrackedControllerRole_LeftHand = 1,
|
|
EHVRTrackedControllerRole_RightHand = 2,
|
|
}
|
|
|
|
public enum EHVRTrackedDeviceClass
|
|
{
|
|
EHVRTrackedDeviceClass_Invalid = 0,
|
|
EHVRTrackedDeviceClass_HMD = 1,
|
|
EHVRTrackedDeviceClass_Controller = 2,
|
|
EHVRTrackedDeviceClass_GenericTracker = 3,
|
|
EHVRTrackedDeviceClass_TrackingReference = 4,
|
|
}
|
|
|
|
public enum EHVRApplicationType
|
|
{
|
|
EHVRApplication_Other = 0,
|
|
EHVRApplication_Scene = 1,
|
|
EHVRApplication_Overlay = 2,
|
|
EHVRApplication_Background = 3,
|
|
EHVRApplication_Utility = 4,
|
|
EHVRApplication_VRMonitor = 5,
|
|
EHVRApplication_Max = 6,
|
|
}
|
|
|
|
public enum EHVRTrackedDeviceProperty
|
|
{
|
|
EHVRTrackedDeviceProperty_Invalid = 0,
|
|
EHVRTrackedDeviceProperty_TrackingSystemName_String = 1000,
|
|
EHVRTrackedDeviceProperty_ModelNumber_String = 1001,
|
|
EHVRTrackedDeviceProperty_SerialNumber_String = 1002,
|
|
EHVRTrackedDeviceProperty_RenderModelName_String = 1003,
|
|
EHVRTrackedDeviceProperty_WillDriftInYaw_Bool = 1004,
|
|
EHVRTrackedDeviceProperty_ManufacturerName_String = 1005,
|
|
EHVRTrackedDeviceProperty_TrackingFirmwareVersion_String = 1006,
|
|
EHVRTrackedDeviceProperty_HardwareRevision_String = 1007,
|
|
EHVRTrackedDeviceProperty_AllWirelessDongleDescriptions_String = 1008,
|
|
EHVRTrackedDeviceProperty_ConnectedWirelessDongle_String = 1009,
|
|
EHVRTrackedDeviceProperty_DeviceIsWireless_Bool = 1010,
|
|
EHVRTrackedDeviceProperty_DeviceIsCharging_Bool = 1011,
|
|
EHVRTrackedDeviceProperty_DeviceBatteryPercentage_Float = 1012,
|
|
EHVRTrackedDeviceProperty_StatusDisplayTransform_Matrix34 = 1013,
|
|
EHVRTrackedDeviceProperty_Firmware_UpdateAvailable_Bool = 1014,
|
|
EHVRTrackedDeviceProperty_Firmware_ManualUpdate_Bool = 1015,
|
|
EHVRTrackedDeviceProperty_Firmware_ManualUpdateURL_String = 1016,
|
|
EHVRTrackedDeviceProperty_HardwareRevision_Uint64 = 1017,
|
|
EHVRTrackedDeviceProperty_FirmwareVersion_Uint64 = 1018,
|
|
EHVRTrackedDeviceProperty_FPGAVersion_Uint64 = 1019,
|
|
EHVRTrackedDeviceProperty_VRCVersion_Uint64 = 1020,
|
|
EHVRTrackedDeviceProperty_RadioVersion_Uint64 = 1021,
|
|
EHVRTrackedDeviceProperty_DongleVersion_Uint64 = 1022,
|
|
EHVRTrackedDeviceProperty_BlockServerShutdown_Bool = 1023,
|
|
EHVRTrackedDeviceProperty_CanUnifyCoordinateSystemWithHmd_Bool = 1024,
|
|
EHVRTrackedDeviceProperty_ContainsProximitySensor_Bool = 1025,
|
|
EHVRTrackedDeviceProperty_DeviceProvidesBatteryStatus_Bool = 1026,
|
|
EHVRTrackedDeviceProperty_DeviceCanPowerOff_Bool = 1027,
|
|
EHVRTrackedDeviceProperty_Firmware_ProgrammingTarget_String = 1028,
|
|
EHVRTrackedDeviceProperty_DeviceClass_Int32 = 1029,
|
|
EHVRTrackedDeviceProperty_HasCamera_Bool = 1030,
|
|
EHVRTrackedDeviceProperty_DriverVersion_String = 1031,
|
|
EHVRTrackedDeviceProperty_Firmware_ForceUpdateRequired_Bool = 1032,
|
|
EHVRTrackedDeviceProperty_ViveSystemButtonFixRequired_Bool = 1033,
|
|
EHVRTrackedDeviceProperty_ParentDriver_Uint64 = 1034,
|
|
EHVRTrackedDeviceProperty_ResourceRoot_String = 1035,
|
|
EHVRTrackedDeviceProperty_ReportsTimeSinceVSync_Bool = 2000,
|
|
EHVRTrackedDeviceProperty_SecondsFromVsyncToPhotons_Float = 2001,
|
|
EHVRTrackedDeviceProperty_DisplayFrequency_Float = 2002,
|
|
EHVRTrackedDeviceProperty_UserIpdMeters_Float = 2003,
|
|
EHVRTrackedDeviceProperty_CurrentUniverseId_Uint64 = 2004,
|
|
EHVRTrackedDeviceProperty_PreviousUniverseId_Uint64 = 2005,
|
|
EHVRTrackedDeviceProperty_DisplayFirmwareVersion_Uint64 = 2006,
|
|
EHVRTrackedDeviceProperty_IsOnDesktop_Bool = 2007,
|
|
EHVRTrackedDeviceProperty_DisplayMCType_Int32 = 2008,
|
|
EHVRTrackedDeviceProperty_DisplayMCOffset_Float = 2009,
|
|
EHVRTrackedDeviceProperty_DisplayMCScale_Float = 2010,
|
|
EHVRTrackedDeviceProperty_EdidVendorID_Int32 = 2011,
|
|
EHVRTrackedDeviceProperty_DisplayMCImageLeft_String = 2012,
|
|
EHVRTrackedDeviceProperty_DisplayMCImageRight_String = 2013,
|
|
EHVRTrackedDeviceProperty_DisplayGCBlackClamp_Float = 2014,
|
|
EHVRTrackedDeviceProperty_EdidProductID_Int32 = 2015,
|
|
EHVRTrackedDeviceProperty_CameraToHeadTransform_Matrix34 = 2016,
|
|
EHVRTrackedDeviceProperty_DisplayGCType_Int32 = 2017,
|
|
EHVRTrackedDeviceProperty_DisplayGCOffset_Float = 2018,
|
|
EHVRTrackedDeviceProperty_DisplayGCScale_Float = 2019,
|
|
EHVRTrackedDeviceProperty_DisplayGCPrescale_Float = 2020,
|
|
EHVRTrackedDeviceProperty_DisplayGCImage_String = 2021,
|
|
EHVRTrackedDeviceProperty_LensCenterLeftU_Float = 2022,
|
|
EHVRTrackedDeviceProperty_LensCenterLeftV_Float = 2023,
|
|
EHVRTrackedDeviceProperty_LensCenterRightU_Float = 2024,
|
|
EHVRTrackedDeviceProperty_LensCenterRightV_Float = 2025,
|
|
EHVRTrackedDeviceProperty_UserHeadToEyeDepthMeters_Float = 2026,
|
|
EHVRTrackedDeviceProperty_CameraFirmwareVersion_Uint64 = 2027,
|
|
EHVRTrackedDeviceProperty_CameraFirmwareDescription_String = 2028,
|
|
EHVRTrackedDeviceProperty_DisplayFPGAVersion_Uint64 = 2029,
|
|
EHVRTrackedDeviceProperty_DisplayBootloaderVersion_Uint64 = 2030,
|
|
EHVRTrackedDeviceProperty_DisplayHardwareVersion_Uint64 = 2031,
|
|
EHVRTrackedDeviceProperty_AudioFirmwareVersion_Uint64 = 2032,
|
|
EHVRTrackedDeviceProperty_CameraCompatibilityMode_Int32 = 2033,
|
|
EHVRTrackedDeviceProperty_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034,
|
|
EHVRTrackedDeviceProperty_ScreenshotVerticalFieldOfViewDegrees_Float = 2035,
|
|
EHVRTrackedDeviceProperty_DisplaySuppressed_Bool = 2036,
|
|
EHVRTrackedDeviceProperty_DisplayAllowNightMode_Bool = 2037,
|
|
EHVRTrackedDeviceProperty_DisplayMCImageWidth_Int32 = 2038,
|
|
EHVRTrackedDeviceProperty_DisplayMCImageHeight_Int32 = 2039,
|
|
EHVRTrackedDeviceProperty_DisplayMCImageNumChannels_Int32 = 2040,
|
|
EHVRTrackedDeviceProperty_DisplayMCImageData_Binary = 2041,
|
|
EHVRTrackedDeviceProperty_SecondsFromPhotonsToVblank_Float = 2042,
|
|
EHVRTrackedDeviceProperty_DriverDirectModeSendsVsyncEvents_Bool = 2043,
|
|
EHVRTrackedDeviceProperty_DisplayDebugMode_Bool = 2044,
|
|
EHVRTrackedDeviceProperty_GraphicsAdapterLuid_Uint64 = 2045,
|
|
EHVRTrackedDeviceProperty_AttachedDeviceId_String = 3000,
|
|
EHVRTrackedDeviceProperty_SupportedButtons_Uint64 = 3001,
|
|
EHVRTrackedDeviceProperty_Axis0Type_Int32 = 3002,
|
|
EHVRTrackedDeviceProperty_Axis1Type_Int32 = 3003,
|
|
EHVRTrackedDeviceProperty_Axis2Type_Int32 = 3004,
|
|
EHVRTrackedDeviceProperty_Axis3Type_Int32 = 3005,
|
|
EHVRTrackedDeviceProperty_Axis4Type_Int32 = 3006,
|
|
EHVRTrackedDeviceProperty_ControllerRoleHint_Int32 = 3007,
|
|
EHVRTrackedDeviceProperty_FieldOfViewLeftDegrees_Float = 4000,
|
|
EHVRTrackedDeviceProperty_FieldOfViewRightDegrees_Float = 4001,
|
|
EHVRTrackedDeviceProperty_FieldOfViewTopDegrees_Float = 4002,
|
|
EHVRTrackedDeviceProperty_FieldOfViewBottomDegrees_Float = 4003,
|
|
EHVRTrackedDeviceProperty_TrackingRangeMinimumMeters_Float = 4004,
|
|
EHVRTrackedDeviceProperty_TrackingRangeMaximumMeters_Float = 4005,
|
|
EHVRTrackedDeviceProperty_ModeLabel_String = 4006,
|
|
EHVRTrackedDeviceProperty_IconPathName_String = 5000,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceOff_String = 5001,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceSearching_String = 5002,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceSearchingAlert_String = 5003,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceReady_String = 5004,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceReadyAlert_String = 5005,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceNotReady_String = 5006,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceStandby_String = 5007,
|
|
EHVRTrackedDeviceProperty_NamedIconPathDeviceAlertLow_String = 5008,
|
|
EHVRTrackedDeviceProperty_DisplayHiddenArea_Binary_Start = 5100,
|
|
EHVRTrackedDeviceProperty_DisplayHiddenArea_Binary_End = 5150,
|
|
EHVRTrackedDeviceProperty_UserConfigPath_String = 6000,
|
|
EHVRTrackedDeviceProperty_InstallPath_String = 6001,
|
|
EHVRTrackedDeviceProperty_HasDisplayComponent_Bool = 6002,
|
|
EHVRTrackedDeviceProperty_HasControllerComponent_Bool = 6003,
|
|
EHVRTrackedDeviceProperty_HasCameraComponent_Bool = 6004,
|
|
EHVRTrackedDeviceProperty_HasDriverDirectModeComponent_Bool = 6005,
|
|
EHVRTrackedDeviceProperty_HasVirtualDisplayComponent_Bool = 6006,
|
|
EHVRTrackedDeviceProperty_VendorSpecific_Reserved_Start = 10000,
|
|
EHVRTrackedDeviceProperty_VendorSpecific_Reserved_End = 10999,
|
|
}
|
|
|
|
public enum EHVRTrackedPropertyError
|
|
{
|
|
EHVRTrackedPropertyError_Success = 0,
|
|
EHVRTrackedPropertyError_WrongDataType = 1,
|
|
EHVRTrackedPropertyError_WrongDeviceClass = 2,
|
|
EHVRTrackedPropertyError_BufferTooSmall = 3,
|
|
EHVRTrackedPropertyError_UnknownProperty = 4,
|
|
EHVRTrackedPropertyError_InvalidDevice = 5,
|
|
EHVRTrackedPropertyError_CouldNotContactServer = 6,
|
|
EHVRTrackedPropertyError_ValueNotProvidedByDevice = 7,
|
|
EHVRTrackedPropertyError_StringExceedsMaximumLength = 8,
|
|
EHVRTrackedPropertyError_NotYetAvailable = 9,
|
|
EHVRTrackedPropertyError_PermissionDenied = 10,
|
|
EHVRTrackedPropertyError_InvalidOperation = 11,
|
|
}
|
|
|
|
public enum EHVRHiddenAreaMeshType
|
|
{
|
|
EHVRHiddenAreaMeshType_Standard = 0,
|
|
EHVRHiddenAreaMeshType_Inverse = 1,
|
|
EHVRHiddenAreaMeshType_LineLoop = 2,
|
|
EHVRHiddenAreaMeshType_Max = 3,
|
|
}
|
|
|
|
public enum EHVRButtonId
|
|
{
|
|
EHVRButtonId_System = 0,
|
|
EHVRButtonId_ApplicationMenu = 1,
|
|
EHVRButtonId_Grip = 2,
|
|
EHVRButtonId_DPad_Left = 3,
|
|
EHVRButtonId_DPad_Up = 4,
|
|
EHVRButtonId_DPad_Right = 5,
|
|
EHVRButtonId_DPad_Down = 6,
|
|
EHVRButtonId_A = 7,
|
|
EHVRButtonId_ProximitySensor = 31,
|
|
EHVRButtonId_Axis0 = 32,
|
|
EHVRButtonId_Axis1 = 33,
|
|
EHVRButtonId_Axis2 = 34,
|
|
EHVRButtonId_Axis3 = 35,
|
|
EHVRButtonId_Axis4 = 36,
|
|
EVRButton_Touchpad = 32,
|
|
EVRButton_Trigger = 33,
|
|
EVRButton_Dashboard_Back = 2,
|
|
EHVRButtonId_Max = 64,
|
|
}
|
|
|
|
public enum EHVRControllerAxisType
|
|
{
|
|
EHVRControllerAxisType_None = 0,
|
|
EHVRControllerAxisType_TrackPad = 1,
|
|
EHVRControllerAxisType_Joystick = 2,
|
|
EHVRControllerAxisType_Trigger = 3,
|
|
}
|
|
|
|
|
|
public enum HVROverlayTransformType
|
|
{
|
|
HVROverlayTransformType_Absolute = 0,
|
|
HVROverlayTransformType_TrackedDeviceRelative = 1,
|
|
HVROverlayTransformType_SystemOverlay = 2,
|
|
HVROverlayTransformType_TrackedComponent = 3,
|
|
}
|
|
|
|
public enum EHVREventType
|
|
{
|
|
EHVREventType_None = 0,
|
|
EHVREventType_TrackedDeviceActivated = 100,
|
|
EHVREventType_TrackedDeviceDeactivated = 101,
|
|
EHVREventType_TrackedDeviceUpdated = 102,
|
|
EHVREventType_TrackedDeviceUserInteractionStarted = 103,
|
|
EHVREventType_TrackedDeviceUserInteractionEnded = 104,
|
|
EHVREventType_IpdChanged = 105,
|
|
EHVREventType_EnterStandbyMode = 106,
|
|
EHVREventType_LeaveStandbyMode = 107,
|
|
EHVREventType_TrackedDeviceRoleChanged = 108,
|
|
EHVREventType_WatchdogWakeUpRequested = 109,
|
|
EHVREventType_LensDistortionChanged = 110,
|
|
EHVREventType_PropertyChanged = 111,
|
|
EHVREventType_ButtonPress = 200,
|
|
EHVREventType_ButtonUnpress = 201,
|
|
EHVREventType_ButtonTouch = 202,
|
|
EHVREventType_ButtonUntouch = 203,
|
|
EHVREventType_MouseMove = 300,
|
|
EHVREventType_MouseButtonDown = 301,
|
|
EHVREventType_MouseButtonUp = 302,
|
|
EHVREventType_FocusEnter = 303,
|
|
EHVREventType_FocusLeave = 304,
|
|
EHVREventType_Scroll = 305,
|
|
EHVREventType_TouchPadMove = 306,
|
|
EHVREventType_OverlayFocusChanged = 307,
|
|
EHVREventType_InputFocusCaptured = 400,
|
|
EHVREventType_InputFocusReleased = 401,
|
|
EHVREventType_SceneFocusLost = 402,
|
|
EHVREventType_SceneFocusGained = 403,
|
|
EHVREventType_SceneApplicationChanged = 404,
|
|
EHVREventType_SceneFocusChanged = 405,
|
|
EHVREventType_InputFocusChanged = 406,
|
|
EHVREventType_SceneApplicationSecondaryRenderingStarted = 407,
|
|
EHVREventType_HideRenderModels = 410,
|
|
EHVREventType_ShowRenderModels = 411,
|
|
EHVREventType_OverlayShown = 500,
|
|
EHVREventType_OverlayHidden = 501,
|
|
EHVREventType_DashboardActivated = 502,
|
|
EHVREventType_DashboardDeactivated = 503,
|
|
EHVREventType_DashboardThumbSelected = 504,
|
|
EHVREventType_DashboardRequested = 505,
|
|
EHVREventType_ResetDashboard = 506,
|
|
EHVREventType_RenderToast = 507,
|
|
EHVREventType_ImageLoaded = 508,
|
|
EHVREventType_ShowKeyboard = 509,
|
|
EHVREventType_HideKeyboard = 510,
|
|
EHVREventType_OverlayGamepadFocusGained = 511,
|
|
EHVREventType_OverlayGamepadFocusLost = 512,
|
|
EHVREventType_OverlaySharedTextureChanged = 513,
|
|
EHVREventType_DashboardGuideButtonDown = 514,
|
|
EHVREventType_DashboardGuideButtonUp = 515,
|
|
EHVREventType_ScreenshotTriggered = 516,
|
|
EHVREventType_ImageFailed = 517,
|
|
EHVREventType_DashboardOverlayCreated = 518,
|
|
EHVREventType_RequestScreenshot = 520,
|
|
EHVREventType_ScreenshotTaken = 521,
|
|
EHVREventType_ScreenshotFailed = 522,
|
|
EHVREventType_SubmitScreenshotToDashboard = 523,
|
|
EHVREventType_ScreenshotProgressToDashboard = 524,
|
|
EHVREventType_PrimaryDashboardDeviceChanged = 525,
|
|
EHVREventType_Notification_Shown = 600,
|
|
EHVREventType_Notification_Hidden = 601,
|
|
EHVREventType_Notification_BeginInteraction = 602,
|
|
EHVREventType_Notification_Destroyed = 603,
|
|
EHVREventType_Quit = 700,
|
|
EHVREventType_ProcessQuit = 701,
|
|
EHVREventType_QuitAborted_UserPrompt = 702,
|
|
EHVREventType_QuitAcknowledged = 703,
|
|
EHVREventType_DriverRequestedQuit = 704,
|
|
EHVREventType_ChaperoneDataHasChanged = 800,
|
|
EHVREventType_ChaperoneUniverseHasChanged = 801,
|
|
EHVREventType_ChaperoneTempDataHasChanged = 802,
|
|
EHVREventType_ChaperoneSettingsHaveChanged = 803,
|
|
EHVREventType_SeatedZeroPoseReset = 804,
|
|
EHVREventType_AudioSettingsHaveChanged = 820,
|
|
EHVREventType_BackgroundSettingHasChanged = 850,
|
|
EHVREventType_CameraSettingsHaveChanged = 851,
|
|
EHVREventType_ReprojectionSettingHasChanged = 852,
|
|
EHVREventType_ModelSkinSettingsHaveChanged = 853,
|
|
EHVREventType_EnvironmentSettingsHaveChanged = 854,
|
|
EHVREventType_PowerSettingsHaveChanged = 855,
|
|
EHVREventType_EnableHomeAppSettingsHaveChanged = 856,
|
|
EHVREventType_StatusUpdate = 900,
|
|
EHVREventType_MCImageUpdated = 1000,
|
|
EHVREventType_FirmwareUpdateStarted = 1100,
|
|
EHVREventType_FirmwareUpdateFinished = 1101,
|
|
EHVREventType_KeyboardClosed = 1200,
|
|
EHVREventType_KeyboardCharInput = 1201,
|
|
EHVREventType_KeyboardDone = 1202,
|
|
EHVREventType_ApplicationTransitionStarted = 1300,
|
|
EHVREventType_ApplicationTransitionAborted = 1301,
|
|
EHVREventType_ApplicationTransitionNewAppStarted = 1302,
|
|
EHVREventType_ApplicationListUpdated = 1303,
|
|
EHVREventType_ApplicationMimeTypeLoad = 1304,
|
|
EHVREventType_ApplicationTransitionNewAppLaunchComplete = 1305,
|
|
EHVREventType_ProcessConnected = 1306,
|
|
EHVREventType_ProcessDisconnected = 1307,
|
|
EHVREventType_Compositor_MirrorWindowShown = 1400,
|
|
EHVREventType_Compositor_MirrorWindowHidden = 1401,
|
|
EHVREventType_Compositor_ChaperoneBoundsShown = 1410,
|
|
EHVREventType_Compositor_ChaperoneBoundsHidden = 1411,
|
|
EHVREventType_TrackedCamera_StartVideoStream = 1500,
|
|
EHVREventType_TrackedCamera_StopVideoStream = 1501,
|
|
EHVREventType_TrackedCamera_PauseVideoStream = 1502,
|
|
EHVREventType_TrackedCamera_ResumeVideoStream = 1503,
|
|
EHVREventType_TrackedCamera_EditingSurface = 1550,
|
|
EHVREventType_PerformanceTest_EnableCapture = 1600,
|
|
EHVREventType_PerformanceTest_DisableCapture = 1601,
|
|
EHVREventType_PerformanceTest_FidelityLevel = 1602,
|
|
EHVREventType_MessageOverlay_Closed = 1650,
|
|
EHVREventType_VendorSpecific_Reserved_Start = 10000,
|
|
EHVREventType_VendorSpecific_Reserved_End = 19999,
|
|
}
|
|
|
|
public enum EHVRCompositorError
|
|
{
|
|
EHVRCompositorError_None = 0,
|
|
EHVRCompositorError_RequestFailed = 1,
|
|
EHVRCompositorError_IncompatibleVersion = 100,
|
|
EHVRCompositorError_DoNotHaveFocus = 101,
|
|
EHVRCompositorError_InvalidTexture = 102,
|
|
EHVRCompositorError_IsNotSceneApplication = 103,
|
|
EHVRCompositorError_TextureIsOnWrongDevice = 104,
|
|
EHVRCompositorError_TextureUsesUnsupportedFormat = 105,
|
|
EHVRCompositorError_SharedTexturesNotSupported = 106,
|
|
EHVRCompositorError_IndexOutOfRange = 107,
|
|
EHVRCompositorError_AlreadySubmitted = 108,
|
|
EHVRCompositorError_InvalidBounds = 109,
|
|
}
|
|
|
|
public enum EHVROverlayError
|
|
{
|
|
EHVROverlayError_None = 0,
|
|
EHVROverlayError_UnknownOverlay = 10,
|
|
EHVROverlayError_InvalidHandle = 11,
|
|
EHVROverlayError_PermissionDenied = 12,
|
|
EHVROverlayError_OverlayLimitExceeded = 13,
|
|
EHVROverlayError_WrongVisibilityType = 14,
|
|
EHVROverlayError_KeyTooLong = 15,
|
|
EHVROverlayError_NameTooLong = 16,
|
|
EHVROverlayError_KeyInUse = 17,
|
|
EHVROverlayError_WrongTransformType = 18,
|
|
EHVROverlayError_InvalidTrackedDevice = 19,
|
|
EHVROverlayError_InvalidParameter = 20,
|
|
EHVROverlayError_ThumbnailCantBeDestroyed = 21,
|
|
EHVROverlayError_ArrayTooSmall = 22,
|
|
EHVROverlayError_RequestFailed = 23,
|
|
EHVROverlayError_InvalidTexture = 24,
|
|
EHVROverlayError_UnableToLoadFile = 25,
|
|
EHVROverlayError_KeyboardAlreadyInUse = 26,
|
|
EHVROverlayError_NoNeighbor = 27,
|
|
EHVROverlayError_TooManyMaskPrimitives = 29,
|
|
EHVROverlayError_BadMaskPrimitive = 30,
|
|
}
|
|
|
|
public enum EHVRTrackedCameraError
|
|
{
|
|
EHVRTrackedCameraError_None = 0,
|
|
EHVRTrackedCameraError_OperationFailed = 100,
|
|
EHVRTrackedCameraError_InvalidHandle = 101,
|
|
EHVRTrackedCameraError_InvalidFrameHeaderVersion = 102,
|
|
EHVRTrackedCameraError_OutOfHandles = 103,
|
|
EHVRTrackedCameraError_IPCFailure = 104,
|
|
EHVRTrackedCameraError_NotSupportedForThisDevice = 105,
|
|
EHVRTrackedCameraError_SharedMemoryFailure = 106,
|
|
EHVRTrackedCameraError_FrameBufferingFailure = 107,
|
|
EHVRTrackedCameraError_StreamSetupFailure = 108,
|
|
EHVRTrackedCameraError_InvalidGLTextureId = 109,
|
|
EHVRTrackedCameraError_InvalidSharedTextureHandle = 110,
|
|
EHVRTrackedCameraError_FailedToGetGLTextureId = 111,
|
|
EHVRTrackedCameraError_SharedTextureFailure = 112,
|
|
EHVRTrackedCameraError_NoFrameAvailable = 113,
|
|
EHVRTrackedCameraError_InvalidArgument = 114,
|
|
EHVRTrackedCameraError_InvalidFrameBufferSize = 115,
|
|
}
|
|
|
|
public enum EHVRTrackedCameraFrameType
|
|
{
|
|
EHVRTrackedCameraFrameType_Distorted = 0,
|
|
EHVRTrackedCameraFrameType_Undistorted = 1,
|
|
EHVRTrackedCameraFrameType_MaximumUndistorted = 2,
|
|
EHVRTrackedCameraFrameType_MAX_CAMERA_FRAME_TYPES = 3,
|
|
}
|
|
|
|
public enum EHVRRenderModelError
|
|
{
|
|
None = 0,
|
|
Loading = 100,
|
|
NotSupported = 200,
|
|
InvalidArg = 300,
|
|
InvalidModel = 301,
|
|
NoShapes = 302,
|
|
MultipleShapes = 303,
|
|
TooManyVertices = 304,
|
|
MultipleTextures = 305,
|
|
BufferTooSmall = 306,
|
|
NotEnoughNormals = 307,
|
|
NotEnoughTexCoords = 308,
|
|
InvalidTexture = 400,
|
|
}
|
|
|
|
public enum EHVRComponentProperty
|
|
{
|
|
HVRComponentProperty_IsStatic = (1 << 0),
|
|
HVRComponentProperty_IsVisible = (1 << 1),
|
|
HVRComponentProperty_IsTouched = (1 << 2),
|
|
HVRComponentProperty_IsPressed = (1 << 3),
|
|
HVRComponentProperty_IsScrolled = (1 << 4),
|
|
}
|
|
|
|
public enum EHVRSettingsError
|
|
{
|
|
EVRSettingsError_None = 0,
|
|
EVRSettingsError_IPCFailed = 1,
|
|
EVRSettingsError_WriteFailed = 2,
|
|
EVRSettingsError_ReadFailed = 3,
|
|
EVRSettingsError_JsonParseFailed = 4,
|
|
EVRSettingsError_UnsetSettingHasNoDefault = 5,
|
|
}
|
|
|
|
public enum EHVRChaperoneConfigFile
|
|
{
|
|
EHVRChaperoneConfigFile_Live = 1,
|
|
EHVRChaperoneConfigFile_Temp = 2,
|
|
}
|
|
|
|
public enum EHVRErrorCode
|
|
{
|
|
HVR_ERR_None = 0,
|
|
HVR_ERR_Unknown = 1,
|
|
HVR_ERR_Init_ServerInstallationNotFound = 100,
|
|
HVR_ERR_Init_CompositorInstallationNotFound = 101,
|
|
HVR_ERR_Init_MonitorInstallationNotFound = 102,
|
|
HVR_ERR_Init_ServerProcessCannotBeLaunched = 103,
|
|
HVR_ERR_Init_CompositorProcessCannotBeLaunched = 104,
|
|
HVR_ERR_Init_MonitorProcessCannotBeLaunched = 105,
|
|
HVR_ERR_Init_DriverDLLNotFound = 106,
|
|
HVR_ERR_Init_FactoryNotFound = 107,
|
|
HVR_ERR_Init_InterfaceNotFound = 108,
|
|
HVR_ERR_Init_UserConfigDirectoryInvalid = 109,
|
|
HVR_ERR_Init_HmdNotFound = 110,
|
|
HVR_ERR_Init_NotInitialized = 111,
|
|
HVR_ERR_Init_NoConfigPath = 112,
|
|
HVR_ERR_Init_NoLogPath = 113,
|
|
HVR_ERR_Init_ServerRegistryNotFound = 114,
|
|
HVR_ERR_Init_CompositorRegistryNotFound = 115,
|
|
HVR_ERR_Init_MonitorRegistryNotFound = 116,
|
|
HVR_ERR_Init_SettingsInitFailed = 117,
|
|
HVR_ERR_Init_ShuttingDown = 118,
|
|
HVR_ERR_Init_VRMonitorNotFound = 119,
|
|
HVR_ERR_Init_VRMonitorInitFailed = 120,
|
|
HVR_ERR_Init_InvalidApplicationType = 121,
|
|
HVR_ERR_Init_ServerInstanceInitFailed = 122,
|
|
HVR_ERR_Init_CompositorInstanceInitFailed = 123,
|
|
HVR_ERR_Init_MonitorInstanceInitFailed = 124,
|
|
HVR_ERR_Init_RenderModelInstanceInitFailed = 125,
|
|
HVR_ERR_Driver_Failed = 200,
|
|
HVR_ERR_Driver_LoadFailed = 201,
|
|
HVR_ERR_Driver_InitFailed = 202,
|
|
HVR_ERR_Driver_InterfaceNotFound = 203,
|
|
HVR_ERR_Driver_HmdUnknown = 204,
|
|
HVR_ERR_Driver_RuntimeOutOfDate = 205,
|
|
HVR_ERR_IPC_ServerDisconnect = 300,
|
|
HVR_ERR_IPC_ServerInitFailed = 301,
|
|
HVR_ERR_IPC_ServerConnectFailed = 302,
|
|
HVR_ERR_IPC_CompositorInitFailed = 303,
|
|
HVR_ERR_IPC_CompositorConnectFailed = 304,
|
|
HVR_ERR_IPC_ConnectFailedAFterManyAttemps = 305,
|
|
HVR_ERR_Compositor_Failed = 400,
|
|
HVR_ERR_Compositor_GLFWInitFailed = 401,
|
|
HVR_ERR_Compositor_GLEWInitFailed = 402,
|
|
HVR_ERR_Compositor_DXInitFailed = 403,
|
|
HVR_ERR_Compositor_InitFailed = 404,
|
|
HVR_ERR_Compositor_D3D11HardwareRequired = 405,
|
|
HVR_ERR_Compositor_DirectModeFailed = 406,
|
|
HVR_ERR_Compositor_NVAPIFailed = 407,
|
|
HVR_ERR_Compositor_AMDAPIFailed = 408,
|
|
HVR_ERR_Interface_LoadCoreFailed = 501,
|
|
HVR_ERR_SDK_RegistryNotFound = 901,
|
|
HVR_ERR_SDK_LibsNotFound = 902,
|
|
HVR_ERR_SDK_LibsError = 903
|
|
}
|
|
|
|
public enum HVRChaperoneCalibrationState
|
|
{
|
|
HVRChaperoneCalibrationState_OK = 1,
|
|
HVRChaperoneCalibrationState_Warning = 100,
|
|
HVRChaperoneCalibrationState_Warning_BaseStationMayHaveMoved = 101,
|
|
HVRChaperoneCalibrationState_Warning_BaseStationRemoved = 102,
|
|
HVRChaperoneCalibrationState_Warning_SeatedBoundsInvalid = 103,
|
|
HVRChaperoneCalibrationState_Error = 200,
|
|
HVRChaperoneCalibrationState_Error_BaseStationUninitialized = 201,
|
|
HVRChaperoneCalibrationState_Error_BaseStationConflict = 202,
|
|
HVRChaperoneCalibrationState_Error_PlayAreaInvalid = 203,
|
|
HVRChaperoneCalibrationState_Error_CollisionBoundsInvalid = 204,
|
|
}
|
|
|
|
public enum HVROverlayFlags
|
|
{
|
|
HVROverlayFlags_None = 0,
|
|
HVROverlayFlags_Curved = 1,
|
|
HVROverlayFlags_RGSS4X = 2,
|
|
HVROverlayFlags_NoDashboardTab = 3,
|
|
HVROverlayFlags_AcceptsGamepadEvents = 4,
|
|
HVROverlayFlags_ShowGamepadFocus = 5,
|
|
HVROverlayFlags_SendVRScrollEvents = 6,
|
|
HVROverlayFlags_SendVRTouchpadEvents = 7,
|
|
HVROverlayFlags_ShowTouchPadScrollWheel = 8,
|
|
HVROverlayFlags_TransferOwnershipToInternalProcess = 9,
|
|
HVROverlayFlags_SideBySide_Parallel = 10,
|
|
HVROverlayFlags_SideBySide_Crossed = 11,
|
|
HVROverlayFlags_Panorama = 12,
|
|
HVROverlayFlags_StereoPanorama = 13,
|
|
HVROverlayFlags_SortWithNonSceneOverlays = 14,
|
|
HVROverlayFlags_VisibleInDashboard = 15,
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Explicit)] public struct HVREvent_Data_t
|
|
{
|
|
[FieldOffset(0)] public HVREvent_Reserved_t reserved;
|
|
[FieldOffset(0)] public HVREvent_Controller_t controller;
|
|
[FieldOffset(0)] public HVREvent_Process_t process;
|
|
[FieldOffset(0)] public HVREvent_Overlay_t overlay;
|
|
[FieldOffset(0)] public HVREvent_Status_t status;
|
|
[FieldOffset(0)] public HVREvent_Ipd_t ipd;
|
|
[FieldOffset(0)] public HVREvent_Chaperone_t chaperone;
|
|
[FieldOffset(0)] public HVREvent_TouchPadMove_t touchPadMove;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRMatrix34_t
|
|
{
|
|
public float m0; //float[3][4]
|
|
public float m1;
|
|
public float m2;
|
|
public float m3;
|
|
public float m4;
|
|
public float m5;
|
|
public float m6;
|
|
public float m7;
|
|
public float m8;
|
|
public float m9;
|
|
public float m10;
|
|
public float m11;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRMatrix44_t
|
|
{
|
|
public float m0; //float[4][4]
|
|
public float m1;
|
|
public float m2;
|
|
public float m3;
|
|
public float m4;
|
|
public float m5;
|
|
public float m6;
|
|
public float m7;
|
|
public float m8;
|
|
public float m9;
|
|
public float m10;
|
|
public float m11;
|
|
public float m12;
|
|
public float m13;
|
|
public float m14;
|
|
public float m15;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRVector3_t
|
|
{
|
|
public float v0; //float[3]
|
|
public float v1;
|
|
public float v2;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRVector4_t
|
|
{
|
|
public float v0; //float[4]
|
|
public float v1;
|
|
public float v2;
|
|
public float v3;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRVector3d_t
|
|
{
|
|
public double v0; //double[3]
|
|
public double v1;
|
|
public double v2;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRVector2_t
|
|
{
|
|
public float v0; //float[2]
|
|
public float v1;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRQuaternion_t
|
|
{
|
|
public double w;
|
|
public double x;
|
|
public double y;
|
|
public double z;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRColor_t
|
|
{
|
|
public float r;
|
|
public float g;
|
|
public float b;
|
|
public float a;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRQuad_t
|
|
{
|
|
public HVRVector3_t vCorners0;
|
|
public HVRVector3_t vCorners1;
|
|
public HVRVector3_t vCorners2;
|
|
public HVRVector3_t vCorners3;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRRect2_t
|
|
{
|
|
public HVRVector2_t vTopLeft;
|
|
public HVRVector2_t vBottomRight;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRTexture_t
|
|
{
|
|
public ulong handle; // uint64
|
|
public EHVRTextureType eType;
|
|
public EHVRColorSpace eColorSpace;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRTrackedDevicePose_t
|
|
{
|
|
public HVRMatrix34_t mDeviceToAbsoluteTracking;
|
|
public HVRVector3_t vVelocity;
|
|
public HVRVector3_t vAngularVelocity;
|
|
public EHVRTrackingResult eTrackingResult;
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool bPoseIsValid;
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool bDeviceIsConnected;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRTextureBounds_t
|
|
{
|
|
public float uMin;
|
|
public float vMin;
|
|
public float uMax;
|
|
public float vMax;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Controller_t
|
|
{
|
|
public uint button;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_TouchPadMove_t
|
|
{
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool bFingerDown;
|
|
public float flSecondsFingerDown;
|
|
public float fValueXFirst;
|
|
public float fValueYFirst;
|
|
public float fValueXRaw;
|
|
public float fValueYRaw;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Process_t
|
|
{
|
|
public uint pid;
|
|
public uint oldPid;
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool bForced;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Overlay_t
|
|
{
|
|
public ulong overlayHandle;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Status_t
|
|
{
|
|
public uint statusState;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Ipd_t
|
|
{
|
|
public float ipdMeters;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Chaperone_t
|
|
{
|
|
public ulong m_nPreviousUniverse;
|
|
public ulong m_nCurrentUniverse;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_Reserved_t
|
|
{
|
|
public ulong reserved0;
|
|
public ulong reserved1;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVREvent_t
|
|
{
|
|
public uint eventType;
|
|
public uint trackedDeviceIndex;
|
|
public float eventAgeSeconds;
|
|
public HVREvent_Data_t data;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRHiddenAreaMesh_t
|
|
{
|
|
public IntPtr pVertexData;
|
|
public uint unTriangleCount;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRControllerAxis_t
|
|
{
|
|
public float x;
|
|
public float y;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)] public struct HVRControllerState_t
|
|
{
|
|
public uint unPacketNum;
|
|
public ulong ulButtonPressed;
|
|
public ulong ulButtonTouched;
|
|
public HVRControllerAxis_t rAxis0;
|
|
public HVRControllerAxis_t rAxis1;
|
|
public HVRControllerAxis_t rAxis2;
|
|
public HVRControllerAxis_t rAxis3;
|
|
public HVRControllerAxis_t rAxis4;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct HVROverlayIntersectionParams_t
|
|
{
|
|
public HVRVector3_t vSource;
|
|
public HVRVector3_t vDirection;
|
|
public EHVRTrackingUniverseOrigin eOrigin;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct VROverlayIntersectionResults_t
|
|
{
|
|
public HVRVector3_t vPoint;
|
|
public HVRVector3_t vNormal;
|
|
public HVRVector2_t vUVs;
|
|
public float fDistance;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct HVRCameraVideoStreamFrameHeader_t
|
|
{
|
|
public EHVRTrackedCameraFrameType eFrameType;
|
|
public uint nWidth;
|
|
public uint nHeight;
|
|
public uint nBytesPerPixel;
|
|
public uint nFrameSequence;
|
|
public HVRTrackedDevicePose_t standingTrackedDevicePose;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RenderModel_ControllerMode_State_t
|
|
{
|
|
[MarshalAs(UnmanagedType.I1)]
|
|
public bool bScrollWheelVisible;
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RenderModel_ComponentState_t
|
|
{
|
|
public HVRMatrix34_t mTrackingToComponentRenderModel;
|
|
public HVRMatrix34_t mTrackingToComponentLocal;
|
|
public uint uProperties;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RenderModel_TextureMap_t
|
|
{
|
|
public ushort unWidth;
|
|
public ushort unHeight;
|
|
public IntPtr rubTextureMapData; // const uint8_t*
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RenderModel_Vertex_t
|
|
{
|
|
public HVRVector3_t vPosition;
|
|
public HVRVector3_t vNormal;
|
|
public float rfTextureCoord0;
|
|
public float rfTextureCoord1;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RenderModel_t
|
|
{
|
|
public IntPtr rVertexData; // const HVRRenderModel_Vertex_t*
|
|
public uint unVertexCount;
|
|
public IntPtr rIndexData; // const uint16_t*
|
|
public uint unTriangleCount;
|
|
public uint diffuseTextureId;
|
|
}
|
|
|
|
// This structure is for backwards binary compatibility on Linux and OSX only
|
|
[StructLayout(LayoutKind.Sequential, Pack = 4)]
|
|
public struct VRControllerState_t_Packed
|
|
{
|
|
public uint unPacketNum;
|
|
public ulong ulButtonPressed;
|
|
public ulong ulButtonTouched;
|
|
public HVRControllerAxis_t rAxis0; //VRControllerAxis_t[5]
|
|
public HVRControllerAxis_t rAxis1;
|
|
public HVRControllerAxis_t rAxis2;
|
|
public HVRControllerAxis_t rAxis3;
|
|
public HVRControllerAxis_t rAxis4;
|
|
public VRControllerState_t_Packed(HVRControllerState_t unpacked)
|
|
{
|
|
this.unPacketNum = unpacked.unPacketNum;
|
|
this.ulButtonPressed = unpacked.ulButtonPressed;
|
|
this.ulButtonTouched = unpacked.ulButtonTouched;
|
|
this.rAxis0 = unpacked.rAxis0;
|
|
this.rAxis1 = unpacked.rAxis1;
|
|
this.rAxis2 = unpacked.rAxis2;
|
|
this.rAxis3 = unpacked.rAxis3;
|
|
this.rAxis4 = unpacked.rAxis4;
|
|
}
|
|
public void Unpack(ref HVRControllerState_t unpacked)
|
|
{
|
|
unpacked.unPacketNum = this.unPacketNum;
|
|
unpacked.ulButtonPressed = this.ulButtonPressed;
|
|
unpacked.ulButtonTouched = this.ulButtonTouched;
|
|
unpacked.rAxis0 = this.rAxis0;
|
|
unpacked.rAxis1 = this.rAxis1;
|
|
unpacked.rAxis2 = this.rAxis2;
|
|
unpacked.rAxis3 = this.rAxis3;
|
|
unpacked.rAxis4 = this.rAxis4;
|
|
}
|
|
}
|
|
public class HVRClass
|
|
{
|
|
public static EHVRErrorCode InitInternal(EHVRApplicationType eApplicationType)
|
|
{
|
|
return HVRInterop.HVR_InitInternal(eApplicationType);
|
|
}
|
|
|
|
public static void ShutdownInternal()
|
|
{
|
|
HVRInterop.HVR_ShutdownInternal();
|
|
}
|
|
|
|
public static IntPtr GetGenericInterface(string pchInterfaceVersion, ref EHVRErrorCode peError)
|
|
{
|
|
return HVRInterop.HVR_GetGenericInterface(pchInterfaceVersion, ref peError);
|
|
}
|
|
|
|
public const string IHVRSystem_Version = "IHVRSYSTEM_001";
|
|
public const string IHVRCompositor_Version = "IHVRCOMPOSITOR_001";
|
|
public const string IHVROverlay_Version = "IHVROVERLAY_001";
|
|
public const string IHVRTrackedCamera_Version = "IHVRTRACKEDCAMERA_001";
|
|
public const string IHVRSettings_Version = "IHVRSETTINGS_001";
|
|
public const string IHVRChaperoneSetup_Version = "IHVRCHAPERONESETUP_001";
|
|
public const string IHVRRenderModel_Version = "IHVRENDERMODEL_001";
|
|
|
|
public const uint k_unHVRTrackedDeviceIndex_Hmd = 0;
|
|
public const uint k_unHVRMaxTrackedDeviceCount = 16;
|
|
public const uint k_unHVRTrackedDeviceIndexInvalid = 4294967295;
|
|
public const ulong k_ulHVROverlayHandleInvalid = 0;
|
|
|
|
class CHVRContext
|
|
{
|
|
public CHVRContext() { Clear(); }
|
|
|
|
public void Clear()
|
|
{
|
|
m_pHVRSystem = null;
|
|
m_pHVRCompositor = null;
|
|
m_pHVROverlay = null;
|
|
m_pHVRTrackedCamera = null;
|
|
m_pHVRSettings = null;
|
|
m_pHVRChaperoneSetup = null;
|
|
m_pHVRRendeModel = null;
|
|
}
|
|
|
|
public CHVRSystem HVRSystem()
|
|
{
|
|
if (m_pHVRSystem == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVRSystem_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVRSystem = new CHVRSystem(pInterface);
|
|
}
|
|
return m_pHVRSystem;
|
|
}
|
|
|
|
public CHVRCompositor HVRCompositor()
|
|
{
|
|
if (m_pHVRCompositor == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVRCompositor_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVRCompositor = new CHVRCompositor(pInterface);
|
|
}
|
|
return m_pHVRCompositor;
|
|
}
|
|
|
|
public CHVROverlay HVROverlay()
|
|
{
|
|
if (m_pHVROverlay == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVROverlay_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVROverlay = new CHVROverlay(pInterface);
|
|
}
|
|
return m_pHVROverlay;
|
|
}
|
|
|
|
public CHVRTrackedCamera HVRTrackedCamera()
|
|
{
|
|
if (m_pHVRTrackedCamera == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVRTrackedCamera_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVRTrackedCamera = new CHVRTrackedCamera(pInterface);
|
|
}
|
|
return m_pHVRTrackedCamera;
|
|
}
|
|
|
|
public CHVRSettings HVRSettings()
|
|
{
|
|
if (m_pHVRSettings == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVRSettings_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVRSettings = new CHVRSettings(pInterface);
|
|
}
|
|
return m_pHVRSettings;
|
|
}
|
|
|
|
public CHVRChaperoneSetup HVRChaperoneSetup()
|
|
{
|
|
if (m_pHVRChaperoneSetup == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVRChaperoneSetup_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVRChaperoneSetup = new CHVRChaperoneSetup(pInterface);
|
|
}
|
|
return m_pHVRChaperoneSetup;
|
|
}
|
|
|
|
public CHVRRenderModels HVRRenderModelSetup()
|
|
{
|
|
if (m_pHVRRendeModel == null)
|
|
{
|
|
var eError = EHVRErrorCode.HVR_ERR_None;
|
|
var pInterface = HVRInterop.HVR_GetGenericInterface(IHVRRenderModel_Version, ref eError);
|
|
if (pInterface != IntPtr.Zero && eError == EHVRErrorCode.HVR_ERR_None)
|
|
m_pHVRRendeModel = new CHVRRenderModels(pInterface);
|
|
}
|
|
return m_pHVRRendeModel;
|
|
}
|
|
|
|
private CHVRSystem m_pHVRSystem;
|
|
private CHVRCompositor m_pHVRCompositor;
|
|
private CHVROverlay m_pHVROverlay;
|
|
private CHVRTrackedCamera m_pHVRTrackedCamera;
|
|
private CHVRSettings m_pHVRSettings;
|
|
private CHVRChaperoneSetup m_pHVRChaperoneSetup;
|
|
private CHVRRenderModels m_pHVRRendeModel;
|
|
};
|
|
|
|
private static CHVRContext _HVRInternal_ModuleContext = null;
|
|
static CHVRContext HVRInternal_ModuleContext
|
|
{
|
|
get
|
|
{
|
|
if (_HVRInternal_ModuleContext == null)
|
|
_HVRInternal_ModuleContext = new CHVRContext();
|
|
return _HVRInternal_ModuleContext;
|
|
}
|
|
}
|
|
|
|
public static CHVRSystem System { get { return HVRInternal_ModuleContext.HVRSystem(); } }
|
|
public static CHVRCompositor Compositor { get { return HVRInternal_ModuleContext.HVRCompositor(); } }
|
|
public static CHVROverlay Overlay { get { return HVRInternal_ModuleContext.HVROverlay(); } }
|
|
public static CHVRTrackedCamera TrackedCamera { get { return HVRInternal_ModuleContext.HVRTrackedCamera(); } }
|
|
public static CHVRSettings Settings { get { return HVRInternal_ModuleContext.HVRSettings(); } }
|
|
public static CHVRChaperoneSetup ChaperoneSetup { get { return HVRInternal_ModuleContext.HVRChaperoneSetup(); } }
|
|
public static CHVRRenderModels RenderModels { get { return HVRInternal_ModuleContext.HVRRenderModelSetup(); } }
|
|
|
|
/** Finds the active installation of vrclient.dll and initializes it */
|
|
public static CHVRSystem Init(ref EHVRErrorCode peError, EHVRApplicationType eApplicationType = EHVRApplicationType.EHVRApplication_Scene)
|
|
{
|
|
peError = InitInternal(eApplicationType);
|
|
HVRInternal_ModuleContext.Clear();
|
|
|
|
if (peError != EHVRErrorCode.HVR_ERR_None)
|
|
return null;
|
|
|
|
return HVRClass.System;
|
|
}
|
|
|
|
/** unloads vrclient.dll. Any interface pointers from the interface are
|
|
* invalid after this point */
|
|
public static void Shutdown()
|
|
{
|
|
ShutdownInternal();
|
|
}
|
|
|
|
}
|
|
|
|
}
|