├── .editorconfig ├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── addons ├── godot-openvr │ ├── .gitignore │ ├── CHANGES.md │ ├── CONTRIBUTORS.md │ ├── LICENSE │ ├── OpenVRConfig.gdns │ ├── OpenVROverlay.gdns │ ├── OpenVRRenderModel.gdns │ ├── README.md │ ├── bin │ │ ├── LICENSE │ │ ├── osx │ │ │ ├── .gitignore │ │ │ ├── OpenVR.framework │ │ │ │ ├── Headers │ │ │ │ ├── OpenVR │ │ │ │ ├── Resources │ │ │ │ └── Versions │ │ │ │ │ ├── A │ │ │ │ │ ├── Headers │ │ │ │ │ │ ├── openvr.h │ │ │ │ │ │ ├── openvr_api.cs │ │ │ │ │ │ ├── openvr_api.json │ │ │ │ │ │ ├── openvr_capi.h │ │ │ │ │ │ └── openvr_driver.h │ │ │ │ │ ├── OpenVR │ │ │ │ │ └── Resources │ │ │ │ │ │ └── Info.plist │ │ │ │ │ └── Current │ │ │ ├── README.md │ │ │ └── libgodot_openvr.dylib │ │ ├── win64 │ │ │ ├── libgodot_openvr.dll │ │ │ └── openvr_api.dll │ │ └── x11 │ │ │ ├── libgodot_openvr.so │ │ │ └── libopenvr_api.so │ ├── godot_openvr.gdnlib │ ├── icon.png │ └── icon.png.import └── gui_in_vr │ ├── LICENSE │ ├── gui.tscn │ ├── gui_panel_3d.tscn │ ├── icon.png │ ├── icon.png.import │ ├── player │ ├── controller.tscn │ ├── controller_mesh.gd │ ├── controller_ray_cast.gd │ ├── player.gd │ └── player.tscn │ ├── plugin.cfg │ ├── vive │ ├── vive.tres │ ├── vive_albedo.png │ ├── vive_albedo.png.import │ ├── vive_spec.png │ └── vive_spec.png.import │ └── world.tscn ├── default_env.tres ├── icon.png ├── icon.png.import └── project.godot /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | end_of_line = lf 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Normalize EOL for all files that Git considers text files. 2 | * text=auto eol=lf 3 | 4 | # Ignore some files when exporting. 5 | /.github export-ignore 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Godot 4+ specific ignores 2 | .godot/ 3 | 4 | # Godot-specific ignores 5 | .import/ 6 | export.cfg 7 | export_presets.cfg 8 | 9 | # Imported translations (automatically generated from CSV files) 10 | *.translation 11 | 12 | # Mono-specific ignores 13 | .mono/ 14 | data_*/ 15 | mono_crash.*.json 16 | 17 | # System/tool-specific ignores 18 | .directory 19 | *~ 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020-2021 Aaron Franke, Godot engine contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GUI in VR in Godot 2 | 3 | Check this out on the Godot Asset Library: https://godotengine.org/asset-library/asset/900 4 | 5 | Check out the demo on the Godot Asset Library: https://godotengine.org/asset-library/asset/604 6 | 7 | Video demo: https://www.youtube.com/watch?v=Xrhje9RwLnU (this repo does not include the skybox) 8 | 9 | OpenVR add-on created by the GodotVR team, Copyright © 2018-2020 Bastiaan Olij https://godotengine.org/asset-library/asset/150 10 | 11 | OpenVR binaries are created by Valve, Copyright © 2015 Valve Corporation 12 | 13 | The rest of this repo is Copyright © 2020 Aaron Franke, placed under the MIT License. 14 | -------------------------------------------------------------------------------- /addons/godot-openvr/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.os 3 | .import/ 4 | *.dblite 5 | *.exp 6 | *.lib 7 | *.obj 8 | *.TMP 9 | logs 10 | Thumbs.db 11 | -------------------------------------------------------------------------------- /addons/godot-openvr/CHANGES.md: -------------------------------------------------------------------------------- 1 | Changes to the Godot OpenVR asset 2 | ================================= 3 | 4 | Note, version numbers listed here are the version number assigned to the asset. Each time a new version is uploaded to the asset store we will increase the version number. 5 | More frequent updates may be available on the source repository. 6 | 7 | 1.0.5 - 1 March 2019 8 | -------------------- 9 | - Now using OpenVR 1.9.16 10 | - Added support for overlays 11 | 12 | 1.0.4 - 27 March 2019 13 | --------------------- 14 | - Build for Godot 3.1 15 | - Now using OpenVR 1.2.10 16 | - Added Mac binaries (untested) 17 | 18 | 1.0.3 - 23 June 2018 19 | -------------------- 20 | - Now using OpenVR 1.0.15 21 | - Fixed crash issue related to new reloadable property in GDNative 22 | 23 | 1.0.2 - 4 May 2018 24 | ------------------ 25 | Changes were not tracked 26 | -------------------------------------------------------------------------------- /addons/godot-openvr/CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Contributors 2 | ============ 3 | 4 | This plugin has mostly been developed by [Bastiaan Olij](https://github.com/BastiaanOlij). 5 | Special thanks to [Benedikt](https://github.com/beniwtv) for doing all the work on overlay support. 6 | 7 | Other people who have helped out by submitting fixes, enhancements, etc are: 8 | - [RMKD](https://github.com/RMKD) 9 | - [Bruvzg](https://github.com/bruvzg) 10 | - [Aaron Franke](https://github.com/aaronfranke) 11 | -------------------------------------------------------------------------------- /addons/godot-openvr/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018-2020 Bastiaan Olij 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /addons/godot-openvr/OpenVRConfig.gdns: -------------------------------------------------------------------------------- 1 | [gd_resource type="NativeScript" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://addons/godot-openvr/godot_openvr.gdnlib" type="GDNativeLibrary" id=1] 4 | 5 | [resource] 6 | resource_name = "OpenVRConfig" 7 | class_name = "OpenVRConfig" 8 | library = ExtResource( 1 ) 9 | -------------------------------------------------------------------------------- /addons/godot-openvr/OpenVROverlay.gdns: -------------------------------------------------------------------------------- 1 | [gd_resource type="NativeScript" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://addons/godot-openvr/godot_openvr.gdnlib" type="GDNativeLibrary" id=1] 4 | 5 | [resource] 6 | resource_name = "OpenVROverlay" 7 | class_name = "OpenVROverlay" 8 | library = ExtResource( 1 ) 9 | -------------------------------------------------------------------------------- /addons/godot-openvr/OpenVRRenderModel.gdns: -------------------------------------------------------------------------------- 1 | [gd_resource type="NativeScript" load_steps=2 format=2] 2 | 3 | [ext_resource path="res://addons/godot-openvr/godot_openvr.gdnlib" type="GDNativeLibrary" id=1] 4 | 5 | [resource] 6 | 7 | resource_name = "OpenVRRenderModel" 8 | class_name = "OpenVRRenderModel" 9 | library = ExtResource( 1 ) 10 | _sections_unfolded = [ "Resource" ] 11 | 12 | -------------------------------------------------------------------------------- /addons/godot-openvr/README.md: -------------------------------------------------------------------------------- 1 | # Godot OpenVR GDNative module 2 | This module is provided as is, all files are contained within the addons/godot-openvr-asset folder 3 | 4 | This module requires **Godot 3.1 or newer** to run, **Godot 3.2** is highly recommended. 5 | 6 | The scenes subfolder contains a number of godot scenes that help you set up your project. 7 | For basic functionality start with adding ovr_first_person.tcn to your project. 8 | Also make sure that vsync is turned off in your project settings. 9 | 10 | Source code for this module can be found here: 11 | https://github.com/GodotVR/godot_openvr 12 | 13 | Also note that we have a support asset containing a number of useful scenes to get you going building VR applications in Godot: 14 | https://github.com/GodotVR/godot-vr-common 15 | 16 | Documentation on using this asset can be found here: 17 | https://github.com/GodotVR/godot-openvr-asset/wiki 18 | 19 | HDR support 20 | ----------- 21 | HDR support was added to OpenVR but requires the keep_3d_linear flag added to Godot 3.2. This will ensure rendering inside of the headset is correct. The preview on screen will look darker. You can solve this by using a separate viewport. 22 | 23 | When using Godot 3.1 you need to either use the GLES2 renderer or turn HDR off on the viewport used to render to the HMD. 24 | 25 | Licensing 26 | --------- 27 | The Godot OpenVR module and the godot scenes in this add on are all supplied under an MIT License. 28 | 29 | The dynamic libraries supplier by Valve fall under Valve's own license. 30 | For more information about this license please visit https://github.com/ValveSoftware/openvr 31 | 32 | About this repository 33 | --------------------- 34 | This repository was created by and is maintained by Bastiaan Olij a.k.a. Mux213 35 | 36 | You can follow me on twitter for regular updates here: 37 | https://twitter.com/mux213 38 | 39 | Videos about my work with Godot including tutorials on working with VR in Godot can by found on my youtube page: 40 | https://www.youtube.com/BastiaanOlij 41 | -------------------------------------------------------------------------------- /addons/godot-openvr/bin/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Valve Corporation 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation and/or 12 | other materials provided with the distribution. 13 | 14 | 3. Neither the name of the copyright holder nor the names of its contributors 15 | may be used to endorse or promote products derived from this software without 16 | specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 22 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 25 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/.gitignore: -------------------------------------------------------------------------------- 1 | !*.* 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/OpenVR: -------------------------------------------------------------------------------- 1 | Versions/Current/OpenVR -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/Versions/A/Headers/openvr_capi.h: -------------------------------------------------------------------------------- 1 | //======= Copyright (c) Valve Corporation, All rights reserved. =============== 2 | // 3 | // Purpose: Header for flatted SteamAPI. Use this for binding to other languages. 4 | // This file is auto-generated, do not edit it. 5 | // 6 | //============================================================================= 7 | 8 | #ifndef __OPENVR_API_FLAT_H__ 9 | #define __OPENVR_API_FLAT_H__ 10 | #if defined( _WIN32 ) || defined( __clang__ ) 11 | #pragma once 12 | #endif 13 | 14 | #ifdef __cplusplus 15 | #define EXTERN_C extern "C" 16 | #else 17 | #define EXTERN_C 18 | #endif 19 | 20 | #if defined( _WIN32 ) 21 | #define OPENVR_FNTABLE_CALLTYPE __stdcall 22 | #else 23 | #define OPENVR_FNTABLE_CALLTYPE 24 | #endif 25 | 26 | // OPENVR API export macro 27 | #if defined( _WIN32 ) && !defined( _X360 ) 28 | #if defined( OPENVR_API_EXPORTS ) 29 | #define S_API EXTERN_C __declspec( dllexport ) 30 | #elif defined( OPENVR_API_NODLL ) 31 | #define S_API EXTERN_C 32 | #else 33 | #define S_API extern "C" __declspec( dllimport ) 34 | #endif // OPENVR_API_EXPORTS 35 | #elif defined( __GNUC__ ) 36 | #if defined( OPENVR_API_EXPORTS ) 37 | #define S_API EXTERN_C __attribute__ ((visibility("default"))) 38 | #else 39 | #define S_API EXTERN_C 40 | #endif // OPENVR_API_EXPORTS 41 | #else // !WIN32 42 | #if defined( OPENVR_API_EXPORTS ) 43 | #define S_API EXTERN_C 44 | #else 45 | #define S_API EXTERN_C 46 | #endif // OPENVR_API_EXPORTS 47 | #endif 48 | 49 | #include 50 | 51 | #if defined( __WIN32 ) 52 | typedef char bool; 53 | #else 54 | #include 55 | #endif 56 | 57 | typedef uint64_t PropertyContainerHandle_t; 58 | typedef uint32_t PropertyTypeTag_t; 59 | typedef uint64_t VRActionHandle_t; 60 | typedef uint64_t VRActionSetHandle_t; 61 | typedef uint64_t VRInputOriginHandle_t; 62 | 63 | 64 | // OpenVR Constants 65 | 66 | static const unsigned int k_nDriverNone = 4294967295; 67 | static const unsigned int k_unMaxDriverDebugResponseSize = 32768; 68 | static const unsigned int k_unTrackedDeviceIndex_Hmd = 0; 69 | static const unsigned int k_unMaxTrackedDeviceCount = 16; 70 | static const unsigned int k_unTrackedDeviceIndexOther = 4294967294; 71 | static const unsigned int k_unTrackedDeviceIndexInvalid = 4294967295; 72 | static const unsigned long k_ulInvalidPropertyContainer = 0; 73 | static const unsigned int k_unInvalidPropertyTag = 0; 74 | static const unsigned int k_unFloatPropertyTag = 1; 75 | static const unsigned int k_unInt32PropertyTag = 2; 76 | static const unsigned int k_unUint64PropertyTag = 3; 77 | static const unsigned int k_unBoolPropertyTag = 4; 78 | static const unsigned int k_unStringPropertyTag = 5; 79 | static const unsigned int k_unHmdMatrix34PropertyTag = 20; 80 | static const unsigned int k_unHmdMatrix44PropertyTag = 21; 81 | static const unsigned int k_unHmdVector3PropertyTag = 22; 82 | static const unsigned int k_unHmdVector4PropertyTag = 23; 83 | static const unsigned int k_unHiddenAreaPropertyTag = 30; 84 | static const unsigned int k_unOpenVRInternalReserved_Start = 1000; 85 | static const unsigned int k_unOpenVRInternalReserved_End = 10000; 86 | static const unsigned int k_unMaxPropertyStringSize = 32768; 87 | static const unsigned int k_unControllerStateAxisCount = 5; 88 | static const unsigned long k_ulOverlayHandleInvalid = 0; 89 | static const unsigned int k_unScreenshotHandleInvalid = 0; 90 | static const char * IVRSystem_Version = "IVRSystem_017"; 91 | static const char * IVRExtendedDisplay_Version = "IVRExtendedDisplay_001"; 92 | static const char * IVRTrackedCamera_Version = "IVRTrackedCamera_003"; 93 | static const unsigned int k_unMaxApplicationKeyLength = 128; 94 | static const char * k_pch_MimeType_HomeApp = "vr/home"; 95 | static const char * k_pch_MimeType_GameTheater = "vr/game_theater"; 96 | static const char * IVRApplications_Version = "IVRApplications_006"; 97 | static const char * IVRChaperone_Version = "IVRChaperone_003"; 98 | static const char * IVRChaperoneSetup_Version = "IVRChaperoneSetup_005"; 99 | static const char * IVRCompositor_Version = "IVRCompositor_021"; 100 | static const unsigned int k_unVROverlayMaxKeyLength = 128; 101 | static const unsigned int k_unVROverlayMaxNameLength = 128; 102 | static const unsigned int k_unMaxOverlayCount = 64; 103 | static const unsigned int k_unMaxOverlayIntersectionMaskPrimitivesCount = 32; 104 | static const char * IVROverlay_Version = "IVROverlay_016"; 105 | static const char * k_pch_Controller_Component_GDC2015 = "gdc2015"; 106 | static const char * k_pch_Controller_Component_Base = "base"; 107 | static const char * k_pch_Controller_Component_Tip = "tip"; 108 | static const char * k_pch_Controller_Component_HandGrip = "handgrip"; 109 | static const char * k_pch_Controller_Component_Status = "status"; 110 | static const char * IVRRenderModels_Version = "IVRRenderModels_005"; 111 | static const unsigned int k_unNotificationTextMaxSize = 256; 112 | static const char * IVRNotifications_Version = "IVRNotifications_002"; 113 | static const unsigned int k_unMaxSettingsKeyLength = 128; 114 | static const char * IVRSettings_Version = "IVRSettings_002"; 115 | static const char * k_pch_SteamVR_Section = "steamvr"; 116 | static const char * k_pch_SteamVR_RequireHmd_String = "requireHmd"; 117 | static const char * k_pch_SteamVR_ForcedDriverKey_String = "forcedDriver"; 118 | static const char * k_pch_SteamVR_ForcedHmdKey_String = "forcedHmd"; 119 | static const char * k_pch_SteamVR_DisplayDebug_Bool = "displayDebug"; 120 | static const char * k_pch_SteamVR_DebugProcessPipe_String = "debugProcessPipe"; 121 | static const char * k_pch_SteamVR_DisplayDebugX_Int32 = "displayDebugX"; 122 | static const char * k_pch_SteamVR_DisplayDebugY_Int32 = "displayDebugY"; 123 | static const char * k_pch_SteamVR_SendSystemButtonToAllApps_Bool = "sendSystemButtonToAllApps"; 124 | static const char * k_pch_SteamVR_LogLevel_Int32 = "loglevel"; 125 | static const char * k_pch_SteamVR_IPD_Float = "ipd"; 126 | static const char * k_pch_SteamVR_Background_String = "background"; 127 | static const char * k_pch_SteamVR_BackgroundUseDomeProjection_Bool = "backgroundUseDomeProjection"; 128 | static const char * k_pch_SteamVR_BackgroundCameraHeight_Float = "backgroundCameraHeight"; 129 | static const char * k_pch_SteamVR_BackgroundDomeRadius_Float = "backgroundDomeRadius"; 130 | static const char * k_pch_SteamVR_GridColor_String = "gridColor"; 131 | static const char * k_pch_SteamVR_PlayAreaColor_String = "playAreaColor"; 132 | static const char * k_pch_SteamVR_ShowStage_Bool = "showStage"; 133 | static const char * k_pch_SteamVR_ActivateMultipleDrivers_Bool = "activateMultipleDrivers"; 134 | static const char * k_pch_SteamVR_DirectMode_Bool = "directMode"; 135 | static const char * k_pch_SteamVR_DirectModeEdidVid_Int32 = "directModeEdidVid"; 136 | static const char * k_pch_SteamVR_DirectModeEdidPid_Int32 = "directModeEdidPid"; 137 | static const char * k_pch_SteamVR_UsingSpeakers_Bool = "usingSpeakers"; 138 | static const char * k_pch_SteamVR_SpeakersForwardYawOffsetDegrees_Float = "speakersForwardYawOffsetDegrees"; 139 | static const char * k_pch_SteamVR_BaseStationPowerManagement_Bool = "basestationPowerManagement"; 140 | static const char * k_pch_SteamVR_NeverKillProcesses_Bool = "neverKillProcesses"; 141 | static const char * k_pch_SteamVR_SupersampleScale_Float = "supersampleScale"; 142 | static const char * k_pch_SteamVR_AllowAsyncReprojection_Bool = "allowAsyncReprojection"; 143 | static const char * k_pch_SteamVR_AllowReprojection_Bool = "allowInterleavedReprojection"; 144 | static const char * k_pch_SteamVR_ForceReprojection_Bool = "forceReprojection"; 145 | static const char * k_pch_SteamVR_ForceFadeOnBadTracking_Bool = "forceFadeOnBadTracking"; 146 | static const char * k_pch_SteamVR_DefaultMirrorView_Int32 = "defaultMirrorView"; 147 | static const char * k_pch_SteamVR_ShowMirrorView_Bool = "showMirrorView"; 148 | static const char * k_pch_SteamVR_MirrorViewGeometry_String = "mirrorViewGeometry"; 149 | static const char * k_pch_SteamVR_StartMonitorFromAppLaunch = "startMonitorFromAppLaunch"; 150 | static const char * k_pch_SteamVR_StartCompositorFromAppLaunch_Bool = "startCompositorFromAppLaunch"; 151 | static const char * k_pch_SteamVR_StartDashboardFromAppLaunch_Bool = "startDashboardFromAppLaunch"; 152 | static const char * k_pch_SteamVR_StartOverlayAppsFromDashboard_Bool = "startOverlayAppsFromDashboard"; 153 | static const char * k_pch_SteamVR_EnableHomeApp = "enableHomeApp"; 154 | static const char * k_pch_SteamVR_CycleBackgroundImageTimeSec_Int32 = "CycleBackgroundImageTimeSec"; 155 | static const char * k_pch_SteamVR_RetailDemo_Bool = "retailDemo"; 156 | static const char * k_pch_SteamVR_IpdOffset_Float = "ipdOffset"; 157 | static const char * k_pch_SteamVR_AllowSupersampleFiltering_Bool = "allowSupersampleFiltering"; 158 | static const char * k_pch_SteamVR_EnableLinuxVulkanAsync_Bool = "enableLinuxVulkanAsync"; 159 | static const char * k_pch_Lighthouse_Section = "driver_lighthouse"; 160 | static const char * k_pch_Lighthouse_DisableIMU_Bool = "disableimu"; 161 | static const char * k_pch_Lighthouse_UseDisambiguation_String = "usedisambiguation"; 162 | static const char * k_pch_Lighthouse_DisambiguationDebug_Int32 = "disambiguationdebug"; 163 | static const char * k_pch_Lighthouse_PrimaryBasestation_Int32 = "primarybasestation"; 164 | static const char * k_pch_Lighthouse_DBHistory_Bool = "dbhistory"; 165 | static const char * k_pch_Null_Section = "driver_null"; 166 | static const char * k_pch_Null_SerialNumber_String = "serialNumber"; 167 | static const char * k_pch_Null_ModelNumber_String = "modelNumber"; 168 | static const char * k_pch_Null_WindowX_Int32 = "windowX"; 169 | static const char * k_pch_Null_WindowY_Int32 = "windowY"; 170 | static const char * k_pch_Null_WindowWidth_Int32 = "windowWidth"; 171 | static const char * k_pch_Null_WindowHeight_Int32 = "windowHeight"; 172 | static const char * k_pch_Null_RenderWidth_Int32 = "renderWidth"; 173 | static const char * k_pch_Null_RenderHeight_Int32 = "renderHeight"; 174 | static const char * k_pch_Null_SecondsFromVsyncToPhotons_Float = "secondsFromVsyncToPhotons"; 175 | static const char * k_pch_Null_DisplayFrequency_Float = "displayFrequency"; 176 | static const char * k_pch_UserInterface_Section = "userinterface"; 177 | static const char * k_pch_UserInterface_StatusAlwaysOnTop_Bool = "StatusAlwaysOnTop"; 178 | static const char * k_pch_UserInterface_MinimizeToTray_Bool = "MinimizeToTray"; 179 | static const char * k_pch_UserInterface_Screenshots_Bool = "screenshots"; 180 | static const char * k_pch_UserInterface_ScreenshotType_Int = "screenshotType"; 181 | static const char * k_pch_Notifications_Section = "notifications"; 182 | static const char * k_pch_Notifications_DoNotDisturb_Bool = "DoNotDisturb"; 183 | static const char * k_pch_Keyboard_Section = "keyboard"; 184 | static const char * k_pch_Keyboard_TutorialCompletions = "TutorialCompletions"; 185 | static const char * k_pch_Keyboard_ScaleX = "ScaleX"; 186 | static const char * k_pch_Keyboard_ScaleY = "ScaleY"; 187 | static const char * k_pch_Keyboard_OffsetLeftX = "OffsetLeftX"; 188 | static const char * k_pch_Keyboard_OffsetRightX = "OffsetRightX"; 189 | static const char * k_pch_Keyboard_OffsetY = "OffsetY"; 190 | static const char * k_pch_Keyboard_Smoothing = "Smoothing"; 191 | static const char * k_pch_Perf_Section = "perfcheck"; 192 | static const char * k_pch_Perf_HeuristicActive_Bool = "heuristicActive"; 193 | static const char * k_pch_Perf_NotifyInHMD_Bool = "warnInHMD"; 194 | static const char * k_pch_Perf_NotifyOnlyOnce_Bool = "warnOnlyOnce"; 195 | static const char * k_pch_Perf_AllowTimingStore_Bool = "allowTimingStore"; 196 | static const char * k_pch_Perf_SaveTimingsOnExit_Bool = "saveTimingsOnExit"; 197 | static const char * k_pch_Perf_TestData_Float = "perfTestData"; 198 | static const char * k_pch_Perf_LinuxGPUProfiling_Bool = "linuxGPUProfiling"; 199 | static const char * k_pch_CollisionBounds_Section = "collisionBounds"; 200 | static const char * k_pch_CollisionBounds_Style_Int32 = "CollisionBoundsStyle"; 201 | static const char * k_pch_CollisionBounds_GroundPerimeterOn_Bool = "CollisionBoundsGroundPerimeterOn"; 202 | static const char * k_pch_CollisionBounds_CenterMarkerOn_Bool = "CollisionBoundsCenterMarkerOn"; 203 | static const char * k_pch_CollisionBounds_PlaySpaceOn_Bool = "CollisionBoundsPlaySpaceOn"; 204 | static const char * k_pch_CollisionBounds_FadeDistance_Float = "CollisionBoundsFadeDistance"; 205 | static const char * k_pch_CollisionBounds_ColorGammaR_Int32 = "CollisionBoundsColorGammaR"; 206 | static const char * k_pch_CollisionBounds_ColorGammaG_Int32 = "CollisionBoundsColorGammaG"; 207 | static const char * k_pch_CollisionBounds_ColorGammaB_Int32 = "CollisionBoundsColorGammaB"; 208 | static const char * k_pch_CollisionBounds_ColorGammaA_Int32 = "CollisionBoundsColorGammaA"; 209 | static const char * k_pch_Camera_Section = "camera"; 210 | static const char * k_pch_Camera_EnableCamera_Bool = "enableCamera"; 211 | static const char * k_pch_Camera_EnableCameraInDashboard_Bool = "enableCameraInDashboard"; 212 | static const char * k_pch_Camera_EnableCameraForCollisionBounds_Bool = "enableCameraForCollisionBounds"; 213 | static const char * k_pch_Camera_EnableCameraForRoomView_Bool = "enableCameraForRoomView"; 214 | static const char * k_pch_Camera_BoundsColorGammaR_Int32 = "cameraBoundsColorGammaR"; 215 | static const char * k_pch_Camera_BoundsColorGammaG_Int32 = "cameraBoundsColorGammaG"; 216 | static const char * k_pch_Camera_BoundsColorGammaB_Int32 = "cameraBoundsColorGammaB"; 217 | static const char * k_pch_Camera_BoundsColorGammaA_Int32 = "cameraBoundsColorGammaA"; 218 | static const char * k_pch_Camera_BoundsStrength_Int32 = "cameraBoundsStrength"; 219 | static const char * k_pch_audio_Section = "audio"; 220 | static const char * k_pch_audio_OnPlaybackDevice_String = "onPlaybackDevice"; 221 | static const char * k_pch_audio_OnRecordDevice_String = "onRecordDevice"; 222 | static const char * k_pch_audio_OnPlaybackMirrorDevice_String = "onPlaybackMirrorDevice"; 223 | static const char * k_pch_audio_OffPlaybackDevice_String = "offPlaybackDevice"; 224 | static const char * k_pch_audio_OffRecordDevice_String = "offRecordDevice"; 225 | static const char * k_pch_audio_VIVEHDMIGain = "viveHDMIGain"; 226 | static const char * k_pch_Power_Section = "power"; 227 | static const char * k_pch_Power_PowerOffOnExit_Bool = "powerOffOnExit"; 228 | static const char * k_pch_Power_TurnOffScreensTimeout_Float = "turnOffScreensTimeout"; 229 | static const char * k_pch_Power_TurnOffControllersTimeout_Float = "turnOffControllersTimeout"; 230 | static const char * k_pch_Power_ReturnToWatchdogTimeout_Float = "returnToWatchdogTimeout"; 231 | static const char * k_pch_Power_AutoLaunchSteamVROnButtonPress = "autoLaunchSteamVROnButtonPress"; 232 | static const char * k_pch_Power_PauseCompositorOnStandby_Bool = "pauseCompositorOnStandby"; 233 | static const char * k_pch_Dashboard_Section = "dashboard"; 234 | static const char * k_pch_Dashboard_EnableDashboard_Bool = "enableDashboard"; 235 | static const char * k_pch_Dashboard_ArcadeMode_Bool = "arcadeMode"; 236 | static const char * k_pch_modelskin_Section = "modelskins"; 237 | static const char * k_pch_Driver_Enable_Bool = "enable"; 238 | static const char * IVRScreenshots_Version = "IVRScreenshots_001"; 239 | static const char * IVRResources_Version = "IVRResources_001"; 240 | static const char * IVRDriverManager_Version = "IVRDriverManager_001"; 241 | 242 | // OpenVR Enums 243 | 244 | typedef enum EVREye 245 | { 246 | EVREye_Eye_Left = 0, 247 | EVREye_Eye_Right = 1, 248 | } EVREye; 249 | 250 | typedef enum ETextureType 251 | { 252 | ETextureType_TextureType_DirectX = 0, 253 | ETextureType_TextureType_OpenGL = 1, 254 | ETextureType_TextureType_Vulkan = 2, 255 | ETextureType_TextureType_IOSurface = 3, 256 | ETextureType_TextureType_DirectX12 = 4, 257 | } ETextureType; 258 | 259 | typedef enum EColorSpace 260 | { 261 | EColorSpace_ColorSpace_Auto = 0, 262 | EColorSpace_ColorSpace_Gamma = 1, 263 | EColorSpace_ColorSpace_Linear = 2, 264 | } EColorSpace; 265 | 266 | typedef enum ETrackingResult 267 | { 268 | ETrackingResult_TrackingResult_Uninitialized = 1, 269 | ETrackingResult_TrackingResult_Calibrating_InProgress = 100, 270 | ETrackingResult_TrackingResult_Calibrating_OutOfRange = 101, 271 | ETrackingResult_TrackingResult_Running_OK = 200, 272 | ETrackingResult_TrackingResult_Running_OutOfRange = 201, 273 | } ETrackingResult; 274 | 275 | typedef enum ETrackedDeviceClass 276 | { 277 | ETrackedDeviceClass_TrackedDeviceClass_Invalid = 0, 278 | ETrackedDeviceClass_TrackedDeviceClass_HMD = 1, 279 | ETrackedDeviceClass_TrackedDeviceClass_Controller = 2, 280 | ETrackedDeviceClass_TrackedDeviceClass_GenericTracker = 3, 281 | ETrackedDeviceClass_TrackedDeviceClass_TrackingReference = 4, 282 | ETrackedDeviceClass_TrackedDeviceClass_DisplayRedirect = 5, 283 | } ETrackedDeviceClass; 284 | 285 | typedef enum ETrackedControllerRole 286 | { 287 | ETrackedControllerRole_TrackedControllerRole_Invalid = 0, 288 | ETrackedControllerRole_TrackedControllerRole_LeftHand = 1, 289 | ETrackedControllerRole_TrackedControllerRole_RightHand = 2, 290 | } ETrackedControllerRole; 291 | 292 | typedef enum ETrackingUniverseOrigin 293 | { 294 | ETrackingUniverseOrigin_TrackingUniverseSeated = 0, 295 | ETrackingUniverseOrigin_TrackingUniverseStanding = 1, 296 | ETrackingUniverseOrigin_TrackingUniverseRawAndUncalibrated = 2, 297 | } ETrackingUniverseOrigin; 298 | 299 | typedef enum ETrackedDeviceProperty 300 | { 301 | ETrackedDeviceProperty_Prop_Invalid = 0, 302 | ETrackedDeviceProperty_Prop_TrackingSystemName_String = 1000, 303 | ETrackedDeviceProperty_Prop_ModelNumber_String = 1001, 304 | ETrackedDeviceProperty_Prop_SerialNumber_String = 1002, 305 | ETrackedDeviceProperty_Prop_RenderModelName_String = 1003, 306 | ETrackedDeviceProperty_Prop_WillDriftInYaw_Bool = 1004, 307 | ETrackedDeviceProperty_Prop_ManufacturerName_String = 1005, 308 | ETrackedDeviceProperty_Prop_TrackingFirmwareVersion_String = 1006, 309 | ETrackedDeviceProperty_Prop_HardwareRevision_String = 1007, 310 | ETrackedDeviceProperty_Prop_AllWirelessDongleDescriptions_String = 1008, 311 | ETrackedDeviceProperty_Prop_ConnectedWirelessDongle_String = 1009, 312 | ETrackedDeviceProperty_Prop_DeviceIsWireless_Bool = 1010, 313 | ETrackedDeviceProperty_Prop_DeviceIsCharging_Bool = 1011, 314 | ETrackedDeviceProperty_Prop_DeviceBatteryPercentage_Float = 1012, 315 | ETrackedDeviceProperty_Prop_StatusDisplayTransform_Matrix34 = 1013, 316 | ETrackedDeviceProperty_Prop_Firmware_UpdateAvailable_Bool = 1014, 317 | ETrackedDeviceProperty_Prop_Firmware_ManualUpdate_Bool = 1015, 318 | ETrackedDeviceProperty_Prop_Firmware_ManualUpdateURL_String = 1016, 319 | ETrackedDeviceProperty_Prop_HardwareRevision_Uint64 = 1017, 320 | ETrackedDeviceProperty_Prop_FirmwareVersion_Uint64 = 1018, 321 | ETrackedDeviceProperty_Prop_FPGAVersion_Uint64 = 1019, 322 | ETrackedDeviceProperty_Prop_VRCVersion_Uint64 = 1020, 323 | ETrackedDeviceProperty_Prop_RadioVersion_Uint64 = 1021, 324 | ETrackedDeviceProperty_Prop_DongleVersion_Uint64 = 1022, 325 | ETrackedDeviceProperty_Prop_BlockServerShutdown_Bool = 1023, 326 | ETrackedDeviceProperty_Prop_CanUnifyCoordinateSystemWithHmd_Bool = 1024, 327 | ETrackedDeviceProperty_Prop_ContainsProximitySensor_Bool = 1025, 328 | ETrackedDeviceProperty_Prop_DeviceProvidesBatteryStatus_Bool = 1026, 329 | ETrackedDeviceProperty_Prop_DeviceCanPowerOff_Bool = 1027, 330 | ETrackedDeviceProperty_Prop_Firmware_ProgrammingTarget_String = 1028, 331 | ETrackedDeviceProperty_Prop_DeviceClass_Int32 = 1029, 332 | ETrackedDeviceProperty_Prop_HasCamera_Bool = 1030, 333 | ETrackedDeviceProperty_Prop_DriverVersion_String = 1031, 334 | ETrackedDeviceProperty_Prop_Firmware_ForceUpdateRequired_Bool = 1032, 335 | ETrackedDeviceProperty_Prop_ViveSystemButtonFixRequired_Bool = 1033, 336 | ETrackedDeviceProperty_Prop_ParentDriver_Uint64 = 1034, 337 | ETrackedDeviceProperty_Prop_ResourceRoot_String = 1035, 338 | ETrackedDeviceProperty_Prop_ReportsTimeSinceVSync_Bool = 2000, 339 | ETrackedDeviceProperty_Prop_SecondsFromVsyncToPhotons_Float = 2001, 340 | ETrackedDeviceProperty_Prop_DisplayFrequency_Float = 2002, 341 | ETrackedDeviceProperty_Prop_UserIpdMeters_Float = 2003, 342 | ETrackedDeviceProperty_Prop_CurrentUniverseId_Uint64 = 2004, 343 | ETrackedDeviceProperty_Prop_PreviousUniverseId_Uint64 = 2005, 344 | ETrackedDeviceProperty_Prop_DisplayFirmwareVersion_Uint64 = 2006, 345 | ETrackedDeviceProperty_Prop_IsOnDesktop_Bool = 2007, 346 | ETrackedDeviceProperty_Prop_DisplayMCType_Int32 = 2008, 347 | ETrackedDeviceProperty_Prop_DisplayMCOffset_Float = 2009, 348 | ETrackedDeviceProperty_Prop_DisplayMCScale_Float = 2010, 349 | ETrackedDeviceProperty_Prop_EdidVendorID_Int32 = 2011, 350 | ETrackedDeviceProperty_Prop_DisplayMCImageLeft_String = 2012, 351 | ETrackedDeviceProperty_Prop_DisplayMCImageRight_String = 2013, 352 | ETrackedDeviceProperty_Prop_DisplayGCBlackClamp_Float = 2014, 353 | ETrackedDeviceProperty_Prop_EdidProductID_Int32 = 2015, 354 | ETrackedDeviceProperty_Prop_CameraToHeadTransform_Matrix34 = 2016, 355 | ETrackedDeviceProperty_Prop_DisplayGCType_Int32 = 2017, 356 | ETrackedDeviceProperty_Prop_DisplayGCOffset_Float = 2018, 357 | ETrackedDeviceProperty_Prop_DisplayGCScale_Float = 2019, 358 | ETrackedDeviceProperty_Prop_DisplayGCPrescale_Float = 2020, 359 | ETrackedDeviceProperty_Prop_DisplayGCImage_String = 2021, 360 | ETrackedDeviceProperty_Prop_LensCenterLeftU_Float = 2022, 361 | ETrackedDeviceProperty_Prop_LensCenterLeftV_Float = 2023, 362 | ETrackedDeviceProperty_Prop_LensCenterRightU_Float = 2024, 363 | ETrackedDeviceProperty_Prop_LensCenterRightV_Float = 2025, 364 | ETrackedDeviceProperty_Prop_UserHeadToEyeDepthMeters_Float = 2026, 365 | ETrackedDeviceProperty_Prop_CameraFirmwareVersion_Uint64 = 2027, 366 | ETrackedDeviceProperty_Prop_CameraFirmwareDescription_String = 2028, 367 | ETrackedDeviceProperty_Prop_DisplayFPGAVersion_Uint64 = 2029, 368 | ETrackedDeviceProperty_Prop_DisplayBootloaderVersion_Uint64 = 2030, 369 | ETrackedDeviceProperty_Prop_DisplayHardwareVersion_Uint64 = 2031, 370 | ETrackedDeviceProperty_Prop_AudioFirmwareVersion_Uint64 = 2032, 371 | ETrackedDeviceProperty_Prop_CameraCompatibilityMode_Int32 = 2033, 372 | ETrackedDeviceProperty_Prop_ScreenshotHorizontalFieldOfViewDegrees_Float = 2034, 373 | ETrackedDeviceProperty_Prop_ScreenshotVerticalFieldOfViewDegrees_Float = 2035, 374 | ETrackedDeviceProperty_Prop_DisplaySuppressed_Bool = 2036, 375 | ETrackedDeviceProperty_Prop_DisplayAllowNightMode_Bool = 2037, 376 | ETrackedDeviceProperty_Prop_DisplayMCImageWidth_Int32 = 2038, 377 | ETrackedDeviceProperty_Prop_DisplayMCImageHeight_Int32 = 2039, 378 | ETrackedDeviceProperty_Prop_DisplayMCImageNumChannels_Int32 = 2040, 379 | ETrackedDeviceProperty_Prop_DisplayMCImageData_Binary = 2041, 380 | ETrackedDeviceProperty_Prop_SecondsFromPhotonsToVblank_Float = 2042, 381 | ETrackedDeviceProperty_Prop_DriverDirectModeSendsVsyncEvents_Bool = 2043, 382 | ETrackedDeviceProperty_Prop_DisplayDebugMode_Bool = 2044, 383 | ETrackedDeviceProperty_Prop_GraphicsAdapterLuid_Uint64 = 2045, 384 | ETrackedDeviceProperty_Prop_DriverProvidedChaperonePath_String = 2048, 385 | ETrackedDeviceProperty_Prop_AttachedDeviceId_String = 3000, 386 | ETrackedDeviceProperty_Prop_SupportedButtons_Uint64 = 3001, 387 | ETrackedDeviceProperty_Prop_Axis0Type_Int32 = 3002, 388 | ETrackedDeviceProperty_Prop_Axis1Type_Int32 = 3003, 389 | ETrackedDeviceProperty_Prop_Axis2Type_Int32 = 3004, 390 | ETrackedDeviceProperty_Prop_Axis3Type_Int32 = 3005, 391 | ETrackedDeviceProperty_Prop_Axis4Type_Int32 = 3006, 392 | ETrackedDeviceProperty_Prop_ControllerRoleHint_Int32 = 3007, 393 | ETrackedDeviceProperty_Prop_FieldOfViewLeftDegrees_Float = 4000, 394 | ETrackedDeviceProperty_Prop_FieldOfViewRightDegrees_Float = 4001, 395 | ETrackedDeviceProperty_Prop_FieldOfViewTopDegrees_Float = 4002, 396 | ETrackedDeviceProperty_Prop_FieldOfViewBottomDegrees_Float = 4003, 397 | ETrackedDeviceProperty_Prop_TrackingRangeMinimumMeters_Float = 4004, 398 | ETrackedDeviceProperty_Prop_TrackingRangeMaximumMeters_Float = 4005, 399 | ETrackedDeviceProperty_Prop_ModeLabel_String = 4006, 400 | ETrackedDeviceProperty_Prop_IconPathName_String = 5000, 401 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceOff_String = 5001, 402 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceSearching_String = 5002, 403 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceSearchingAlert_String = 5003, 404 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceReady_String = 5004, 405 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceReadyAlert_String = 5005, 406 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceNotReady_String = 5006, 407 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceStandby_String = 5007, 408 | ETrackedDeviceProperty_Prop_NamedIconPathDeviceAlertLow_String = 5008, 409 | ETrackedDeviceProperty_Prop_DisplayHiddenArea_Binary_Start = 5100, 410 | ETrackedDeviceProperty_Prop_DisplayHiddenArea_Binary_End = 5150, 411 | ETrackedDeviceProperty_Prop_UserConfigPath_String = 6000, 412 | ETrackedDeviceProperty_Prop_InstallPath_String = 6001, 413 | ETrackedDeviceProperty_Prop_HasDisplayComponent_Bool = 6002, 414 | ETrackedDeviceProperty_Prop_HasControllerComponent_Bool = 6003, 415 | ETrackedDeviceProperty_Prop_HasCameraComponent_Bool = 6004, 416 | ETrackedDeviceProperty_Prop_HasDriverDirectModeComponent_Bool = 6005, 417 | ETrackedDeviceProperty_Prop_HasVirtualDisplayComponent_Bool = 6006, 418 | ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_Start = 10000, 419 | ETrackedDeviceProperty_Prop_VendorSpecific_Reserved_End = 10999, 420 | } ETrackedDeviceProperty; 421 | 422 | typedef enum ETrackedPropertyError 423 | { 424 | ETrackedPropertyError_TrackedProp_Success = 0, 425 | ETrackedPropertyError_TrackedProp_WrongDataType = 1, 426 | ETrackedPropertyError_TrackedProp_WrongDeviceClass = 2, 427 | ETrackedPropertyError_TrackedProp_BufferTooSmall = 3, 428 | ETrackedPropertyError_TrackedProp_UnknownProperty = 4, 429 | ETrackedPropertyError_TrackedProp_InvalidDevice = 5, 430 | ETrackedPropertyError_TrackedProp_CouldNotContactServer = 6, 431 | ETrackedPropertyError_TrackedProp_ValueNotProvidedByDevice = 7, 432 | ETrackedPropertyError_TrackedProp_StringExceedsMaximumLength = 8, 433 | ETrackedPropertyError_TrackedProp_NotYetAvailable = 9, 434 | ETrackedPropertyError_TrackedProp_PermissionDenied = 10, 435 | ETrackedPropertyError_TrackedProp_InvalidOperation = 11, 436 | } ETrackedPropertyError; 437 | 438 | typedef enum EVRSubmitFlags 439 | { 440 | EVRSubmitFlags_Submit_Default = 0, 441 | EVRSubmitFlags_Submit_LensDistortionAlreadyApplied = 1, 442 | EVRSubmitFlags_Submit_GlRenderBuffer = 2, 443 | EVRSubmitFlags_Submit_Reserved = 4, 444 | EVRSubmitFlags_Submit_TextureWithPose = 8, 445 | } EVRSubmitFlags; 446 | 447 | typedef enum EVRState 448 | { 449 | EVRState_VRState_Undefined = -1, 450 | EVRState_VRState_Off = 0, 451 | EVRState_VRState_Searching = 1, 452 | EVRState_VRState_Searching_Alert = 2, 453 | EVRState_VRState_Ready = 3, 454 | EVRState_VRState_Ready_Alert = 4, 455 | EVRState_VRState_NotReady = 5, 456 | EVRState_VRState_Standby = 6, 457 | EVRState_VRState_Ready_Alert_Low = 7, 458 | } EVRState; 459 | 460 | typedef enum EVREventType 461 | { 462 | EVREventType_VREvent_None = 0, 463 | EVREventType_VREvent_TrackedDeviceActivated = 100, 464 | EVREventType_VREvent_TrackedDeviceDeactivated = 101, 465 | EVREventType_VREvent_TrackedDeviceUpdated = 102, 466 | EVREventType_VREvent_TrackedDeviceUserInteractionStarted = 103, 467 | EVREventType_VREvent_TrackedDeviceUserInteractionEnded = 104, 468 | EVREventType_VREvent_IpdChanged = 105, 469 | EVREventType_VREvent_EnterStandbyMode = 106, 470 | EVREventType_VREvent_LeaveStandbyMode = 107, 471 | EVREventType_VREvent_TrackedDeviceRoleChanged = 108, 472 | EVREventType_VREvent_WatchdogWakeUpRequested = 109, 473 | EVREventType_VREvent_LensDistortionChanged = 110, 474 | EVREventType_VREvent_PropertyChanged = 111, 475 | EVREventType_VREvent_WirelessDisconnect = 112, 476 | EVREventType_VREvent_WirelessReconnect = 113, 477 | EVREventType_VREvent_ButtonPress = 200, 478 | EVREventType_VREvent_ButtonUnpress = 201, 479 | EVREventType_VREvent_ButtonTouch = 202, 480 | EVREventType_VREvent_ButtonUntouch = 203, 481 | EVREventType_VREvent_MouseMove = 300, 482 | EVREventType_VREvent_MouseButtonDown = 301, 483 | EVREventType_VREvent_MouseButtonUp = 302, 484 | EVREventType_VREvent_FocusEnter = 303, 485 | EVREventType_VREvent_FocusLeave = 304, 486 | EVREventType_VREvent_Scroll = 305, 487 | EVREventType_VREvent_TouchPadMove = 306, 488 | EVREventType_VREvent_OverlayFocusChanged = 307, 489 | EVREventType_VREvent_InputFocusCaptured = 400, 490 | EVREventType_VREvent_InputFocusReleased = 401, 491 | EVREventType_VREvent_SceneFocusLost = 402, 492 | EVREventType_VREvent_SceneFocusGained = 403, 493 | EVREventType_VREvent_SceneApplicationChanged = 404, 494 | EVREventType_VREvent_SceneFocusChanged = 405, 495 | EVREventType_VREvent_InputFocusChanged = 406, 496 | EVREventType_VREvent_SceneApplicationSecondaryRenderingStarted = 407, 497 | EVREventType_VREvent_HideRenderModels = 410, 498 | EVREventType_VREvent_ShowRenderModels = 411, 499 | EVREventType_VREvent_OverlayShown = 500, 500 | EVREventType_VREvent_OverlayHidden = 501, 501 | EVREventType_VREvent_DashboardActivated = 502, 502 | EVREventType_VREvent_DashboardDeactivated = 503, 503 | EVREventType_VREvent_DashboardThumbSelected = 504, 504 | EVREventType_VREvent_DashboardRequested = 505, 505 | EVREventType_VREvent_ResetDashboard = 506, 506 | EVREventType_VREvent_RenderToast = 507, 507 | EVREventType_VREvent_ImageLoaded = 508, 508 | EVREventType_VREvent_ShowKeyboard = 509, 509 | EVREventType_VREvent_HideKeyboard = 510, 510 | EVREventType_VREvent_OverlayGamepadFocusGained = 511, 511 | EVREventType_VREvent_OverlayGamepadFocusLost = 512, 512 | EVREventType_VREvent_OverlaySharedTextureChanged = 513, 513 | EVREventType_VREvent_DashboardGuideButtonDown = 514, 514 | EVREventType_VREvent_DashboardGuideButtonUp = 515, 515 | EVREventType_VREvent_ScreenshotTriggered = 516, 516 | EVREventType_VREvent_ImageFailed = 517, 517 | EVREventType_VREvent_DashboardOverlayCreated = 518, 518 | EVREventType_VREvent_RequestScreenshot = 520, 519 | EVREventType_VREvent_ScreenshotTaken = 521, 520 | EVREventType_VREvent_ScreenshotFailed = 522, 521 | EVREventType_VREvent_SubmitScreenshotToDashboard = 523, 522 | EVREventType_VREvent_ScreenshotProgressToDashboard = 524, 523 | EVREventType_VREvent_PrimaryDashboardDeviceChanged = 525, 524 | EVREventType_VREvent_Notification_Shown = 600, 525 | EVREventType_VREvent_Notification_Hidden = 601, 526 | EVREventType_VREvent_Notification_BeginInteraction = 602, 527 | EVREventType_VREvent_Notification_Destroyed = 603, 528 | EVREventType_VREvent_Quit = 700, 529 | EVREventType_VREvent_ProcessQuit = 701, 530 | EVREventType_VREvent_QuitAborted_UserPrompt = 702, 531 | EVREventType_VREvent_QuitAcknowledged = 703, 532 | EVREventType_VREvent_DriverRequestedQuit = 704, 533 | EVREventType_VREvent_ChaperoneDataHasChanged = 800, 534 | EVREventType_VREvent_ChaperoneUniverseHasChanged = 801, 535 | EVREventType_VREvent_ChaperoneTempDataHasChanged = 802, 536 | EVREventType_VREvent_ChaperoneSettingsHaveChanged = 803, 537 | EVREventType_VREvent_SeatedZeroPoseReset = 804, 538 | EVREventType_VREvent_AudioSettingsHaveChanged = 820, 539 | EVREventType_VREvent_BackgroundSettingHasChanged = 850, 540 | EVREventType_VREvent_CameraSettingsHaveChanged = 851, 541 | EVREventType_VREvent_ReprojectionSettingHasChanged = 852, 542 | EVREventType_VREvent_ModelSkinSettingsHaveChanged = 853, 543 | EVREventType_VREvent_EnvironmentSettingsHaveChanged = 854, 544 | EVREventType_VREvent_PowerSettingsHaveChanged = 855, 545 | EVREventType_VREvent_EnableHomeAppSettingsHaveChanged = 856, 546 | EVREventType_VREvent_StatusUpdate = 900, 547 | EVREventType_VREvent_MCImageUpdated = 1000, 548 | EVREventType_VREvent_FirmwareUpdateStarted = 1100, 549 | EVREventType_VREvent_FirmwareUpdateFinished = 1101, 550 | EVREventType_VREvent_KeyboardClosed = 1200, 551 | EVREventType_VREvent_KeyboardCharInput = 1201, 552 | EVREventType_VREvent_KeyboardDone = 1202, 553 | EVREventType_VREvent_ApplicationTransitionStarted = 1300, 554 | EVREventType_VREvent_ApplicationTransitionAborted = 1301, 555 | EVREventType_VREvent_ApplicationTransitionNewAppStarted = 1302, 556 | EVREventType_VREvent_ApplicationListUpdated = 1303, 557 | EVREventType_VREvent_ApplicationMimeTypeLoad = 1304, 558 | EVREventType_VREvent_ApplicationTransitionNewAppLaunchComplete = 1305, 559 | EVREventType_VREvent_ProcessConnected = 1306, 560 | EVREventType_VREvent_ProcessDisconnected = 1307, 561 | EVREventType_VREvent_Compositor_MirrorWindowShown = 1400, 562 | EVREventType_VREvent_Compositor_MirrorWindowHidden = 1401, 563 | EVREventType_VREvent_Compositor_ChaperoneBoundsShown = 1410, 564 | EVREventType_VREvent_Compositor_ChaperoneBoundsHidden = 1411, 565 | EVREventType_VREvent_TrackedCamera_StartVideoStream = 1500, 566 | EVREventType_VREvent_TrackedCamera_StopVideoStream = 1501, 567 | EVREventType_VREvent_TrackedCamera_PauseVideoStream = 1502, 568 | EVREventType_VREvent_TrackedCamera_ResumeVideoStream = 1503, 569 | EVREventType_VREvent_TrackedCamera_EditingSurface = 1550, 570 | EVREventType_VREvent_PerformanceTest_EnableCapture = 1600, 571 | EVREventType_VREvent_PerformanceTest_DisableCapture = 1601, 572 | EVREventType_VREvent_PerformanceTest_FidelityLevel = 1602, 573 | EVREventType_VREvent_MessageOverlay_Closed = 1650, 574 | EVREventType_VREvent_MessageOverlayCloseRequested = 1651, 575 | EVREventType_VREvent_VendorSpecific_Reserved_Start = 10000, 576 | EVREventType_VREvent_VendorSpecific_Reserved_End = 19999, 577 | } EVREventType; 578 | 579 | typedef enum EDeviceActivityLevel 580 | { 581 | EDeviceActivityLevel_k_EDeviceActivityLevel_Unknown = -1, 582 | EDeviceActivityLevel_k_EDeviceActivityLevel_Idle = 0, 583 | EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction = 1, 584 | EDeviceActivityLevel_k_EDeviceActivityLevel_UserInteraction_Timeout = 2, 585 | EDeviceActivityLevel_k_EDeviceActivityLevel_Standby = 3, 586 | } EDeviceActivityLevel; 587 | 588 | typedef enum EVRButtonId 589 | { 590 | EVRButtonId_k_EButton_System = 0, 591 | EVRButtonId_k_EButton_ApplicationMenu = 1, 592 | EVRButtonId_k_EButton_Grip = 2, 593 | EVRButtonId_k_EButton_DPad_Left = 3, 594 | EVRButtonId_k_EButton_DPad_Up = 4, 595 | EVRButtonId_k_EButton_DPad_Right = 5, 596 | EVRButtonId_k_EButton_DPad_Down = 6, 597 | EVRButtonId_k_EButton_A = 7, 598 | EVRButtonId_k_EButton_ProximitySensor = 31, 599 | EVRButtonId_k_EButton_Axis0 = 32, 600 | EVRButtonId_k_EButton_Axis1 = 33, 601 | EVRButtonId_k_EButton_Axis2 = 34, 602 | EVRButtonId_k_EButton_Axis3 = 35, 603 | EVRButtonId_k_EButton_Axis4 = 36, 604 | EVRButtonId_k_EButton_SteamVR_Touchpad = 32, 605 | EVRButtonId_k_EButton_SteamVR_Trigger = 33, 606 | EVRButtonId_k_EButton_Dashboard_Back = 2, 607 | EVRButtonId_k_EButton_Max = 64, 608 | } EVRButtonId; 609 | 610 | typedef enum EVRMouseButton 611 | { 612 | EVRMouseButton_VRMouseButton_Left = 1, 613 | EVRMouseButton_VRMouseButton_Right = 2, 614 | EVRMouseButton_VRMouseButton_Middle = 4, 615 | } EVRMouseButton; 616 | 617 | typedef enum EHiddenAreaMeshType 618 | { 619 | EHiddenAreaMeshType_k_eHiddenAreaMesh_Standard = 0, 620 | EHiddenAreaMeshType_k_eHiddenAreaMesh_Inverse = 1, 621 | EHiddenAreaMeshType_k_eHiddenAreaMesh_LineLoop = 2, 622 | EHiddenAreaMeshType_k_eHiddenAreaMesh_Max = 3, 623 | } EHiddenAreaMeshType; 624 | 625 | typedef enum EVRControllerAxisType 626 | { 627 | EVRControllerAxisType_k_eControllerAxis_None = 0, 628 | EVRControllerAxisType_k_eControllerAxis_TrackPad = 1, 629 | EVRControllerAxisType_k_eControllerAxis_Joystick = 2, 630 | EVRControllerAxisType_k_eControllerAxis_Trigger = 3, 631 | } EVRControllerAxisType; 632 | 633 | typedef enum EVRControllerEventOutputType 634 | { 635 | EVRControllerEventOutputType_ControllerEventOutput_OSEvents = 0, 636 | EVRControllerEventOutputType_ControllerEventOutput_VREvents = 1, 637 | } EVRControllerEventOutputType; 638 | 639 | typedef enum ECollisionBoundsStyle 640 | { 641 | ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_BEGINNER = 0, 642 | ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_INTERMEDIATE = 1, 643 | ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_SQUARES = 2, 644 | ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_ADVANCED = 3, 645 | ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_NONE = 4, 646 | ECollisionBoundsStyle_COLLISION_BOUNDS_STYLE_COUNT = 5, 647 | } ECollisionBoundsStyle; 648 | 649 | typedef enum EVROverlayError 650 | { 651 | EVROverlayError_VROverlayError_None = 0, 652 | EVROverlayError_VROverlayError_UnknownOverlay = 10, 653 | EVROverlayError_VROverlayError_InvalidHandle = 11, 654 | EVROverlayError_VROverlayError_PermissionDenied = 12, 655 | EVROverlayError_VROverlayError_OverlayLimitExceeded = 13, 656 | EVROverlayError_VROverlayError_WrongVisibilityType = 14, 657 | EVROverlayError_VROverlayError_KeyTooLong = 15, 658 | EVROverlayError_VROverlayError_NameTooLong = 16, 659 | EVROverlayError_VROverlayError_KeyInUse = 17, 660 | EVROverlayError_VROverlayError_WrongTransformType = 18, 661 | EVROverlayError_VROverlayError_InvalidTrackedDevice = 19, 662 | EVROverlayError_VROverlayError_InvalidParameter = 20, 663 | EVROverlayError_VROverlayError_ThumbnailCantBeDestroyed = 21, 664 | EVROverlayError_VROverlayError_ArrayTooSmall = 22, 665 | EVROverlayError_VROverlayError_RequestFailed = 23, 666 | EVROverlayError_VROverlayError_InvalidTexture = 24, 667 | EVROverlayError_VROverlayError_UnableToLoadFile = 25, 668 | EVROverlayError_VROverlayError_KeyboardAlreadyInUse = 26, 669 | EVROverlayError_VROverlayError_NoNeighbor = 27, 670 | EVROverlayError_VROverlayError_TooManyMaskPrimitives = 29, 671 | EVROverlayError_VROverlayError_BadMaskPrimitive = 30, 672 | } EVROverlayError; 673 | 674 | typedef enum EVRApplicationType 675 | { 676 | EVRApplicationType_VRApplication_Other = 0, 677 | EVRApplicationType_VRApplication_Scene = 1, 678 | EVRApplicationType_VRApplication_Overlay = 2, 679 | EVRApplicationType_VRApplication_Background = 3, 680 | EVRApplicationType_VRApplication_Utility = 4, 681 | EVRApplicationType_VRApplication_VRMonitor = 5, 682 | EVRApplicationType_VRApplication_SteamWatchdog = 6, 683 | EVRApplicationType_VRApplication_Bootstrapper = 7, 684 | EVRApplicationType_VRApplication_Max = 8, 685 | } EVRApplicationType; 686 | 687 | typedef enum EVRFirmwareError 688 | { 689 | EVRFirmwareError_VRFirmwareError_None = 0, 690 | EVRFirmwareError_VRFirmwareError_Success = 1, 691 | EVRFirmwareError_VRFirmwareError_Fail = 2, 692 | } EVRFirmwareError; 693 | 694 | typedef enum EVRNotificationError 695 | { 696 | EVRNotificationError_VRNotificationError_OK = 0, 697 | EVRNotificationError_VRNotificationError_InvalidNotificationId = 100, 698 | EVRNotificationError_VRNotificationError_NotificationQueueFull = 101, 699 | EVRNotificationError_VRNotificationError_InvalidOverlayHandle = 102, 700 | EVRNotificationError_VRNotificationError_SystemWithUserValueAlreadyExists = 103, 701 | } EVRNotificationError; 702 | 703 | typedef enum EVRInitError 704 | { 705 | EVRInitError_VRInitError_None = 0, 706 | EVRInitError_VRInitError_Unknown = 1, 707 | EVRInitError_VRInitError_Init_InstallationNotFound = 100, 708 | EVRInitError_VRInitError_Init_InstallationCorrupt = 101, 709 | EVRInitError_VRInitError_Init_VRClientDLLNotFound = 102, 710 | EVRInitError_VRInitError_Init_FileNotFound = 103, 711 | EVRInitError_VRInitError_Init_FactoryNotFound = 104, 712 | EVRInitError_VRInitError_Init_InterfaceNotFound = 105, 713 | EVRInitError_VRInitError_Init_InvalidInterface = 106, 714 | EVRInitError_VRInitError_Init_UserConfigDirectoryInvalid = 107, 715 | EVRInitError_VRInitError_Init_HmdNotFound = 108, 716 | EVRInitError_VRInitError_Init_NotInitialized = 109, 717 | EVRInitError_VRInitError_Init_PathRegistryNotFound = 110, 718 | EVRInitError_VRInitError_Init_NoConfigPath = 111, 719 | EVRInitError_VRInitError_Init_NoLogPath = 112, 720 | EVRInitError_VRInitError_Init_PathRegistryNotWritable = 113, 721 | EVRInitError_VRInitError_Init_AppInfoInitFailed = 114, 722 | EVRInitError_VRInitError_Init_Retry = 115, 723 | EVRInitError_VRInitError_Init_InitCanceledByUser = 116, 724 | EVRInitError_VRInitError_Init_AnotherAppLaunching = 117, 725 | EVRInitError_VRInitError_Init_SettingsInitFailed = 118, 726 | EVRInitError_VRInitError_Init_ShuttingDown = 119, 727 | EVRInitError_VRInitError_Init_TooManyObjects = 120, 728 | EVRInitError_VRInitError_Init_NoServerForBackgroundApp = 121, 729 | EVRInitError_VRInitError_Init_NotSupportedWithCompositor = 122, 730 | EVRInitError_VRInitError_Init_NotAvailableToUtilityApps = 123, 731 | EVRInitError_VRInitError_Init_Internal = 124, 732 | EVRInitError_VRInitError_Init_HmdDriverIdIsNone = 125, 733 | EVRInitError_VRInitError_Init_HmdNotFoundPresenceFailed = 126, 734 | EVRInitError_VRInitError_Init_VRMonitorNotFound = 127, 735 | EVRInitError_VRInitError_Init_VRMonitorStartupFailed = 128, 736 | EVRInitError_VRInitError_Init_LowPowerWatchdogNotSupported = 129, 737 | EVRInitError_VRInitError_Init_InvalidApplicationType = 130, 738 | EVRInitError_VRInitError_Init_NotAvailableToWatchdogApps = 131, 739 | EVRInitError_VRInitError_Init_WatchdogDisabledInSettings = 132, 740 | EVRInitError_VRInitError_Init_VRDashboardNotFound = 133, 741 | EVRInitError_VRInitError_Init_VRDashboardStartupFailed = 134, 742 | EVRInitError_VRInitError_Init_VRHomeNotFound = 135, 743 | EVRInitError_VRInitError_Init_VRHomeStartupFailed = 136, 744 | EVRInitError_VRInitError_Init_RebootingBusy = 137, 745 | EVRInitError_VRInitError_Init_FirmwareUpdateBusy = 138, 746 | EVRInitError_VRInitError_Init_FirmwareRecoveryBusy = 139, 747 | EVRInitError_VRInitError_Driver_Failed = 200, 748 | EVRInitError_VRInitError_Driver_Unknown = 201, 749 | EVRInitError_VRInitError_Driver_HmdUnknown = 202, 750 | EVRInitError_VRInitError_Driver_NotLoaded = 203, 751 | EVRInitError_VRInitError_Driver_RuntimeOutOfDate = 204, 752 | EVRInitError_VRInitError_Driver_HmdInUse = 205, 753 | EVRInitError_VRInitError_Driver_NotCalibrated = 206, 754 | EVRInitError_VRInitError_Driver_CalibrationInvalid = 207, 755 | EVRInitError_VRInitError_Driver_HmdDisplayNotFound = 208, 756 | EVRInitError_VRInitError_Driver_TrackedDeviceInterfaceUnknown = 209, 757 | EVRInitError_VRInitError_Driver_HmdDriverIdOutOfBounds = 211, 758 | EVRInitError_VRInitError_Driver_HmdDisplayMirrored = 212, 759 | EVRInitError_VRInitError_IPC_ServerInitFailed = 300, 760 | EVRInitError_VRInitError_IPC_ConnectFailed = 301, 761 | EVRInitError_VRInitError_IPC_SharedStateInitFailed = 302, 762 | EVRInitError_VRInitError_IPC_CompositorInitFailed = 303, 763 | EVRInitError_VRInitError_IPC_MutexInitFailed = 304, 764 | EVRInitError_VRInitError_IPC_Failed = 305, 765 | EVRInitError_VRInitError_IPC_CompositorConnectFailed = 306, 766 | EVRInitError_VRInitError_IPC_CompositorInvalidConnectResponse = 307, 767 | EVRInitError_VRInitError_IPC_ConnectFailedAfterMultipleAttempts = 308, 768 | EVRInitError_VRInitError_Compositor_Failed = 400, 769 | EVRInitError_VRInitError_Compositor_D3D11HardwareRequired = 401, 770 | EVRInitError_VRInitError_Compositor_FirmwareRequiresUpdate = 402, 771 | EVRInitError_VRInitError_Compositor_OverlayInitFailed = 403, 772 | EVRInitError_VRInitError_Compositor_ScreenshotsInitFailed = 404, 773 | EVRInitError_VRInitError_Compositor_UnableToCreateDevice = 405, 774 | EVRInitError_VRInitError_VendorSpecific_UnableToConnectToOculusRuntime = 1000, 775 | EVRInitError_VRInitError_VendorSpecific_HmdFound_CantOpenDevice = 1101, 776 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToRequestConfigStart = 1102, 777 | EVRInitError_VRInitError_VendorSpecific_HmdFound_NoStoredConfig = 1103, 778 | EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooBig = 1104, 779 | EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigTooSmall = 1105, 780 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToInitZLib = 1106, 781 | EVRInitError_VRInitError_VendorSpecific_HmdFound_CantReadFirmwareVersion = 1107, 782 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToSendUserDataStart = 1108, 783 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataStart = 1109, 784 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UnableToGetUserDataNext = 1110, 785 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataAddressRange = 1111, 786 | EVRInitError_VRInitError_VendorSpecific_HmdFound_UserDataError = 1112, 787 | EVRInitError_VRInitError_VendorSpecific_HmdFound_ConfigFailedSanityCheck = 1113, 788 | EVRInitError_VRInitError_Steam_SteamInstallationNotFound = 2000, 789 | } EVRInitError; 790 | 791 | typedef enum EVRScreenshotType 792 | { 793 | EVRScreenshotType_VRScreenshotType_None = 0, 794 | EVRScreenshotType_VRScreenshotType_Mono = 1, 795 | EVRScreenshotType_VRScreenshotType_Stereo = 2, 796 | EVRScreenshotType_VRScreenshotType_Cubemap = 3, 797 | EVRScreenshotType_VRScreenshotType_MonoPanorama = 4, 798 | EVRScreenshotType_VRScreenshotType_StereoPanorama = 5, 799 | } EVRScreenshotType; 800 | 801 | typedef enum EVRScreenshotPropertyFilenames 802 | { 803 | EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_Preview = 0, 804 | EVRScreenshotPropertyFilenames_VRScreenshotPropertyFilenames_VR = 1, 805 | } EVRScreenshotPropertyFilenames; 806 | 807 | typedef enum EVRTrackedCameraError 808 | { 809 | EVRTrackedCameraError_VRTrackedCameraError_None = 0, 810 | EVRTrackedCameraError_VRTrackedCameraError_OperationFailed = 100, 811 | EVRTrackedCameraError_VRTrackedCameraError_InvalidHandle = 101, 812 | EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameHeaderVersion = 102, 813 | EVRTrackedCameraError_VRTrackedCameraError_OutOfHandles = 103, 814 | EVRTrackedCameraError_VRTrackedCameraError_IPCFailure = 104, 815 | EVRTrackedCameraError_VRTrackedCameraError_NotSupportedForThisDevice = 105, 816 | EVRTrackedCameraError_VRTrackedCameraError_SharedMemoryFailure = 106, 817 | EVRTrackedCameraError_VRTrackedCameraError_FrameBufferingFailure = 107, 818 | EVRTrackedCameraError_VRTrackedCameraError_StreamSetupFailure = 108, 819 | EVRTrackedCameraError_VRTrackedCameraError_InvalidGLTextureId = 109, 820 | EVRTrackedCameraError_VRTrackedCameraError_InvalidSharedTextureHandle = 110, 821 | EVRTrackedCameraError_VRTrackedCameraError_FailedToGetGLTextureId = 111, 822 | EVRTrackedCameraError_VRTrackedCameraError_SharedTextureFailure = 112, 823 | EVRTrackedCameraError_VRTrackedCameraError_NoFrameAvailable = 113, 824 | EVRTrackedCameraError_VRTrackedCameraError_InvalidArgument = 114, 825 | EVRTrackedCameraError_VRTrackedCameraError_InvalidFrameBufferSize = 115, 826 | } EVRTrackedCameraError; 827 | 828 | typedef enum EVRTrackedCameraFrameType 829 | { 830 | EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Distorted = 0, 831 | EVRTrackedCameraFrameType_VRTrackedCameraFrameType_Undistorted = 1, 832 | EVRTrackedCameraFrameType_VRTrackedCameraFrameType_MaximumUndistorted = 2, 833 | EVRTrackedCameraFrameType_MAX_CAMERA_FRAME_TYPES = 3, 834 | } EVRTrackedCameraFrameType; 835 | 836 | typedef enum EVRApplicationError 837 | { 838 | EVRApplicationError_VRApplicationError_None = 0, 839 | EVRApplicationError_VRApplicationError_AppKeyAlreadyExists = 100, 840 | EVRApplicationError_VRApplicationError_NoManifest = 101, 841 | EVRApplicationError_VRApplicationError_NoApplication = 102, 842 | EVRApplicationError_VRApplicationError_InvalidIndex = 103, 843 | EVRApplicationError_VRApplicationError_UnknownApplication = 104, 844 | EVRApplicationError_VRApplicationError_IPCFailed = 105, 845 | EVRApplicationError_VRApplicationError_ApplicationAlreadyRunning = 106, 846 | EVRApplicationError_VRApplicationError_InvalidManifest = 107, 847 | EVRApplicationError_VRApplicationError_InvalidApplication = 108, 848 | EVRApplicationError_VRApplicationError_LaunchFailed = 109, 849 | EVRApplicationError_VRApplicationError_ApplicationAlreadyStarting = 110, 850 | EVRApplicationError_VRApplicationError_LaunchInProgress = 111, 851 | EVRApplicationError_VRApplicationError_OldApplicationQuitting = 112, 852 | EVRApplicationError_VRApplicationError_TransitionAborted = 113, 853 | EVRApplicationError_VRApplicationError_IsTemplate = 114, 854 | EVRApplicationError_VRApplicationError_SteamVRIsExiting = 115, 855 | EVRApplicationError_VRApplicationError_BufferTooSmall = 200, 856 | EVRApplicationError_VRApplicationError_PropertyNotSet = 201, 857 | EVRApplicationError_VRApplicationError_UnknownProperty = 202, 858 | EVRApplicationError_VRApplicationError_InvalidParameter = 203, 859 | } EVRApplicationError; 860 | 861 | typedef enum EVRApplicationProperty 862 | { 863 | EVRApplicationProperty_VRApplicationProperty_Name_String = 0, 864 | EVRApplicationProperty_VRApplicationProperty_LaunchType_String = 11, 865 | EVRApplicationProperty_VRApplicationProperty_WorkingDirectory_String = 12, 866 | EVRApplicationProperty_VRApplicationProperty_BinaryPath_String = 13, 867 | EVRApplicationProperty_VRApplicationProperty_Arguments_String = 14, 868 | EVRApplicationProperty_VRApplicationProperty_URL_String = 15, 869 | EVRApplicationProperty_VRApplicationProperty_Description_String = 50, 870 | EVRApplicationProperty_VRApplicationProperty_NewsURL_String = 51, 871 | EVRApplicationProperty_VRApplicationProperty_ImagePath_String = 52, 872 | EVRApplicationProperty_VRApplicationProperty_Source_String = 53, 873 | EVRApplicationProperty_VRApplicationProperty_IsDashboardOverlay_Bool = 60, 874 | EVRApplicationProperty_VRApplicationProperty_IsTemplate_Bool = 61, 875 | EVRApplicationProperty_VRApplicationProperty_IsInstanced_Bool = 62, 876 | EVRApplicationProperty_VRApplicationProperty_IsInternal_Bool = 63, 877 | EVRApplicationProperty_VRApplicationProperty_WantsCompositorPauseInStandby_Bool = 64, 878 | EVRApplicationProperty_VRApplicationProperty_LastLaunchTime_Uint64 = 70, 879 | } EVRApplicationProperty; 880 | 881 | typedef enum EVRApplicationTransitionState 882 | { 883 | EVRApplicationTransitionState_VRApplicationTransition_None = 0, 884 | EVRApplicationTransitionState_VRApplicationTransition_OldAppQuitSent = 10, 885 | EVRApplicationTransitionState_VRApplicationTransition_WaitingForExternalLaunch = 11, 886 | EVRApplicationTransitionState_VRApplicationTransition_NewAppLaunched = 20, 887 | } EVRApplicationTransitionState; 888 | 889 | typedef enum ChaperoneCalibrationState 890 | { 891 | ChaperoneCalibrationState_OK = 1, 892 | ChaperoneCalibrationState_Warning = 100, 893 | ChaperoneCalibrationState_Warning_BaseStationMayHaveMoved = 101, 894 | ChaperoneCalibrationState_Warning_BaseStationRemoved = 102, 895 | ChaperoneCalibrationState_Warning_SeatedBoundsInvalid = 103, 896 | ChaperoneCalibrationState_Error = 200, 897 | ChaperoneCalibrationState_Error_BaseStationUninitialized = 201, 898 | ChaperoneCalibrationState_Error_BaseStationConflict = 202, 899 | ChaperoneCalibrationState_Error_PlayAreaInvalid = 203, 900 | ChaperoneCalibrationState_Error_CollisionBoundsInvalid = 204, 901 | } ChaperoneCalibrationState; 902 | 903 | typedef enum EChaperoneConfigFile 904 | { 905 | EChaperoneConfigFile_Live = 1, 906 | EChaperoneConfigFile_Temp = 2, 907 | } EChaperoneConfigFile; 908 | 909 | typedef enum EChaperoneImportFlags 910 | { 911 | EChaperoneImportFlags_EChaperoneImport_BoundsOnly = 1, 912 | } EChaperoneImportFlags; 913 | 914 | typedef enum EVRCompositorError 915 | { 916 | EVRCompositorError_VRCompositorError_None = 0, 917 | EVRCompositorError_VRCompositorError_RequestFailed = 1, 918 | EVRCompositorError_VRCompositorError_IncompatibleVersion = 100, 919 | EVRCompositorError_VRCompositorError_DoNotHaveFocus = 101, 920 | EVRCompositorError_VRCompositorError_InvalidTexture = 102, 921 | EVRCompositorError_VRCompositorError_IsNotSceneApplication = 103, 922 | EVRCompositorError_VRCompositorError_TextureIsOnWrongDevice = 104, 923 | EVRCompositorError_VRCompositorError_TextureUsesUnsupportedFormat = 105, 924 | EVRCompositorError_VRCompositorError_SharedTexturesNotSupported = 106, 925 | EVRCompositorError_VRCompositorError_IndexOutOfRange = 107, 926 | EVRCompositorError_VRCompositorError_AlreadySubmitted = 108, 927 | EVRCompositorError_VRCompositorError_InvalidBounds = 109, 928 | } EVRCompositorError; 929 | 930 | typedef enum VROverlayInputMethod 931 | { 932 | VROverlayInputMethod_None = 0, 933 | VROverlayInputMethod_Mouse = 1, 934 | } VROverlayInputMethod; 935 | 936 | typedef enum VROverlayTransformType 937 | { 938 | VROverlayTransformType_VROverlayTransform_Absolute = 0, 939 | VROverlayTransformType_VROverlayTransform_TrackedDeviceRelative = 1, 940 | VROverlayTransformType_VROverlayTransform_SystemOverlay = 2, 941 | VROverlayTransformType_VROverlayTransform_TrackedComponent = 3, 942 | } VROverlayTransformType; 943 | 944 | typedef enum VROverlayFlags 945 | { 946 | VROverlayFlags_None = 0, 947 | VROverlayFlags_Curved = 1, 948 | VROverlayFlags_RGSS4X = 2, 949 | VROverlayFlags_NoDashboardTab = 3, 950 | VROverlayFlags_AcceptsGamepadEvents = 4, 951 | VROverlayFlags_ShowGamepadFocus = 5, 952 | VROverlayFlags_SendVRScrollEvents = 6, 953 | VROverlayFlags_SendVRTouchpadEvents = 7, 954 | VROverlayFlags_ShowTouchPadScrollWheel = 8, 955 | VROverlayFlags_TransferOwnershipToInternalProcess = 9, 956 | VROverlayFlags_SideBySide_Parallel = 10, 957 | VROverlayFlags_SideBySide_Crossed = 11, 958 | VROverlayFlags_Panorama = 12, 959 | VROverlayFlags_StereoPanorama = 13, 960 | VROverlayFlags_SortWithNonSceneOverlays = 14, 961 | VROverlayFlags_VisibleInDashboard = 15, 962 | } VROverlayFlags; 963 | 964 | typedef enum VRMessageOverlayResponse 965 | { 966 | VRMessageOverlayResponse_ButtonPress_0 = 0, 967 | VRMessageOverlayResponse_ButtonPress_1 = 1, 968 | VRMessageOverlayResponse_ButtonPress_2 = 2, 969 | VRMessageOverlayResponse_ButtonPress_3 = 3, 970 | VRMessageOverlayResponse_CouldntFindSystemOverlay = 4, 971 | VRMessageOverlayResponse_CouldntFindOrCreateClientOverlay = 5, 972 | VRMessageOverlayResponse_ApplicationQuit = 6, 973 | } VRMessageOverlayResponse; 974 | 975 | typedef enum EGamepadTextInputMode 976 | { 977 | EGamepadTextInputMode_k_EGamepadTextInputModeNormal = 0, 978 | EGamepadTextInputMode_k_EGamepadTextInputModePassword = 1, 979 | EGamepadTextInputMode_k_EGamepadTextInputModeSubmit = 2, 980 | } EGamepadTextInputMode; 981 | 982 | typedef enum EGamepadTextInputLineMode 983 | { 984 | EGamepadTextInputLineMode_k_EGamepadTextInputLineModeSingleLine = 0, 985 | EGamepadTextInputLineMode_k_EGamepadTextInputLineModeMultipleLines = 1, 986 | } EGamepadTextInputLineMode; 987 | 988 | typedef enum EOverlayDirection 989 | { 990 | EOverlayDirection_OverlayDirection_Up = 0, 991 | EOverlayDirection_OverlayDirection_Down = 1, 992 | EOverlayDirection_OverlayDirection_Left = 2, 993 | EOverlayDirection_OverlayDirection_Right = 3, 994 | EOverlayDirection_OverlayDirection_Count = 4, 995 | } EOverlayDirection; 996 | 997 | typedef enum EVROverlayIntersectionMaskPrimitiveType 998 | { 999 | EVROverlayIntersectionMaskPrimitiveType_OverlayIntersectionPrimitiveType_Rectangle = 0, 1000 | EVROverlayIntersectionMaskPrimitiveType_OverlayIntersectionPrimitiveType_Circle = 1, 1001 | } EVROverlayIntersectionMaskPrimitiveType; 1002 | 1003 | typedef enum EVRRenderModelError 1004 | { 1005 | EVRRenderModelError_VRRenderModelError_None = 0, 1006 | EVRRenderModelError_VRRenderModelError_Loading = 100, 1007 | EVRRenderModelError_VRRenderModelError_NotSupported = 200, 1008 | EVRRenderModelError_VRRenderModelError_InvalidArg = 300, 1009 | EVRRenderModelError_VRRenderModelError_InvalidModel = 301, 1010 | EVRRenderModelError_VRRenderModelError_NoShapes = 302, 1011 | EVRRenderModelError_VRRenderModelError_MultipleShapes = 303, 1012 | EVRRenderModelError_VRRenderModelError_TooManyVertices = 304, 1013 | EVRRenderModelError_VRRenderModelError_MultipleTextures = 305, 1014 | EVRRenderModelError_VRRenderModelError_BufferTooSmall = 306, 1015 | EVRRenderModelError_VRRenderModelError_NotEnoughNormals = 307, 1016 | EVRRenderModelError_VRRenderModelError_NotEnoughTexCoords = 308, 1017 | EVRRenderModelError_VRRenderModelError_InvalidTexture = 400, 1018 | } EVRRenderModelError; 1019 | 1020 | typedef enum EVRComponentProperty 1021 | { 1022 | EVRComponentProperty_VRComponentProperty_IsStatic = 1, 1023 | EVRComponentProperty_VRComponentProperty_IsVisible = 2, 1024 | EVRComponentProperty_VRComponentProperty_IsTouched = 4, 1025 | EVRComponentProperty_VRComponentProperty_IsPressed = 8, 1026 | EVRComponentProperty_VRComponentProperty_IsScrolled = 16, 1027 | } EVRComponentProperty; 1028 | 1029 | typedef enum EVRNotificationType 1030 | { 1031 | EVRNotificationType_Transient = 0, 1032 | EVRNotificationType_Persistent = 1, 1033 | EVRNotificationType_Transient_SystemWithUserValue = 2, 1034 | } EVRNotificationType; 1035 | 1036 | typedef enum EVRNotificationStyle 1037 | { 1038 | EVRNotificationStyle_None = 0, 1039 | EVRNotificationStyle_Application = 100, 1040 | EVRNotificationStyle_Contact_Disabled = 200, 1041 | EVRNotificationStyle_Contact_Enabled = 201, 1042 | EVRNotificationStyle_Contact_Active = 202, 1043 | } EVRNotificationStyle; 1044 | 1045 | typedef enum EVRSettingsError 1046 | { 1047 | EVRSettingsError_VRSettingsError_None = 0, 1048 | EVRSettingsError_VRSettingsError_IPCFailed = 1, 1049 | EVRSettingsError_VRSettingsError_WriteFailed = 2, 1050 | EVRSettingsError_VRSettingsError_ReadFailed = 3, 1051 | EVRSettingsError_VRSettingsError_JsonParseFailed = 4, 1052 | EVRSettingsError_VRSettingsError_UnsetSettingHasNoDefault = 5, 1053 | } EVRSettingsError; 1054 | 1055 | typedef enum EVRScreenshotError 1056 | { 1057 | EVRScreenshotError_VRScreenshotError_None = 0, 1058 | EVRScreenshotError_VRScreenshotError_RequestFailed = 1, 1059 | EVRScreenshotError_VRScreenshotError_IncompatibleVersion = 100, 1060 | EVRScreenshotError_VRScreenshotError_NotFound = 101, 1061 | EVRScreenshotError_VRScreenshotError_BufferTooSmall = 102, 1062 | EVRScreenshotError_VRScreenshotError_ScreenshotAlreadyInProgress = 108, 1063 | } EVRScreenshotError; 1064 | 1065 | 1066 | // OpenVR typedefs 1067 | 1068 | typedef uint32_t TrackedDeviceIndex_t; 1069 | typedef uint32_t VRNotificationId; 1070 | typedef uint64_t VROverlayHandle_t; 1071 | 1072 | typedef void * glSharedTextureHandle_t; 1073 | typedef int32_t glInt_t; 1074 | typedef uint32_t glUInt_t; 1075 | typedef uint64_t SharedTextureHandle_t; 1076 | typedef uint32_t DriverId_t; 1077 | typedef uint32_t TrackedDeviceIndex_t; 1078 | typedef uint64_t PropertyContainerHandle_t; 1079 | typedef uint32_t PropertyTypeTag_t; 1080 | typedef uint64_t VROverlayHandle_t; 1081 | typedef uint64_t TrackedCameraHandle_t; 1082 | typedef uint32_t ScreenshotHandle_t; 1083 | typedef uint32_t VRComponentProperties; 1084 | typedef int32_t TextureID_t; 1085 | typedef uint32_t VRNotificationId; 1086 | typedef EVRInitError HmdError; 1087 | typedef EVREye Hmd_Eye; 1088 | typedef EColorSpace ColorSpace; 1089 | typedef ETrackingResult HmdTrackingResult; 1090 | typedef ETrackedDeviceClass TrackedDeviceClass; 1091 | typedef ETrackingUniverseOrigin TrackingUniverseOrigin; 1092 | typedef ETrackedDeviceProperty TrackedDeviceProperty; 1093 | typedef ETrackedPropertyError TrackedPropertyError; 1094 | typedef EVRSubmitFlags VRSubmitFlags_t; 1095 | typedef EVRState VRState_t; 1096 | typedef ECollisionBoundsStyle CollisionBoundsStyle_t; 1097 | typedef EVROverlayError VROverlayError; 1098 | typedef EVRFirmwareError VRFirmwareError; 1099 | typedef EVRCompositorError VRCompositorError; 1100 | typedef EVRScreenshotError VRScreenshotsError; 1101 | 1102 | // OpenVR Structs 1103 | 1104 | typedef struct HmdMatrix34_t 1105 | { 1106 | float m[3][4]; //float[3][4] 1107 | } HmdMatrix34_t; 1108 | 1109 | typedef struct HmdMatrix44_t 1110 | { 1111 | float m[4][4]; //float[4][4] 1112 | } HmdMatrix44_t; 1113 | 1114 | typedef struct HmdVector3_t 1115 | { 1116 | float v[3]; //float[3] 1117 | } HmdVector3_t; 1118 | 1119 | typedef struct HmdVector4_t 1120 | { 1121 | float v[4]; //float[4] 1122 | } HmdVector4_t; 1123 | 1124 | typedef struct HmdVector3d_t 1125 | { 1126 | double v[3]; //double[3] 1127 | } HmdVector3d_t; 1128 | 1129 | typedef struct HmdVector2_t 1130 | { 1131 | float v[2]; //float[2] 1132 | } HmdVector2_t; 1133 | 1134 | typedef struct HmdQuaternion_t 1135 | { 1136 | double w; 1137 | double x; 1138 | double y; 1139 | double z; 1140 | } HmdQuaternion_t; 1141 | 1142 | typedef struct HmdColor_t 1143 | { 1144 | float r; 1145 | float g; 1146 | float b; 1147 | float a; 1148 | } HmdColor_t; 1149 | 1150 | typedef struct HmdQuad_t 1151 | { 1152 | struct HmdVector3_t vCorners[4]; //struct vr::HmdVector3_t[4] 1153 | } HmdQuad_t; 1154 | 1155 | typedef struct HmdRect2_t 1156 | { 1157 | struct HmdVector2_t vTopLeft; 1158 | struct HmdVector2_t vBottomRight; 1159 | } HmdRect2_t; 1160 | 1161 | typedef struct DistortionCoordinates_t 1162 | { 1163 | float rfRed[2]; //float[2] 1164 | float rfGreen[2]; //float[2] 1165 | float rfBlue[2]; //float[2] 1166 | } DistortionCoordinates_t; 1167 | 1168 | typedef struct Texture_t 1169 | { 1170 | void * handle; // void * 1171 | enum ETextureType eType; 1172 | enum EColorSpace eColorSpace; 1173 | } Texture_t; 1174 | 1175 | typedef struct TrackedDevicePose_t 1176 | { 1177 | struct HmdMatrix34_t mDeviceToAbsoluteTracking; 1178 | struct HmdVector3_t vVelocity; 1179 | struct HmdVector3_t vAngularVelocity; 1180 | enum ETrackingResult eTrackingResult; 1181 | bool bPoseIsValid; 1182 | bool bDeviceIsConnected; 1183 | } TrackedDevicePose_t; 1184 | 1185 | typedef struct VRTextureBounds_t 1186 | { 1187 | float uMin; 1188 | float vMin; 1189 | float uMax; 1190 | float vMax; 1191 | } VRTextureBounds_t; 1192 | 1193 | typedef struct VRTextureWithPose_t 1194 | { 1195 | struct HmdMatrix34_t mDeviceToAbsoluteTracking; 1196 | } VRTextureWithPose_t; 1197 | 1198 | typedef struct VRVulkanTextureData_t 1199 | { 1200 | uint64_t m_nImage; 1201 | struct VkDevice_T * m_pDevice; // struct VkDevice_T * 1202 | struct VkPhysicalDevice_T * m_pPhysicalDevice; // struct VkPhysicalDevice_T * 1203 | struct VkInstance_T * m_pInstance; // struct VkInstance_T * 1204 | struct VkQueue_T * m_pQueue; // struct VkQueue_T * 1205 | uint32_t m_nQueueFamilyIndex; 1206 | uint32_t m_nWidth; 1207 | uint32_t m_nHeight; 1208 | uint32_t m_nFormat; 1209 | uint32_t m_nSampleCount; 1210 | } VRVulkanTextureData_t; 1211 | 1212 | typedef struct D3D12TextureData_t 1213 | { 1214 | struct ID3D12Resource * m_pResource; // struct ID3D12Resource * 1215 | struct ID3D12CommandQueue * m_pCommandQueue; // struct ID3D12CommandQueue * 1216 | uint32_t m_nNodeMask; 1217 | } D3D12TextureData_t; 1218 | 1219 | typedef struct VREvent_Controller_t 1220 | { 1221 | uint32_t button; 1222 | } VREvent_Controller_t; 1223 | 1224 | typedef struct VREvent_Mouse_t 1225 | { 1226 | float x; 1227 | float y; 1228 | uint32_t button; 1229 | } VREvent_Mouse_t; 1230 | 1231 | typedef struct VREvent_Scroll_t 1232 | { 1233 | float xdelta; 1234 | float ydelta; 1235 | uint32_t repeatCount; 1236 | } VREvent_Scroll_t; 1237 | 1238 | typedef struct VREvent_TouchPadMove_t 1239 | { 1240 | bool bFingerDown; 1241 | float flSecondsFingerDown; 1242 | float fValueXFirst; 1243 | float fValueYFirst; 1244 | float fValueXRaw; 1245 | float fValueYRaw; 1246 | } VREvent_TouchPadMove_t; 1247 | 1248 | typedef struct VREvent_Notification_t 1249 | { 1250 | uint64_t ulUserValue; 1251 | uint32_t notificationId; 1252 | } VREvent_Notification_t; 1253 | 1254 | typedef struct VREvent_Process_t 1255 | { 1256 | uint32_t pid; 1257 | uint32_t oldPid; 1258 | bool bForced; 1259 | } VREvent_Process_t; 1260 | 1261 | typedef struct VREvent_Overlay_t 1262 | { 1263 | uint64_t overlayHandle; 1264 | } VREvent_Overlay_t; 1265 | 1266 | typedef struct VREvent_Status_t 1267 | { 1268 | uint32_t statusState; 1269 | } VREvent_Status_t; 1270 | 1271 | typedef struct VREvent_Keyboard_t 1272 | { 1273 | char * cNewInput[8]; //char[8] 1274 | uint64_t uUserValue; 1275 | } VREvent_Keyboard_t; 1276 | 1277 | typedef struct VREvent_Ipd_t 1278 | { 1279 | float ipdMeters; 1280 | } VREvent_Ipd_t; 1281 | 1282 | typedef struct VREvent_Chaperone_t 1283 | { 1284 | uint64_t m_nPreviousUniverse; 1285 | uint64_t m_nCurrentUniverse; 1286 | } VREvent_Chaperone_t; 1287 | 1288 | typedef struct VREvent_Reserved_t 1289 | { 1290 | uint64_t reserved0; 1291 | uint64_t reserved1; 1292 | } VREvent_Reserved_t; 1293 | 1294 | typedef struct VREvent_PerformanceTest_t 1295 | { 1296 | uint32_t m_nFidelityLevel; 1297 | } VREvent_PerformanceTest_t; 1298 | 1299 | typedef struct VREvent_SeatedZeroPoseReset_t 1300 | { 1301 | bool bResetBySystemMenu; 1302 | } VREvent_SeatedZeroPoseReset_t; 1303 | 1304 | typedef struct VREvent_Screenshot_t 1305 | { 1306 | uint32_t handle; 1307 | uint32_t type; 1308 | } VREvent_Screenshot_t; 1309 | 1310 | typedef struct VREvent_ScreenshotProgress_t 1311 | { 1312 | float progress; 1313 | } VREvent_ScreenshotProgress_t; 1314 | 1315 | typedef struct VREvent_ApplicationLaunch_t 1316 | { 1317 | uint32_t pid; 1318 | uint32_t unArgsHandle; 1319 | } VREvent_ApplicationLaunch_t; 1320 | 1321 | typedef struct VREvent_EditingCameraSurface_t 1322 | { 1323 | uint64_t overlayHandle; 1324 | uint32_t nVisualMode; 1325 | } VREvent_EditingCameraSurface_t; 1326 | 1327 | typedef struct VREvent_MessageOverlay_t 1328 | { 1329 | uint32_t unVRMessageOverlayResponse; 1330 | } VREvent_MessageOverlay_t; 1331 | 1332 | typedef struct VREvent_Property_t 1333 | { 1334 | PropertyContainerHandle_t container; 1335 | enum ETrackedDeviceProperty prop; 1336 | } VREvent_Property_t; 1337 | 1338 | typedef struct HiddenAreaMesh_t 1339 | { 1340 | struct HmdVector2_t * pVertexData; // const struct vr::HmdVector2_t * 1341 | uint32_t unTriangleCount; 1342 | } HiddenAreaMesh_t; 1343 | 1344 | typedef struct VRControllerAxis_t 1345 | { 1346 | float x; 1347 | float y; 1348 | } VRControllerAxis_t; 1349 | 1350 | typedef struct VRControllerState_t 1351 | { 1352 | uint32_t unPacketNum; 1353 | uint64_t ulButtonPressed; 1354 | uint64_t ulButtonTouched; 1355 | struct VRControllerAxis_t rAxis[5]; //struct vr::VRControllerAxis_t[5] 1356 | } VRControllerState_t; 1357 | 1358 | typedef struct Compositor_OverlaySettings 1359 | { 1360 | uint32_t size; 1361 | bool curved; 1362 | bool antialias; 1363 | float scale; 1364 | float distance; 1365 | float alpha; 1366 | float uOffset; 1367 | float vOffset; 1368 | float uScale; 1369 | float vScale; 1370 | float gridDivs; 1371 | float gridWidth; 1372 | float gridScale; 1373 | struct HmdMatrix44_t transform; 1374 | } Compositor_OverlaySettings; 1375 | 1376 | typedef struct CameraVideoStreamFrameHeader_t 1377 | { 1378 | enum EVRTrackedCameraFrameType eFrameType; 1379 | uint32_t nWidth; 1380 | uint32_t nHeight; 1381 | uint32_t nBytesPerPixel; 1382 | uint32_t nFrameSequence; 1383 | struct TrackedDevicePose_t standingTrackedDevicePose; 1384 | } CameraVideoStreamFrameHeader_t; 1385 | 1386 | typedef struct AppOverrideKeys_t 1387 | { 1388 | char * pchKey; // const char * 1389 | char * pchValue; // const char * 1390 | } AppOverrideKeys_t; 1391 | 1392 | typedef struct Compositor_FrameTiming 1393 | { 1394 | uint32_t m_nSize; 1395 | uint32_t m_nFrameIndex; 1396 | uint32_t m_nNumFramePresents; 1397 | uint32_t m_nNumMisPresented; 1398 | uint32_t m_nNumDroppedFrames; 1399 | uint32_t m_nReprojectionFlags; 1400 | double m_flSystemTimeInSeconds; 1401 | float m_flPreSubmitGpuMs; 1402 | float m_flPostSubmitGpuMs; 1403 | float m_flTotalRenderGpuMs; 1404 | float m_flCompositorRenderGpuMs; 1405 | float m_flCompositorRenderCpuMs; 1406 | float m_flCompositorIdleCpuMs; 1407 | float m_flClientFrameIntervalMs; 1408 | float m_flPresentCallCpuMs; 1409 | float m_flWaitForPresentCpuMs; 1410 | float m_flSubmitFrameMs; 1411 | float m_flWaitGetPosesCalledMs; 1412 | float m_flNewPosesReadyMs; 1413 | float m_flNewFrameReadyMs; 1414 | float m_flCompositorUpdateStartMs; 1415 | float m_flCompositorUpdateEndMs; 1416 | float m_flCompositorRenderStartMs; 1417 | TrackedDevicePose_t m_HmdPose; 1418 | } Compositor_FrameTiming; 1419 | 1420 | typedef struct Compositor_CumulativeStats 1421 | { 1422 | uint32_t m_nPid; 1423 | uint32_t m_nNumFramePresents; 1424 | uint32_t m_nNumDroppedFrames; 1425 | uint32_t m_nNumReprojectedFrames; 1426 | uint32_t m_nNumFramePresentsOnStartup; 1427 | uint32_t m_nNumDroppedFramesOnStartup; 1428 | uint32_t m_nNumReprojectedFramesOnStartup; 1429 | uint32_t m_nNumLoading; 1430 | uint32_t m_nNumFramePresentsLoading; 1431 | uint32_t m_nNumDroppedFramesLoading; 1432 | uint32_t m_nNumReprojectedFramesLoading; 1433 | uint32_t m_nNumTimedOut; 1434 | uint32_t m_nNumFramePresentsTimedOut; 1435 | uint32_t m_nNumDroppedFramesTimedOut; 1436 | uint32_t m_nNumReprojectedFramesTimedOut; 1437 | } Compositor_CumulativeStats; 1438 | 1439 | typedef struct VROverlayIntersectionParams_t 1440 | { 1441 | struct HmdVector3_t vSource; 1442 | struct HmdVector3_t vDirection; 1443 | enum ETrackingUniverseOrigin eOrigin; 1444 | } VROverlayIntersectionParams_t; 1445 | 1446 | typedef struct VROverlayIntersectionResults_t 1447 | { 1448 | struct HmdVector3_t vPoint; 1449 | struct HmdVector3_t vNormal; 1450 | struct HmdVector2_t vUVs; 1451 | float fDistance; 1452 | } VROverlayIntersectionResults_t; 1453 | 1454 | typedef struct IntersectionMaskRectangle_t 1455 | { 1456 | float m_flTopLeftX; 1457 | float m_flTopLeftY; 1458 | float m_flWidth; 1459 | float m_flHeight; 1460 | } IntersectionMaskRectangle_t; 1461 | 1462 | typedef struct IntersectionMaskCircle_t 1463 | { 1464 | float m_flCenterX; 1465 | float m_flCenterY; 1466 | float m_flRadius; 1467 | } IntersectionMaskCircle_t; 1468 | 1469 | typedef struct RenderModel_ComponentState_t 1470 | { 1471 | struct HmdMatrix34_t mTrackingToComponentRenderModel; 1472 | struct HmdMatrix34_t mTrackingToComponentLocal; 1473 | VRComponentProperties uProperties; 1474 | } RenderModel_ComponentState_t; 1475 | 1476 | typedef struct RenderModel_Vertex_t 1477 | { 1478 | struct HmdVector3_t vPosition; 1479 | struct HmdVector3_t vNormal; 1480 | float rfTextureCoord[2]; //float[2] 1481 | } RenderModel_Vertex_t; 1482 | 1483 | #if defined(__linux__) || defined(__APPLE__) 1484 | #pragma pack( push, 4 ) 1485 | #endif 1486 | typedef struct RenderModel_TextureMap_t 1487 | { 1488 | uint16_t unWidth; 1489 | uint16_t unHeight; 1490 | uint8_t * rubTextureMapData; // const uint8_t * 1491 | } RenderModel_TextureMap_t; 1492 | 1493 | #if defined(__linux__) || defined(__APPLE__) 1494 | #pragma pack( pop ) 1495 | #endif 1496 | #if defined(__linux__) || defined(__APPLE__) 1497 | #pragma pack( push, 4 ) 1498 | #endif 1499 | typedef struct RenderModel_t 1500 | { 1501 | struct RenderModel_Vertex_t * rVertexData; // const struct vr::RenderModel_Vertex_t * 1502 | uint32_t unVertexCount; 1503 | uint16_t * rIndexData; // const uint16_t * 1504 | uint32_t unTriangleCount; 1505 | TextureID_t diffuseTextureId; 1506 | } RenderModel_t; 1507 | 1508 | #if defined(__linux__) || defined(__APPLE__) 1509 | #pragma pack( pop ) 1510 | #endif 1511 | typedef struct RenderModel_ControllerMode_State_t 1512 | { 1513 | bool bScrollWheelVisible; 1514 | } RenderModel_ControllerMode_State_t; 1515 | 1516 | typedef struct NotificationBitmap_t 1517 | { 1518 | void * m_pImageData; // void * 1519 | int32_t m_nWidth; 1520 | int32_t m_nHeight; 1521 | int32_t m_nBytesPerPixel; 1522 | } NotificationBitmap_t; 1523 | 1524 | typedef struct COpenVRContext 1525 | { 1526 | intptr_t m_pVRSystem; // class vr::IVRSystem * 1527 | intptr_t m_pVRChaperone; // class vr::IVRChaperone * 1528 | intptr_t m_pVRChaperoneSetup; // class vr::IVRChaperoneSetup * 1529 | intptr_t m_pVRCompositor; // class vr::IVRCompositor * 1530 | intptr_t m_pVROverlay; // class vr::IVROverlay * 1531 | intptr_t m_pVRResources; // class vr::IVRResources * 1532 | intptr_t m_pVRRenderModels; // class vr::IVRRenderModels * 1533 | intptr_t m_pVRExtendedDisplay; // class vr::IVRExtendedDisplay * 1534 | intptr_t m_pVRSettings; // class vr::IVRSettings * 1535 | intptr_t m_pVRApplications; // class vr::IVRApplications * 1536 | intptr_t m_pVRTrackedCamera; // class vr::IVRTrackedCamera * 1537 | intptr_t m_pVRScreenshots; // class vr::IVRScreenshots * 1538 | intptr_t m_pVRDriverManager; // class vr::IVRDriverManager * 1539 | } COpenVRContext; 1540 | 1541 | 1542 | typedef union 1543 | { 1544 | VREvent_Reserved_t reserved; 1545 | VREvent_Controller_t controller; 1546 | VREvent_Mouse_t mouse; 1547 | VREvent_Scroll_t scroll; 1548 | VREvent_Process_t process; 1549 | VREvent_Notification_t notification; 1550 | VREvent_Overlay_t overlay; 1551 | VREvent_Status_t status; 1552 | VREvent_Keyboard_t keyboard; 1553 | VREvent_Ipd_t ipd; 1554 | VREvent_Chaperone_t chaperone; 1555 | VREvent_PerformanceTest_t performanceTest; 1556 | VREvent_TouchPadMove_t touchPadMove; 1557 | VREvent_SeatedZeroPoseReset_t seatedZeroPoseReset; 1558 | } VREvent_Data_t; 1559 | 1560 | /** An event posted by the server to all running applications */ 1561 | struct VREvent_t 1562 | { 1563 | uint32_t eventType; // EVREventType enum 1564 | TrackedDeviceIndex_t trackedDeviceIndex; 1565 | float eventAgeSeconds; 1566 | // event data must be the end of the struct as its size is variable 1567 | VREvent_Data_t data; 1568 | }; 1569 | 1570 | 1571 | typedef union 1572 | { 1573 | IntersectionMaskRectangle_t m_Rectangle; 1574 | IntersectionMaskCircle_t m_Circle; 1575 | } VROverlayIntersectionMaskPrimitive_Data_t; 1576 | 1577 | struct VROverlayIntersectionMaskPrimitive_t 1578 | { 1579 | EVROverlayIntersectionMaskPrimitiveType m_nPrimitiveType; 1580 | VROverlayIntersectionMaskPrimitive_Data_t m_Primitive; 1581 | }; 1582 | 1583 | 1584 | // OpenVR Function Pointer Tables 1585 | 1586 | struct VR_IVRSystem_FnTable 1587 | { 1588 | void (OPENVR_FNTABLE_CALLTYPE *GetRecommendedRenderTargetSize)(uint32_t * pnWidth, uint32_t * pnHeight); 1589 | struct HmdMatrix44_t (OPENVR_FNTABLE_CALLTYPE *GetProjectionMatrix)(EVREye eEye, float fNearZ, float fFarZ); 1590 | void (OPENVR_FNTABLE_CALLTYPE *GetProjectionRaw)(EVREye eEye, float * pfLeft, float * pfRight, float * pfTop, float * pfBottom); 1591 | bool (OPENVR_FNTABLE_CALLTYPE *ComputeDistortion)(EVREye eEye, float fU, float fV, struct DistortionCoordinates_t * pDistortionCoordinates); 1592 | struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetEyeToHeadTransform)(EVREye eEye); 1593 | bool (OPENVR_FNTABLE_CALLTYPE *GetTimeSinceLastVsync)(float * pfSecondsSinceLastVsync, uint64_t * pulFrameCounter); 1594 | int32_t (OPENVR_FNTABLE_CALLTYPE *GetD3D9AdapterIndex)(); 1595 | void (OPENVR_FNTABLE_CALLTYPE *GetDXGIOutputInfo)(int32_t * pnAdapterIndex); 1596 | void (OPENVR_FNTABLE_CALLTYPE *GetOutputDevice)(uint64_t * pnDevice, ETextureType textureType, struct VkInstance_T * pInstance); 1597 | bool (OPENVR_FNTABLE_CALLTYPE *IsDisplayOnDesktop)(); 1598 | bool (OPENVR_FNTABLE_CALLTYPE *SetDisplayVisibility)(bool bIsVisibleOnDesktop); 1599 | void (OPENVR_FNTABLE_CALLTYPE *GetDeviceToAbsoluteTrackingPose)(ETrackingUniverseOrigin eOrigin, float fPredictedSecondsToPhotonsFromNow, struct TrackedDevicePose_t * pTrackedDevicePoseArray, uint32_t unTrackedDevicePoseArrayCount); 1600 | void (OPENVR_FNTABLE_CALLTYPE *ResetSeatedZeroPose)(); 1601 | struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetSeatedZeroPoseToStandingAbsoluteTrackingPose)(); 1602 | struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetRawZeroPoseToStandingAbsoluteTrackingPose)(); 1603 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetSortedTrackedDeviceIndicesOfClass)(ETrackedDeviceClass eTrackedDeviceClass, TrackedDeviceIndex_t * punTrackedDeviceIndexArray, uint32_t unTrackedDeviceIndexArrayCount, TrackedDeviceIndex_t unRelativeToTrackedDeviceIndex); 1604 | EDeviceActivityLevel (OPENVR_FNTABLE_CALLTYPE *GetTrackedDeviceActivityLevel)(TrackedDeviceIndex_t unDeviceId); 1605 | void (OPENVR_FNTABLE_CALLTYPE *ApplyTransform)(struct TrackedDevicePose_t * pOutputPose, struct TrackedDevicePose_t * pTrackedDevicePose, struct HmdMatrix34_t * pTransform); 1606 | TrackedDeviceIndex_t (OPENVR_FNTABLE_CALLTYPE *GetTrackedDeviceIndexForControllerRole)(ETrackedControllerRole unDeviceType); 1607 | ETrackedControllerRole (OPENVR_FNTABLE_CALLTYPE *GetControllerRoleForTrackedDeviceIndex)(TrackedDeviceIndex_t unDeviceIndex); 1608 | ETrackedDeviceClass (OPENVR_FNTABLE_CALLTYPE *GetTrackedDeviceClass)(TrackedDeviceIndex_t unDeviceIndex); 1609 | bool (OPENVR_FNTABLE_CALLTYPE *IsTrackedDeviceConnected)(TrackedDeviceIndex_t unDeviceIndex); 1610 | bool (OPENVR_FNTABLE_CALLTYPE *GetBoolTrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError); 1611 | float (OPENVR_FNTABLE_CALLTYPE *GetFloatTrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError); 1612 | int32_t (OPENVR_FNTABLE_CALLTYPE *GetInt32TrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError); 1613 | uint64_t (OPENVR_FNTABLE_CALLTYPE *GetUint64TrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError); 1614 | struct HmdMatrix34_t (OPENVR_FNTABLE_CALLTYPE *GetMatrix34TrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, ETrackedPropertyError * pError); 1615 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetStringTrackedDeviceProperty)(TrackedDeviceIndex_t unDeviceIndex, ETrackedDeviceProperty prop, char * pchValue, uint32_t unBufferSize, ETrackedPropertyError * pError); 1616 | char * (OPENVR_FNTABLE_CALLTYPE *GetPropErrorNameFromEnum)(ETrackedPropertyError error); 1617 | bool (OPENVR_FNTABLE_CALLTYPE *PollNextEvent)(struct VREvent_t * pEvent, uint32_t uncbVREvent); 1618 | bool (OPENVR_FNTABLE_CALLTYPE *PollNextEventWithPose)(ETrackingUniverseOrigin eOrigin, struct VREvent_t * pEvent, uint32_t uncbVREvent, TrackedDevicePose_t * pTrackedDevicePose); 1619 | char * (OPENVR_FNTABLE_CALLTYPE *GetEventTypeNameFromEnum)(EVREventType eType); 1620 | struct HiddenAreaMesh_t (OPENVR_FNTABLE_CALLTYPE *GetHiddenAreaMesh)(EVREye eEye, EHiddenAreaMeshType type); 1621 | bool (OPENVR_FNTABLE_CALLTYPE *GetControllerState)(TrackedDeviceIndex_t unControllerDeviceIndex, VRControllerState_t * pControllerState, uint32_t unControllerStateSize); 1622 | bool (OPENVR_FNTABLE_CALLTYPE *GetControllerStateWithPose)(ETrackingUniverseOrigin eOrigin, TrackedDeviceIndex_t unControllerDeviceIndex, VRControllerState_t * pControllerState, uint32_t unControllerStateSize, struct TrackedDevicePose_t * pTrackedDevicePose); 1623 | void (OPENVR_FNTABLE_CALLTYPE *TriggerHapticPulse)(TrackedDeviceIndex_t unControllerDeviceIndex, uint32_t unAxisId, unsigned short usDurationMicroSec); 1624 | char * (OPENVR_FNTABLE_CALLTYPE *GetButtonIdNameFromEnum)(EVRButtonId eButtonId); 1625 | char * (OPENVR_FNTABLE_CALLTYPE *GetControllerAxisTypeNameFromEnum)(EVRControllerAxisType eAxisType); 1626 | bool (OPENVR_FNTABLE_CALLTYPE *CaptureInputFocus)(); 1627 | void (OPENVR_FNTABLE_CALLTYPE *ReleaseInputFocus)(); 1628 | bool (OPENVR_FNTABLE_CALLTYPE *IsInputFocusCapturedByAnotherProcess)(); 1629 | uint32_t (OPENVR_FNTABLE_CALLTYPE *DriverDebugRequest)(TrackedDeviceIndex_t unDeviceIndex, char * pchRequest, char * pchResponseBuffer, uint32_t unResponseBufferSize); 1630 | EVRFirmwareError (OPENVR_FNTABLE_CALLTYPE *PerformFirmwareUpdate)(TrackedDeviceIndex_t unDeviceIndex); 1631 | void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_Exiting)(); 1632 | void (OPENVR_FNTABLE_CALLTYPE *AcknowledgeQuit_UserPrompt)(); 1633 | }; 1634 | 1635 | struct VR_IVRExtendedDisplay_FnTable 1636 | { 1637 | void (OPENVR_FNTABLE_CALLTYPE *GetWindowBounds)(int32_t * pnX, int32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight); 1638 | void (OPENVR_FNTABLE_CALLTYPE *GetEyeOutputViewport)(EVREye eEye, uint32_t * pnX, uint32_t * pnY, uint32_t * pnWidth, uint32_t * pnHeight); 1639 | void (OPENVR_FNTABLE_CALLTYPE *GetDXGIOutputInfo)(int32_t * pnAdapterIndex, int32_t * pnAdapterOutputIndex); 1640 | }; 1641 | 1642 | struct VR_IVRTrackedCamera_FnTable 1643 | { 1644 | char * (OPENVR_FNTABLE_CALLTYPE *GetCameraErrorNameFromEnum)(EVRTrackedCameraError eCameraError); 1645 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *HasCamera)(TrackedDeviceIndex_t nDeviceIndex, bool * pHasCamera); 1646 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraFrameSize)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, uint32_t * pnWidth, uint32_t * pnHeight, uint32_t * pnFrameBufferSize); 1647 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraIntrinsics)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, HmdVector2_t * pFocalLength, HmdVector2_t * pCenter); 1648 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetCameraProjection)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, float flZNear, float flZFar, HmdMatrix44_t * pProjection); 1649 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *AcquireVideoStreamingService)(TrackedDeviceIndex_t nDeviceIndex, TrackedCameraHandle_t * pHandle); 1650 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoStreamingService)(TrackedCameraHandle_t hTrackedCamera); 1651 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamFrameBuffer)(TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pFrameBuffer, uint32_t nFrameBufferSize, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize); 1652 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamTextureSize)(TrackedDeviceIndex_t nDeviceIndex, EVRTrackedCameraFrameType eFrameType, VRTextureBounds_t * pTextureBounds, uint32_t * pnWidth, uint32_t * pnHeight); 1653 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamTextureD3D11)(TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize); 1654 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *GetVideoStreamTextureGL)(TrackedCameraHandle_t hTrackedCamera, EVRTrackedCameraFrameType eFrameType, glUInt_t * pglTextureId, CameraVideoStreamFrameHeader_t * pFrameHeader, uint32_t nFrameHeaderSize); 1655 | EVRTrackedCameraError (OPENVR_FNTABLE_CALLTYPE *ReleaseVideoStreamTextureGL)(TrackedCameraHandle_t hTrackedCamera, glUInt_t glTextureId); 1656 | }; 1657 | 1658 | struct VR_IVRApplications_FnTable 1659 | { 1660 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *AddApplicationManifest)(char * pchApplicationManifestFullPath, bool bTemporary); 1661 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *RemoveApplicationManifest)(char * pchApplicationManifestFullPath); 1662 | bool (OPENVR_FNTABLE_CALLTYPE *IsApplicationInstalled)(char * pchAppKey); 1663 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationCount)(); 1664 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetApplicationKeyByIndex)(uint32_t unApplicationIndex, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen); 1665 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetApplicationKeyByProcessId)(uint32_t unProcessId, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen); 1666 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchApplication)(char * pchAppKey); 1667 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchTemplateApplication)(char * pchTemplateAppKey, char * pchNewAppKey, struct AppOverrideKeys_t * pKeys, uint32_t unKeys); 1668 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchApplicationFromMimeType)(char * pchMimeType, char * pchArgs); 1669 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchDashboardOverlay)(char * pchAppKey); 1670 | bool (OPENVR_FNTABLE_CALLTYPE *CancelApplicationLaunch)(char * pchAppKey); 1671 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *IdentifyApplication)(uint32_t unProcessId, char * pchAppKey); 1672 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationProcessId)(char * pchAppKey); 1673 | char * (OPENVR_FNTABLE_CALLTYPE *GetApplicationsErrorNameFromEnum)(EVRApplicationError error); 1674 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationPropertyString)(char * pchAppKey, EVRApplicationProperty eProperty, char * pchPropertyValueBuffer, uint32_t unPropertyValueBufferLen, EVRApplicationError * peError); 1675 | bool (OPENVR_FNTABLE_CALLTYPE *GetApplicationPropertyBool)(char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError); 1676 | uint64_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationPropertyUint64)(char * pchAppKey, EVRApplicationProperty eProperty, EVRApplicationError * peError); 1677 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *SetApplicationAutoLaunch)(char * pchAppKey, bool bAutoLaunch); 1678 | bool (OPENVR_FNTABLE_CALLTYPE *GetApplicationAutoLaunch)(char * pchAppKey); 1679 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *SetDefaultApplicationForMimeType)(char * pchAppKey, char * pchMimeType); 1680 | bool (OPENVR_FNTABLE_CALLTYPE *GetDefaultApplicationForMimeType)(char * pchMimeType, char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen); 1681 | bool (OPENVR_FNTABLE_CALLTYPE *GetApplicationSupportedMimeTypes)(char * pchAppKey, char * pchMimeTypesBuffer, uint32_t unMimeTypesBuffer); 1682 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationsThatSupportMimeType)(char * pchMimeType, char * pchAppKeysThatSupportBuffer, uint32_t unAppKeysThatSupportBuffer); 1683 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetApplicationLaunchArguments)(uint32_t unHandle, char * pchArgs, uint32_t unArgs); 1684 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *GetStartingApplication)(char * pchAppKeyBuffer, uint32_t unAppKeyBufferLen); 1685 | EVRApplicationTransitionState (OPENVR_FNTABLE_CALLTYPE *GetTransitionState)(); 1686 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *PerformApplicationPrelaunchCheck)(char * pchAppKey); 1687 | char * (OPENVR_FNTABLE_CALLTYPE *GetApplicationsTransitionStateNameFromEnum)(EVRApplicationTransitionState state); 1688 | bool (OPENVR_FNTABLE_CALLTYPE *IsQuitUserPromptRequested)(); 1689 | EVRApplicationError (OPENVR_FNTABLE_CALLTYPE *LaunchInternalProcess)(char * pchBinaryPath, char * pchArguments, char * pchWorkingDirectory); 1690 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetCurrentSceneProcessId)(); 1691 | }; 1692 | 1693 | struct VR_IVRChaperone_FnTable 1694 | { 1695 | ChaperoneCalibrationState (OPENVR_FNTABLE_CALLTYPE *GetCalibrationState)(); 1696 | bool (OPENVR_FNTABLE_CALLTYPE *GetPlayAreaSize)(float * pSizeX, float * pSizeZ); 1697 | bool (OPENVR_FNTABLE_CALLTYPE *GetPlayAreaRect)(struct HmdQuad_t * rect); 1698 | void (OPENVR_FNTABLE_CALLTYPE *ReloadInfo)(); 1699 | void (OPENVR_FNTABLE_CALLTYPE *SetSceneColor)(struct HmdColor_t color); 1700 | void (OPENVR_FNTABLE_CALLTYPE *GetBoundsColor)(struct HmdColor_t * pOutputColorArray, int nNumOutputColors, float flCollisionBoundsFadeDistance, struct HmdColor_t * pOutputCameraColor); 1701 | bool (OPENVR_FNTABLE_CALLTYPE *AreBoundsVisible)(); 1702 | void (OPENVR_FNTABLE_CALLTYPE *ForceBoundsVisible)(bool bForce); 1703 | }; 1704 | 1705 | struct VR_IVRChaperoneSetup_FnTable 1706 | { 1707 | bool (OPENVR_FNTABLE_CALLTYPE *CommitWorkingCopy)(EChaperoneConfigFile configFile); 1708 | void (OPENVR_FNTABLE_CALLTYPE *RevertWorkingCopy)(); 1709 | bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingPlayAreaSize)(float * pSizeX, float * pSizeZ); 1710 | bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingPlayAreaRect)(struct HmdQuad_t * rect); 1711 | bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount); 1712 | bool (OPENVR_FNTABLE_CALLTYPE *GetLiveCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount); 1713 | bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose); 1714 | bool (OPENVR_FNTABLE_CALLTYPE *GetWorkingStandingZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatStandingZeroPoseToRawTrackingPose); 1715 | void (OPENVR_FNTABLE_CALLTYPE *SetWorkingPlayAreaSize)(float sizeX, float sizeZ); 1716 | void (OPENVR_FNTABLE_CALLTYPE *SetWorkingCollisionBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount); 1717 | void (OPENVR_FNTABLE_CALLTYPE *SetWorkingSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pMatSeatedZeroPoseToRawTrackingPose); 1718 | void (OPENVR_FNTABLE_CALLTYPE *SetWorkingStandingZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pMatStandingZeroPoseToRawTrackingPose); 1719 | void (OPENVR_FNTABLE_CALLTYPE *ReloadFromDisk)(EChaperoneConfigFile configFile); 1720 | bool (OPENVR_FNTABLE_CALLTYPE *GetLiveSeatedZeroPoseToRawTrackingPose)(struct HmdMatrix34_t * pmatSeatedZeroPoseToRawTrackingPose); 1721 | void (OPENVR_FNTABLE_CALLTYPE *SetWorkingCollisionBoundsTagsInfo)(uint8_t * pTagsBuffer, uint32_t unTagCount); 1722 | bool (OPENVR_FNTABLE_CALLTYPE *GetLiveCollisionBoundsTagsInfo)(uint8_t * pTagsBuffer, uint32_t * punTagCount); 1723 | bool (OPENVR_FNTABLE_CALLTYPE *SetWorkingPhysicalBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t unQuadsCount); 1724 | bool (OPENVR_FNTABLE_CALLTYPE *GetLivePhysicalBoundsInfo)(struct HmdQuad_t * pQuadsBuffer, uint32_t * punQuadsCount); 1725 | bool (OPENVR_FNTABLE_CALLTYPE *ExportLiveToBuffer)(char * pBuffer, uint32_t * pnBufferLength); 1726 | bool (OPENVR_FNTABLE_CALLTYPE *ImportFromBufferToWorking)(char * pBuffer, uint32_t nImportFlags); 1727 | }; 1728 | 1729 | struct VR_IVRCompositor_FnTable 1730 | { 1731 | void (OPENVR_FNTABLE_CALLTYPE *SetTrackingSpace)(ETrackingUniverseOrigin eOrigin); 1732 | ETrackingUniverseOrigin (OPENVR_FNTABLE_CALLTYPE *GetTrackingSpace)(); 1733 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *WaitGetPoses)(struct TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, struct TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount); 1734 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetLastPoses)(struct TrackedDevicePose_t * pRenderPoseArray, uint32_t unRenderPoseArrayCount, struct TrackedDevicePose_t * pGamePoseArray, uint32_t unGamePoseArrayCount); 1735 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetLastPoseForTrackedDeviceIndex)(TrackedDeviceIndex_t unDeviceIndex, struct TrackedDevicePose_t * pOutputPose, struct TrackedDevicePose_t * pOutputGamePose); 1736 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *Submit)(EVREye eEye, struct Texture_t * pTexture, struct VRTextureBounds_t * pBounds, EVRSubmitFlags nSubmitFlags); 1737 | void (OPENVR_FNTABLE_CALLTYPE *ClearLastSubmittedFrame)(); 1738 | void (OPENVR_FNTABLE_CALLTYPE *PostPresentHandoff)(); 1739 | bool (OPENVR_FNTABLE_CALLTYPE *GetFrameTiming)(struct Compositor_FrameTiming * pTiming, uint32_t unFramesAgo); 1740 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetFrameTimings)(struct Compositor_FrameTiming * pTiming, uint32_t nFrames); 1741 | float (OPENVR_FNTABLE_CALLTYPE *GetFrameTimeRemaining)(); 1742 | void (OPENVR_FNTABLE_CALLTYPE *GetCumulativeStats)(struct Compositor_CumulativeStats * pStats, uint32_t nStatsSizeInBytes); 1743 | void (OPENVR_FNTABLE_CALLTYPE *FadeToColor)(float fSeconds, float fRed, float fGreen, float fBlue, float fAlpha, bool bBackground); 1744 | struct HmdColor_t (OPENVR_FNTABLE_CALLTYPE *GetCurrentFadeColor)(bool bBackground); 1745 | void (OPENVR_FNTABLE_CALLTYPE *FadeGrid)(float fSeconds, bool bFadeIn); 1746 | float (OPENVR_FNTABLE_CALLTYPE *GetCurrentGridAlpha)(); 1747 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *SetSkyboxOverride)(struct Texture_t * pTextures, uint32_t unTextureCount); 1748 | void (OPENVR_FNTABLE_CALLTYPE *ClearSkyboxOverride)(); 1749 | void (OPENVR_FNTABLE_CALLTYPE *CompositorBringToFront)(); 1750 | void (OPENVR_FNTABLE_CALLTYPE *CompositorGoToBack)(); 1751 | void (OPENVR_FNTABLE_CALLTYPE *CompositorQuit)(); 1752 | bool (OPENVR_FNTABLE_CALLTYPE *IsFullscreen)(); 1753 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetCurrentSceneFocusProcess)(); 1754 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetLastFrameRenderer)(); 1755 | bool (OPENVR_FNTABLE_CALLTYPE *CanRenderScene)(); 1756 | void (OPENVR_FNTABLE_CALLTYPE *ShowMirrorWindow)(); 1757 | void (OPENVR_FNTABLE_CALLTYPE *HideMirrorWindow)(); 1758 | bool (OPENVR_FNTABLE_CALLTYPE *IsMirrorWindowVisible)(); 1759 | void (OPENVR_FNTABLE_CALLTYPE *CompositorDumpImages)(); 1760 | bool (OPENVR_FNTABLE_CALLTYPE *ShouldAppRenderWithLowResources)(); 1761 | void (OPENVR_FNTABLE_CALLTYPE *ForceInterleavedReprojectionOn)(bool bOverride); 1762 | void (OPENVR_FNTABLE_CALLTYPE *ForceReconnectProcess)(); 1763 | void (OPENVR_FNTABLE_CALLTYPE *SuspendRendering)(bool bSuspend); 1764 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetMirrorTextureD3D11)(EVREye eEye, void * pD3D11DeviceOrResource, void ** ppD3D11ShaderResourceView); 1765 | void (OPENVR_FNTABLE_CALLTYPE *ReleaseMirrorTextureD3D11)(void * pD3D11ShaderResourceView); 1766 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *GetMirrorTextureGL)(EVREye eEye, glUInt_t * pglTextureId, glSharedTextureHandle_t * pglSharedTextureHandle); 1767 | bool (OPENVR_FNTABLE_CALLTYPE *ReleaseSharedGLTexture)(glUInt_t glTextureId, glSharedTextureHandle_t glSharedTextureHandle); 1768 | void (OPENVR_FNTABLE_CALLTYPE *LockGLSharedTextureForAccess)(glSharedTextureHandle_t glSharedTextureHandle); 1769 | void (OPENVR_FNTABLE_CALLTYPE *UnlockGLSharedTextureForAccess)(glSharedTextureHandle_t glSharedTextureHandle); 1770 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetVulkanInstanceExtensionsRequired)(char * pchValue, uint32_t unBufferSize); 1771 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetVulkanDeviceExtensionsRequired)(struct VkPhysicalDevice_T * pPhysicalDevice, char * pchValue, uint32_t unBufferSize); 1772 | void (OPENVR_FNTABLE_CALLTYPE *SetExplicitTimingMode)(bool bExplicitTimingMode); 1773 | EVRCompositorError (OPENVR_FNTABLE_CALLTYPE *SubmitExplicitTimingData)(); 1774 | }; 1775 | 1776 | struct VR_IVROverlay_FnTable 1777 | { 1778 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *FindOverlay)(char * pchOverlayKey, VROverlayHandle_t * pOverlayHandle); 1779 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateOverlay)(char * pchOverlayKey, char * pchOverlayName, VROverlayHandle_t * pOverlayHandle); 1780 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *DestroyOverlay)(VROverlayHandle_t ulOverlayHandle); 1781 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetHighQualityOverlay)(VROverlayHandle_t ulOverlayHandle); 1782 | VROverlayHandle_t (OPENVR_FNTABLE_CALLTYPE *GetHighQualityOverlay)(); 1783 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayKey)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError); 1784 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayName)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, EVROverlayError * pError); 1785 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayName)(VROverlayHandle_t ulOverlayHandle, char * pchName); 1786 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayImageData)(VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unBufferSize, uint32_t * punWidth, uint32_t * punHeight); 1787 | char * (OPENVR_FNTABLE_CALLTYPE *GetOverlayErrorNameFromEnum)(EVROverlayError error); 1788 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRenderingPid)(VROverlayHandle_t ulOverlayHandle, uint32_t unPID); 1789 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayRenderingPid)(VROverlayHandle_t ulOverlayHandle); 1790 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayFlag)(VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool bEnabled); 1791 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayFlag)(VROverlayHandle_t ulOverlayHandle, VROverlayFlags eOverlayFlag, bool * pbEnabled); 1792 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayColor)(VROverlayHandle_t ulOverlayHandle, float fRed, float fGreen, float fBlue); 1793 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayColor)(VROverlayHandle_t ulOverlayHandle, float * pfRed, float * pfGreen, float * pfBlue); 1794 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayAlpha)(VROverlayHandle_t ulOverlayHandle, float fAlpha); 1795 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayAlpha)(VROverlayHandle_t ulOverlayHandle, float * pfAlpha); 1796 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTexelAspect)(VROverlayHandle_t ulOverlayHandle, float fTexelAspect); 1797 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTexelAspect)(VROverlayHandle_t ulOverlayHandle, float * pfTexelAspect); 1798 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlaySortOrder)(VROverlayHandle_t ulOverlayHandle, uint32_t unSortOrder); 1799 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlaySortOrder)(VROverlayHandle_t ulOverlayHandle, uint32_t * punSortOrder); 1800 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayWidthInMeters)(VROverlayHandle_t ulOverlayHandle, float fWidthInMeters); 1801 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayWidthInMeters)(VROverlayHandle_t ulOverlayHandle, float * pfWidthInMeters); 1802 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayAutoCurveDistanceRangeInMeters)(VROverlayHandle_t ulOverlayHandle, float fMinDistanceInMeters, float fMaxDistanceInMeters); 1803 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayAutoCurveDistanceRangeInMeters)(VROverlayHandle_t ulOverlayHandle, float * pfMinDistanceInMeters, float * pfMaxDistanceInMeters); 1804 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTextureColorSpace)(VROverlayHandle_t ulOverlayHandle, EColorSpace eTextureColorSpace); 1805 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTextureColorSpace)(VROverlayHandle_t ulOverlayHandle, EColorSpace * peTextureColorSpace); 1806 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTextureBounds)(VROverlayHandle_t ulOverlayHandle, struct VRTextureBounds_t * pOverlayTextureBounds); 1807 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTextureBounds)(VROverlayHandle_t ulOverlayHandle, struct VRTextureBounds_t * pOverlayTextureBounds); 1808 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetOverlayRenderModel)(VROverlayHandle_t ulOverlayHandle, char * pchValue, uint32_t unBufferSize, struct HmdColor_t * pColor, EVROverlayError * pError); 1809 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRenderModel)(VROverlayHandle_t ulOverlayHandle, char * pchRenderModel, struct HmdColor_t * pColor); 1810 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformType)(VROverlayHandle_t ulOverlayHandle, VROverlayTransformType * peTransformType); 1811 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformAbsolute)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToOverlayTransform); 1812 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformAbsolute)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin * peTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToOverlayTransform); 1813 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformTrackedDeviceRelative)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unTrackedDevice, struct HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform); 1814 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformTrackedDeviceRelative)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punTrackedDevice, struct HmdMatrix34_t * pmatTrackedDeviceToOverlayTransform); 1815 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformTrackedDeviceComponent)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unDeviceIndex, char * pchComponentName); 1816 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformTrackedDeviceComponent)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t * punDeviceIndex, char * pchComponentName, uint32_t unComponentNameSize); 1817 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTransformOverlayRelative)(VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t * ulOverlayHandleParent, struct HmdMatrix34_t * pmatParentOverlayToOverlayTransform); 1818 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTransformOverlayRelative)(VROverlayHandle_t ulOverlayHandle, VROverlayHandle_t ulOverlayHandleParent, struct HmdMatrix34_t * pmatParentOverlayToOverlayTransform); 1819 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowOverlay)(VROverlayHandle_t ulOverlayHandle); 1820 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *HideOverlay)(VROverlayHandle_t ulOverlayHandle); 1821 | bool (OPENVR_FNTABLE_CALLTYPE *IsOverlayVisible)(VROverlayHandle_t ulOverlayHandle); 1822 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetTransformForOverlayCoordinates)(VROverlayHandle_t ulOverlayHandle, ETrackingUniverseOrigin eTrackingOrigin, struct HmdVector2_t coordinatesInOverlay, struct HmdMatrix34_t * pmatTransform); 1823 | bool (OPENVR_FNTABLE_CALLTYPE *PollNextOverlayEvent)(VROverlayHandle_t ulOverlayHandle, struct VREvent_t * pEvent, uint32_t uncbVREvent); 1824 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayInputMethod)(VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod * peInputMethod); 1825 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayInputMethod)(VROverlayHandle_t ulOverlayHandle, VROverlayInputMethod eInputMethod); 1826 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayMouseScale)(VROverlayHandle_t ulOverlayHandle, struct HmdVector2_t * pvecMouseScale); 1827 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayMouseScale)(VROverlayHandle_t ulOverlayHandle, struct HmdVector2_t * pvecMouseScale); 1828 | bool (OPENVR_FNTABLE_CALLTYPE *ComputeOverlayIntersection)(VROverlayHandle_t ulOverlayHandle, struct VROverlayIntersectionParams_t * pParams, struct VROverlayIntersectionResults_t * pResults); 1829 | bool (OPENVR_FNTABLE_CALLTYPE *HandleControllerOverlayInteractionAsMouse)(VROverlayHandle_t ulOverlayHandle, TrackedDeviceIndex_t unControllerDeviceIndex); 1830 | bool (OPENVR_FNTABLE_CALLTYPE *IsHoverTargetOverlay)(VROverlayHandle_t ulOverlayHandle); 1831 | VROverlayHandle_t (OPENVR_FNTABLE_CALLTYPE *GetGamepadFocusOverlay)(); 1832 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetGamepadFocusOverlay)(VROverlayHandle_t ulNewFocusOverlay); 1833 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayNeighbor)(EOverlayDirection eDirection, VROverlayHandle_t ulFrom, VROverlayHandle_t ulTo); 1834 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *MoveGamepadFocusToNeighbor)(EOverlayDirection eDirection, VROverlayHandle_t ulFrom); 1835 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayTexture)(VROverlayHandle_t ulOverlayHandle, struct Texture_t * pTexture); 1836 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ClearOverlayTexture)(VROverlayHandle_t ulOverlayHandle); 1837 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayRaw)(VROverlayHandle_t ulOverlayHandle, void * pvBuffer, uint32_t unWidth, uint32_t unHeight, uint32_t unDepth); 1838 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayFromFile)(VROverlayHandle_t ulOverlayHandle, char * pchFilePath); 1839 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTexture)(VROverlayHandle_t ulOverlayHandle, void ** pNativeTextureHandle, void * pNativeTextureRef, uint32_t * pWidth, uint32_t * pHeight, uint32_t * pNativeFormat, ETextureType * pAPIType, EColorSpace * pColorSpace, struct VRTextureBounds_t * pTextureBounds); 1840 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ReleaseNativeOverlayHandle)(VROverlayHandle_t ulOverlayHandle, void * pNativeTextureHandle); 1841 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayTextureSize)(VROverlayHandle_t ulOverlayHandle, uint32_t * pWidth, uint32_t * pHeight); 1842 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *CreateDashboardOverlay)(char * pchOverlayKey, char * pchOverlayFriendlyName, VROverlayHandle_t * pMainHandle, VROverlayHandle_t * pThumbnailHandle); 1843 | bool (OPENVR_FNTABLE_CALLTYPE *IsDashboardVisible)(); 1844 | bool (OPENVR_FNTABLE_CALLTYPE *IsActiveDashboardOverlay)(VROverlayHandle_t ulOverlayHandle); 1845 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetDashboardOverlaySceneProcess)(VROverlayHandle_t ulOverlayHandle, uint32_t unProcessId); 1846 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetDashboardOverlaySceneProcess)(VROverlayHandle_t ulOverlayHandle, uint32_t * punProcessId); 1847 | void (OPENVR_FNTABLE_CALLTYPE *ShowDashboard)(char * pchOverlayToShow); 1848 | TrackedDeviceIndex_t (OPENVR_FNTABLE_CALLTYPE *GetPrimaryDashboardDevice)(); 1849 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowKeyboard)(EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, char * pchDescription, uint32_t unCharMax, char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue); 1850 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *ShowKeyboardForOverlay)(VROverlayHandle_t ulOverlayHandle, EGamepadTextInputMode eInputMode, EGamepadTextInputLineMode eLineInputMode, char * pchDescription, uint32_t unCharMax, char * pchExistingText, bool bUseMinimalMode, uint64_t uUserValue); 1851 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetKeyboardText)(char * pchText, uint32_t cchText); 1852 | void (OPENVR_FNTABLE_CALLTYPE *HideKeyboard)(); 1853 | void (OPENVR_FNTABLE_CALLTYPE *SetKeyboardTransformAbsolute)(ETrackingUniverseOrigin eTrackingOrigin, struct HmdMatrix34_t * pmatTrackingOriginToKeyboardTransform); 1854 | void (OPENVR_FNTABLE_CALLTYPE *SetKeyboardPositionForOverlay)(VROverlayHandle_t ulOverlayHandle, struct HmdRect2_t avoidRect); 1855 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *SetOverlayIntersectionMask)(VROverlayHandle_t ulOverlayHandle, struct VROverlayIntersectionMaskPrimitive_t * pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize); 1856 | EVROverlayError (OPENVR_FNTABLE_CALLTYPE *GetOverlayFlags)(VROverlayHandle_t ulOverlayHandle, uint32_t * pFlags); 1857 | VRMessageOverlayResponse (OPENVR_FNTABLE_CALLTYPE *ShowMessageOverlay)(char * pchText, char * pchCaption, char * pchButton0Text, char * pchButton1Text, char * pchButton2Text, char * pchButton3Text); 1858 | void (OPENVR_FNTABLE_CALLTYPE *CloseMessageOverlay)(); 1859 | }; 1860 | 1861 | struct VR_IVRRenderModels_FnTable 1862 | { 1863 | EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadRenderModel_Async)(char * pchRenderModelName, struct RenderModel_t ** ppRenderModel); 1864 | void (OPENVR_FNTABLE_CALLTYPE *FreeRenderModel)(struct RenderModel_t * pRenderModel); 1865 | EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadTexture_Async)(TextureID_t textureId, struct RenderModel_TextureMap_t ** ppTexture); 1866 | void (OPENVR_FNTABLE_CALLTYPE *FreeTexture)(struct RenderModel_TextureMap_t * pTexture); 1867 | EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadTextureD3D11_Async)(TextureID_t textureId, void * pD3D11Device, void ** ppD3D11Texture2D); 1868 | EVRRenderModelError (OPENVR_FNTABLE_CALLTYPE *LoadIntoTextureD3D11_Async)(TextureID_t textureId, void * pDstTexture); 1869 | void (OPENVR_FNTABLE_CALLTYPE *FreeTextureD3D11)(void * pD3D11Texture2D); 1870 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelName)(uint32_t unRenderModelIndex, char * pchRenderModelName, uint32_t unRenderModelNameLen); 1871 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelCount)(); 1872 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetComponentCount)(char * pchRenderModelName); 1873 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetComponentName)(char * pchRenderModelName, uint32_t unComponentIndex, char * pchComponentName, uint32_t unComponentNameLen); 1874 | uint64_t (OPENVR_FNTABLE_CALLTYPE *GetComponentButtonMask)(char * pchRenderModelName, char * pchComponentName); 1875 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetComponentRenderModelName)(char * pchRenderModelName, char * pchComponentName, char * pchComponentRenderModelName, uint32_t unComponentRenderModelNameLen); 1876 | bool (OPENVR_FNTABLE_CALLTYPE *GetComponentState)(char * pchRenderModelName, char * pchComponentName, VRControllerState_t * pControllerState, struct RenderModel_ControllerMode_State_t * pState, struct RenderModel_ComponentState_t * pComponentState); 1877 | bool (OPENVR_FNTABLE_CALLTYPE *RenderModelHasComponent)(char * pchRenderModelName, char * pchComponentName); 1878 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelThumbnailURL)(char * pchRenderModelName, char * pchThumbnailURL, uint32_t unThumbnailURLLen, EVRRenderModelError * peError); 1879 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetRenderModelOriginalPath)(char * pchRenderModelName, char * pchOriginalPath, uint32_t unOriginalPathLen, EVRRenderModelError * peError); 1880 | char * (OPENVR_FNTABLE_CALLTYPE *GetRenderModelErrorNameFromEnum)(EVRRenderModelError error); 1881 | }; 1882 | 1883 | struct VR_IVRNotifications_FnTable 1884 | { 1885 | EVRNotificationError (OPENVR_FNTABLE_CALLTYPE *CreateNotification)(VROverlayHandle_t ulOverlayHandle, uint64_t ulUserValue, EVRNotificationType type, char * pchText, EVRNotificationStyle style, struct NotificationBitmap_t * pImage, VRNotificationId * pNotificationId); 1886 | EVRNotificationError (OPENVR_FNTABLE_CALLTYPE *RemoveNotification)(VRNotificationId notificationId); 1887 | }; 1888 | 1889 | struct VR_IVRSettings_FnTable 1890 | { 1891 | char * (OPENVR_FNTABLE_CALLTYPE *GetSettingsErrorNameFromEnum)(EVRSettingsError eError); 1892 | bool (OPENVR_FNTABLE_CALLTYPE *Sync)(bool bForce, EVRSettingsError * peError); 1893 | void (OPENVR_FNTABLE_CALLTYPE *SetBool)(char * pchSection, char * pchSettingsKey, bool bValue, EVRSettingsError * peError); 1894 | void (OPENVR_FNTABLE_CALLTYPE *SetInt32)(char * pchSection, char * pchSettingsKey, int32_t nValue, EVRSettingsError * peError); 1895 | void (OPENVR_FNTABLE_CALLTYPE *SetFloat)(char * pchSection, char * pchSettingsKey, float flValue, EVRSettingsError * peError); 1896 | void (OPENVR_FNTABLE_CALLTYPE *SetString)(char * pchSection, char * pchSettingsKey, char * pchValue, EVRSettingsError * peError); 1897 | bool (OPENVR_FNTABLE_CALLTYPE *GetBool)(char * pchSection, char * pchSettingsKey, EVRSettingsError * peError); 1898 | int32_t (OPENVR_FNTABLE_CALLTYPE *GetInt32)(char * pchSection, char * pchSettingsKey, EVRSettingsError * peError); 1899 | float (OPENVR_FNTABLE_CALLTYPE *GetFloat)(char * pchSection, char * pchSettingsKey, EVRSettingsError * peError); 1900 | void (OPENVR_FNTABLE_CALLTYPE *GetString)(char * pchSection, char * pchSettingsKey, char * pchValue, uint32_t unValueLen, EVRSettingsError * peError); 1901 | void (OPENVR_FNTABLE_CALLTYPE *RemoveSection)(char * pchSection, EVRSettingsError * peError); 1902 | void (OPENVR_FNTABLE_CALLTYPE *RemoveKeyInSection)(char * pchSection, char * pchSettingsKey, EVRSettingsError * peError); 1903 | }; 1904 | 1905 | struct VR_IVRScreenshots_FnTable 1906 | { 1907 | EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *RequestScreenshot)(ScreenshotHandle_t * pOutScreenshotHandle, EVRScreenshotType type, char * pchPreviewFilename, char * pchVRFilename); 1908 | EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *HookScreenshot)(EVRScreenshotType * pSupportedTypes, int numTypes); 1909 | EVRScreenshotType (OPENVR_FNTABLE_CALLTYPE *GetScreenshotPropertyType)(ScreenshotHandle_t screenshotHandle, EVRScreenshotError * pError); 1910 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetScreenshotPropertyFilename)(ScreenshotHandle_t screenshotHandle, EVRScreenshotPropertyFilenames filenameType, char * pchFilename, uint32_t cchFilename, EVRScreenshotError * pError); 1911 | EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *UpdateScreenshotProgress)(ScreenshotHandle_t screenshotHandle, float flProgress); 1912 | EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *TakeStereoScreenshot)(ScreenshotHandle_t * pOutScreenshotHandle, char * pchPreviewFilename, char * pchVRFilename); 1913 | EVRScreenshotError (OPENVR_FNTABLE_CALLTYPE *SubmitScreenshot)(ScreenshotHandle_t screenshotHandle, EVRScreenshotType type, char * pchSourcePreviewFilename, char * pchSourceVRFilename); 1914 | }; 1915 | 1916 | struct VR_IVRResources_FnTable 1917 | { 1918 | uint32_t (OPENVR_FNTABLE_CALLTYPE *LoadSharedResource)(char * pchResourceName, char * pchBuffer, uint32_t unBufferLen); 1919 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetResourceFullPath)(char * pchResourceName, char * pchResourceTypeDirectory, char * pchPathBuffer, uint32_t unBufferLen); 1920 | }; 1921 | 1922 | struct VR_IVRDriverManager_FnTable 1923 | { 1924 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetDriverCount)(); 1925 | uint32_t (OPENVR_FNTABLE_CALLTYPE *GetDriverName)(DriverId_t nDriver, char * pchValue, uint32_t unBufferSize); 1926 | }; 1927 | 1928 | 1929 | #if 0 1930 | // Global entry points 1931 | S_API intptr_t VR_InitInternal( EVRInitError *peError, EVRApplicationType eType ); 1932 | S_API void VR_ShutdownInternal(); 1933 | S_API bool VR_IsHmdPresent(); 1934 | S_API intptr_t VR_GetGenericInterface( const char *pchInterfaceVersion, EVRInitError *peError ); 1935 | S_API bool VR_IsRuntimeInstalled(); 1936 | S_API const char * VR_GetVRInitErrorAsSymbol( EVRInitError error ); 1937 | S_API const char * VR_GetVRInitErrorAsEnglishDescription( EVRInitError error ); 1938 | #endif 1939 | 1940 | #endif // __OPENVR_API_FLAT_H__ 1941 | 1942 | 1943 | -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/Versions/A/OpenVR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/bin/osx/OpenVR.framework/Versions/A/OpenVR -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.valvesoftware.OpenVR.framework 7 | CFBundleInfoDictionaryVersion 8 | 6.0 9 | CFBundleName 10 | OpenVR 11 | CFBundlePackageType 12 | FMWK 13 | CFBundleShortVersionString 14 | 1.0 15 | CFBundleVersion 16 | 1.0 17 | 18 | 19 | -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/OpenVR.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/README.md: -------------------------------------------------------------------------------- 1 | OSX support is currently untested as we have no contributor who is using Mac OSX for VR development. 2 | If you are able and willing to help out please contact us! 3 | -------------------------------------------------------------------------------- /addons/godot-openvr/bin/osx/libgodot_openvr.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/bin/osx/libgodot_openvr.dylib -------------------------------------------------------------------------------- /addons/godot-openvr/bin/win64/libgodot_openvr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/bin/win64/libgodot_openvr.dll -------------------------------------------------------------------------------- /addons/godot-openvr/bin/win64/openvr_api.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/bin/win64/openvr_api.dll -------------------------------------------------------------------------------- /addons/godot-openvr/bin/x11/libgodot_openvr.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/bin/x11/libgodot_openvr.so -------------------------------------------------------------------------------- /addons/godot-openvr/bin/x11/libopenvr_api.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/bin/x11/libopenvr_api.so -------------------------------------------------------------------------------- /addons/godot-openvr/godot_openvr.gdnlib: -------------------------------------------------------------------------------- 1 | [general] 2 | 3 | singleton=true 4 | load_once=true 5 | symbol_prefix="godot_openvr_" 6 | reloadable=false 7 | 8 | [entry] 9 | 10 | X11.64="res://addons/godot-openvr/bin/x11/libgodot_openvr.so" 11 | Windows.32="res://addons/godot-openvr/bin/win32/libgodot_openvr.dll" 12 | Windows.64="res://addons/godot-openvr/bin/win64/libgodot_openvr.dll" 13 | OSX.64="res://addons/godot-openvr/bin/osx/libgodot_openvr.dylib" 14 | 15 | [dependencies] 16 | 17 | X11.64=[ "res://addons/godot-openvr/bin/x11/libopenvr_api.so" ] 18 | Windows.32=[ "res://addons/godot-openvr/bin/win32/openvr_api.dll" ] 19 | Windows.64=[ "res://addons/godot-openvr/bin/win64/openvr_api.dll" ] 20 | OSX.64=[ "res://addons/godot-openvr/bin/osx/OpenVR.framework" ] 21 | -------------------------------------------------------------------------------- /addons/godot-openvr/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/godot-openvr/icon.png -------------------------------------------------------------------------------- /addons/godot-openvr/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path.s3tc="res://.import/icon.png-a89ecb8be28ea6c50eeae0c3cb0cd271.s3tc.stex" 6 | path.etc2="res://.import/icon.png-a89ecb8be28ea6c50eeae0c3cb0cd271.etc2.stex" 7 | metadata={ 8 | "imported_formats": [ "s3tc", "etc2" ], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/godot-openvr/icon.png" 15 | dest_files=[ "res://.import/icon.png-a89ecb8be28ea6c50eeae0c3cb0cd271.s3tc.stex", "res://.import/icon.png-a89ecb8be28ea6c50eeae0c3cb0cd271.etc2.stex" ] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/lossy_quality=0.7 21 | compress/hdr_mode=0 22 | compress/bptc_ldr=0 23 | compress/normal_map=0 24 | flags/repeat=true 25 | flags/filter=true 26 | flags/mipmaps=true 27 | flags/anisotropic=false 28 | flags/srgb=1 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/HDR_as_SRGB=false 32 | process/invert_color=false 33 | stream=false 34 | size_limit=0 35 | detect_3d=false 36 | svg/scale=1.0 37 | -------------------------------------------------------------------------------- /addons/gui_in_vr/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020-2021 Aaron Franke, Godot engine contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /addons/gui_in_vr/gui.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=2] 2 | 3 | [ext_resource path="res://addons/gui_in_vr/icon.png" type="Texture" id=1] 4 | 5 | [node name="GUI" type="Control"] 6 | margin_right = 280.0 7 | margin_bottom = 180.0 8 | mouse_filter = 1 9 | 10 | [node name="Panel" type="Panel" parent="."] 11 | anchor_right = 1.0 12 | anchor_bottom = 1.0 13 | 14 | [node name="Label" type="Label" parent="Panel"] 15 | margin_left = 44.0 16 | margin_top = 27.0 17 | margin_right = 121.0 18 | margin_bottom = 41.0 19 | text = "Hello world!" 20 | 21 | [node name="Button" type="Button" parent="Panel"] 22 | margin_left = 14.0 23 | margin_top = 46.0 24 | margin_right = 154.0 25 | margin_bottom = 74.0 26 | text = "A button!" 27 | 28 | [node name="TextEdit" type="LineEdit" parent="Panel"] 29 | margin_left = 14.0 30 | margin_top = 87.0 31 | margin_right = 154.0 32 | margin_bottom = 111.0 33 | caret_blink = true 34 | caret_blink_speed = 0.5 35 | 36 | [node name="HSlider" type="HSlider" parent="Panel"] 37 | margin_left = 14.0 38 | margin_top = 118.0 39 | margin_right = 154.0 40 | margin_bottom = 143.0 41 | ticks_on_borders = true 42 | 43 | [node name="ColorRect" type="ColorRect" parent="Panel"] 44 | margin_left = 180.0 45 | margin_top = 26.0 46 | margin_right = 244.0 47 | margin_bottom = 90.0 48 | color = Color( 1, 0, 0, 1 ) 49 | 50 | [node name="TextureRect" type="TextureRect" parent="Panel"] 51 | anchor_left = 0.5 52 | anchor_top = 0.5 53 | anchor_right = 0.5 54 | anchor_bottom = 0.5 55 | margin_left = 52.0 56 | margin_top = -52.0 57 | margin_right = 92.0 58 | margin_bottom = -12.0 59 | texture = ExtResource( 1 ) 60 | expand = true 61 | 62 | [node name="VSlider" type="VSlider" parent="Panel"] 63 | margin_left = 260.0 64 | margin_top = 26.0 65 | margin_right = 276.0 66 | margin_bottom = 166.0 67 | 68 | [node name="OptionButton" type="OptionButton" parent="Panel"] 69 | margin_left = 170.0 70 | margin_top = 111.0 71 | margin_right = 252.0 72 | margin_bottom = 165.0 73 | text = "Item 0" 74 | items = [ "Item 0", null, false, 0, null, "Item 1", null, false, 1, null, "Item 2", null, false, 2, null ] 75 | selected = 0 76 | -------------------------------------------------------------------------------- /addons/gui_in_vr/gui_panel_3d.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=6 format=2] 2 | 3 | [ext_resource path="res://addons/gui_in_vr/gui.tscn" type="PackedScene" id=1] 4 | 5 | [sub_resource type="BoxShape" id=1] 6 | extents = Vector3( 0.15, 0.1, 0.01 ) 7 | 8 | [sub_resource type="QuadMesh" id=2] 9 | size = Vector2( 0.3, 0.2 ) 10 | 11 | [sub_resource type="ViewportTexture" id=3] 12 | viewport_path = NodePath("Viewport") 13 | 14 | [sub_resource type="SpatialMaterial" id=4] 15 | resource_local_to_scene = true 16 | flags_transparent = true 17 | flags_unshaded = true 18 | flags_albedo_tex_force_srgb = true 19 | albedo_texture = SubResource( 3 ) 20 | 21 | [node name="GUIPanel3D" type="StaticBody"] 22 | 23 | [node name="Viewport" type="Viewport" parent="."] 24 | size = Vector2( 280, 180 ) 25 | hdr = false 26 | usage = 0 27 | render_target_v_flip = true 28 | render_target_update_mode = 3 29 | 30 | [node name="GUI" parent="Viewport" instance=ExtResource( 1 )] 31 | 32 | [node name="CollisionShape" type="CollisionShape" parent="."] 33 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.01 ) 34 | shape = SubResource( 1 ) 35 | 36 | [node name="Quad" type="MeshInstance" parent="."] 37 | mesh = SubResource( 2 ) 38 | material/0 = SubResource( 4 ) 39 | -------------------------------------------------------------------------------- /addons/gui_in_vr/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/gui_in_vr/icon.png -------------------------------------------------------------------------------- /addons/gui_in_vr/icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-934e2f35d40ff073e2593777c9920aef.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://addons/gui_in_vr/icon.png" 13 | dest_files=[ "res://.import/icon.png-934e2f35d40ff073e2593777c9920aef.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /addons/gui_in_vr/player/controller.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=7 format=2] 2 | 3 | [ext_resource path="res://addons/gui_in_vr/player/controller_mesh.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/gui_in_vr/player/controller_ray_cast.gd" type="Script" id=2] 5 | 6 | [sub_resource type="SphereMesh" id=1] 7 | radius = 0.003 8 | height = 0.006 9 | radial_segments = 16 10 | rings = 8 11 | 12 | [sub_resource type="CylinderMesh" id=2] 13 | top_radius = 0.02 14 | bottom_radius = 0.02 15 | height = 0.01 16 | 17 | [sub_resource type="SpatialMaterial" id=3] 18 | albedo_color = Color( 1, 1, 1, 0 ) 19 | refraction_enabled = true 20 | refraction_scale = 1.0 21 | refraction_texture_channel = 0 22 | 23 | [sub_resource type="CylinderMesh" id=4] 24 | top_radius = 1e-05 25 | bottom_radius = 0.0001 26 | radial_segments = 6 27 | rings = 1 28 | 29 | [node name="Controller" type="ARVRController"] 30 | 31 | [node name="ControllerMesh" type="MeshInstance" parent="."] 32 | script = ExtResource( 1 ) 33 | 34 | [node name="Touchpad" type="Spatial" parent="ControllerMesh"] 35 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.05 ) 36 | 37 | [node name="SelectionDot" type="MeshInstance" parent="ControllerMesh/Touchpad"] 38 | transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.01, 0 ) 39 | mesh = SubResource( 1 ) 40 | skeleton = NodePath("") 41 | material/0 = null 42 | 43 | [node name="Cylinder" type="MeshInstance" parent="ControllerMesh/Touchpad"] 44 | visible = false 45 | mesh = SubResource( 2 ) 46 | skeleton = NodePath("") 47 | material/0 = null 48 | 49 | [node name="ControllerRayCast" type="RayCast" parent="."] 50 | enabled = true 51 | cast_to = Vector3( 0, 0, -2 ) 52 | script = ExtResource( 2 ) 53 | 54 | [node name="RayMesh" type="MeshInstance" parent="ControllerRayCast"] 55 | transform = Transform( 1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, -1 ) 56 | material_override = SubResource( 3 ) 57 | cast_shadow = 0 58 | mesh = SubResource( 4 ) 59 | material/0 = null 60 | -------------------------------------------------------------------------------- /addons/gui_in_vr/player/controller_mesh.gd: -------------------------------------------------------------------------------- 1 | extends MeshInstance 2 | 3 | # Future proofing. 4 | const XRServer = ARVRServer 5 | 6 | signal controller_activated(controller) 7 | 8 | var _ws := 1.0 9 | 10 | onready var _controller = get_parent() 11 | onready var ovr_render_model = preload("res://addons/godot-openvr/OpenVRRenderModel.gdns").new() 12 | onready var vive_material = preload("res://addons/gui_in_vr/vive/vive.tres") 13 | onready var touchpad_cylinder = $Touchpad/Cylinder 14 | onready var touchpad_selection_dot = $Touchpad/SelectionDot 15 | 16 | func _ready(): 17 | _controller.visible = false 18 | 19 | 20 | func _process(_delta): 21 | _base_controller_mesh_stuff() 22 | 23 | # Show a hint where the user's finger is on the touchpad. 24 | var touchpad_input = Vector2(_controller.get_joystick_axis(0), _controller.get_joystick_axis(1)) 25 | if touchpad_input == Vector2.ZERO: 26 | touchpad_selection_dot.translation = Vector3.ZERO 27 | else: 28 | touchpad_selection_dot.translation = Vector3(touchpad_input.x, 0.5, -touchpad_input.y) * 0.018 29 | 30 | 31 | func _base_controller_mesh_stuff(): 32 | if !_controller.get_is_active(): 33 | _controller.visible = false 34 | return 35 | 36 | _scale_controller_mesh() 37 | 38 | # Was active before, we don't need to do anything. 39 | if _controller.visible: 40 | return 41 | 42 | # Became active, handle it. 43 | var controller_name = _controller.get_controller_name() 44 | print("Controller " + controller_name + " became active") 45 | 46 | # Attempt to load a mesh for this controller. 47 | mesh = load_controller_mesh(controller_name) 48 | touchpad_cylinder.visible = controller_name.find("vive") < 0 49 | if !touchpad_cylinder.visible: 50 | material_override = vive_material 51 | 52 | # Make it visible. 53 | _controller.visible = true 54 | emit_signal("controller_activated", _controller) 55 | 56 | 57 | func load_controller_mesh(controller_name): 58 | if ovr_render_model.load_model(controller_name.substr(0, controller_name.length() - 2)): 59 | return ovr_render_model 60 | if ovr_render_model.load_model("generic_controller"): 61 | return ovr_render_model 62 | 63 | printerr("Unable to load a controller mesh.") 64 | return Mesh.new() 65 | 66 | 67 | func _scale_controller_mesh(): 68 | var new_ws = XRServer.world_scale 69 | if _ws != new_ws: 70 | _ws = new_ws 71 | scale = Vector3.ONE * _ws 72 | -------------------------------------------------------------------------------- /addons/gui_in_vr/player/controller_ray_cast.gd: -------------------------------------------------------------------------------- 1 | extends RayCast 2 | 3 | # Future proofing. 4 | const XRServer = ARVRServer 5 | 6 | var _is_activating_gui := false 7 | var _old_raycast_collider: PhysicsBody = null 8 | var _old_viewport_point: Vector2 9 | var _ws := 1.0 10 | 11 | onready var _controller = get_parent() 12 | 13 | 14 | func _process(_delta): 15 | _scale_ray() 16 | var raycast_collider = get_collider() 17 | # First of all, check if we need to release a previous mouse click. 18 | if _old_raycast_collider and raycast_collider != _old_raycast_collider: 19 | _release_mouse() 20 | elif raycast_collider: 21 | _try_send_input_to_gui(raycast_collider) 22 | 23 | 24 | func _try_send_input_to_gui(raycast_collider): 25 | var viewport = raycast_collider.get_child(0) 26 | if not (viewport is Viewport): 27 | return # This isn't something we can give input to. 28 | 29 | var collider_transform = raycast_collider.global_transform 30 | if collider_transform.xform_inv(global_transform.origin).z < 0: 31 | return # Don't allow pressing if we're behind the GUI. 32 | 33 | # Convert the collision to a relative position. Expects the 2nd child to be a CollisionShape. 34 | var shape_size = raycast_collider.get_child(1).shape.extents * 2 35 | var collision_point = get_collision_point() 36 | var collider_scale = collider_transform.basis.get_scale() 37 | var local_point = collider_transform.xform_inv(collision_point) 38 | local_point /= (collider_scale * collider_scale) 39 | local_point /= shape_size 40 | local_point += Vector3(0.5, -0.5, 0) # X is about 0 to 1, Y is about 0 to -1. 41 | 42 | # Find the viewport position by scaling the relative position by the viewport size. Discard Z. 43 | var viewport_point = Vector2(local_point.x, -local_point.y) * viewport.size 44 | 45 | # Send mouse motion to the GUI. 46 | var event = InputEventMouseMotion.new() 47 | event.position = viewport_point 48 | viewport.input(event) 49 | 50 | # Figure out whether or not we should trigger a click. 51 | var desired_activate_gui := false 52 | var distance = global_transform.origin.distance_to(collision_point) / XRServer.world_scale 53 | if distance < 0.1: 54 | desired_activate_gui = true # Allow "touching" the GUI. 55 | else: 56 | desired_activate_gui = _is_trigger_pressed() # Else, use the trigger. 57 | 58 | # Send a left click to the GUI depending on the above. 59 | if desired_activate_gui != _is_activating_gui: 60 | event = InputEventMouseButton.new() 61 | event.pressed = desired_activate_gui 62 | event.button_index = BUTTON_LEFT 63 | event.position = viewport_point 64 | viewport.input(event) 65 | _is_activating_gui = desired_activate_gui 66 | _old_raycast_collider = raycast_collider 67 | _old_viewport_point = viewport_point 68 | 69 | 70 | func _release_mouse(): 71 | var event = InputEventMouseButton.new() 72 | event.button_index = 1 73 | event.position = _old_viewport_point 74 | _old_raycast_collider.get_child(0).input(event) 75 | _old_raycast_collider = null 76 | _is_activating_gui = false 77 | 78 | 79 | func _is_trigger_pressed(): 80 | return _controller.get_joystick_axis(JOY_VR_ANALOG_TRIGGER) > 0.6 81 | 82 | 83 | func _scale_ray(): 84 | var new_ws = XRServer.world_scale 85 | if _ws != new_ws: 86 | _ws = new_ws 87 | scale = Vector3.ONE * _ws 88 | -------------------------------------------------------------------------------- /addons/gui_in_vr/player/player.gd: -------------------------------------------------------------------------------- 1 | extends ARVROrigin 2 | 3 | # Future proofing. 4 | const XRServer = ARVRServer 5 | 6 | var _ws := 1.0 7 | 8 | onready var _camera = $XRCamera 9 | onready var _camera_near_scale = _camera.near 10 | onready var _camera_far_scale = _camera.far 11 | 12 | 13 | func _ready(): 14 | var vr = XRServer.find_interface("OpenVR") 15 | if vr and vr.initialize(): 16 | var viewport = get_viewport() 17 | viewport.arvr = true 18 | viewport.hdr = false 19 | OS.set_window_maximized(true) 20 | OS.vsync_enabled = false 21 | Engine.target_fps = 180 22 | else: 23 | printerr("Can't initialize OpenVR, exiting.") 24 | get_tree().quit() 25 | 26 | 27 | func _process(_delta): 28 | var new_ws = XRServer.world_scale 29 | if _ws != new_ws: 30 | _ws = new_ws 31 | _camera.near = _ws * _camera_near_scale 32 | _camera.far = _ws * _camera_far_scale 33 | var child_count = get_child_count() 34 | for i in range(3, child_count): 35 | get_child(i).scale = Vector3.ONE * _ws 36 | -------------------------------------------------------------------------------- /addons/gui_in_vr/player/player.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://addons/gui_in_vr/player/player.gd" type="Script" id=1] 4 | [ext_resource path="res://addons/gui_in_vr/player/controller.tscn" type="PackedScene" id=2] 5 | 6 | [node name="Player" type="ARVROrigin"] 7 | script = ExtResource( 1 ) 8 | 9 | [node name="XRCamera" type="ARVRCamera" parent="."] 10 | far = 1000.0 11 | 12 | [node name="LeftController" parent="." instance=ExtResource( 2 )] 13 | 14 | [node name="RightController" parent="." instance=ExtResource( 2 )] 15 | controller_id = 2 16 | -------------------------------------------------------------------------------- /addons/gui_in_vr/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="GUI in VR" 4 | description="Allows using a GUI in VR using Viewports and raycasts." 5 | author="Aaron Franke" 6 | version="3.3" 7 | script="" 8 | -------------------------------------------------------------------------------- /addons/gui_in_vr/vive/vive.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="SpatialMaterial" load_steps=3 format=2] 2 | 3 | [ext_resource path="res://addons/gui_in_vr/vive/vive_albedo.png" type="Texture" id=1] 4 | [ext_resource path="res://addons/gui_in_vr/vive/vive_spec.png" type="Texture" id=2] 5 | 6 | [resource] 7 | albedo_texture = ExtResource( 1 ) 8 | metallic_texture = ExtResource( 2 ) 9 | -------------------------------------------------------------------------------- /addons/gui_in_vr/vive/vive_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/gui_in_vr/vive/vive_albedo.png -------------------------------------------------------------------------------- /addons/gui_in_vr/vive/vive_albedo.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path.s3tc="res://.import/vive_albedo.png-b09f8bac79c2230c15f2b63a5c5b4ea6.s3tc.stex" 6 | path.etc2="res://.import/vive_albedo.png-b09f8bac79c2230c15f2b63a5c5b4ea6.etc2.stex" 7 | metadata={ 8 | "imported_formats": [ "s3tc", "etc2" ], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/gui_in_vr/vive/vive_albedo.png" 15 | dest_files=[ "res://.import/vive_albedo.png-b09f8bac79c2230c15f2b63a5c5b4ea6.s3tc.stex", "res://.import/vive_albedo.png-b09f8bac79c2230c15f2b63a5c5b4ea6.etc2.stex" ] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/lossy_quality=0.7 21 | compress/hdr_mode=0 22 | compress/bptc_ldr=0 23 | compress/normal_map=0 24 | flags/repeat=true 25 | flags/filter=true 26 | flags/mipmaps=true 27 | flags/anisotropic=false 28 | flags/srgb=1 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/HDR_as_SRGB=false 32 | process/invert_color=false 33 | stream=false 34 | size_limit=0 35 | detect_3d=false 36 | svg/scale=1.0 37 | -------------------------------------------------------------------------------- /addons/gui_in_vr/vive/vive_spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/addons/gui_in_vr/vive/vive_spec.png -------------------------------------------------------------------------------- /addons/gui_in_vr/vive/vive_spec.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path.s3tc="res://.import/vive_spec.png-489299ffb1287351a76f1ddd18fa8aa7.s3tc.stex" 6 | path.etc2="res://.import/vive_spec.png-489299ffb1287351a76f1ddd18fa8aa7.etc2.stex" 7 | metadata={ 8 | "imported_formats": [ "s3tc", "etc2" ], 9 | "vram_texture": true 10 | } 11 | 12 | [deps] 13 | 14 | source_file="res://addons/gui_in_vr/vive/vive_spec.png" 15 | dest_files=[ "res://.import/vive_spec.png-489299ffb1287351a76f1ddd18fa8aa7.s3tc.stex", "res://.import/vive_spec.png-489299ffb1287351a76f1ddd18fa8aa7.etc2.stex" ] 16 | 17 | [params] 18 | 19 | compress/mode=2 20 | compress/lossy_quality=0.7 21 | compress/hdr_mode=0 22 | compress/bptc_ldr=0 23 | compress/normal_map=0 24 | flags/repeat=true 25 | flags/filter=true 26 | flags/mipmaps=true 27 | flags/anisotropic=false 28 | flags/srgb=2 29 | process/fix_alpha_border=true 30 | process/premult_alpha=false 31 | process/HDR_as_SRGB=false 32 | process/invert_color=false 33 | stream=false 34 | size_limit=0 35 | detect_3d=false 36 | svg/scale=1.0 37 | -------------------------------------------------------------------------------- /addons/gui_in_vr/world.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=2] 2 | 3 | [ext_resource path="res://addons/gui_in_vr/player/player.tscn" type="PackedScene" id=1] 4 | [ext_resource path="res://addons/gui_in_vr/gui_panel_3d.tscn" type="PackedScene" id=4] 5 | 6 | [node name="World" type="Spatial"] 7 | 8 | [node name="Player" parent="." instance=ExtResource( 1 )] 9 | 10 | [node name="GUIPanel3D" parent="." instance=ExtResource( 4 )] 11 | transform = Transform( 0, 0, -2, 0, 2, 0, 2, 0, 0, 0.5, 1.4, 0 ) 12 | 13 | [node name="DirectionalLight" type="DirectionalLight" parent="."] 14 | transform = Transform( 1, 0, 0, 0, -0.5, 0.866025, 0, -0.866025, -0.5, 0, 0, 0 ) 15 | -------------------------------------------------------------------------------- /default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=2] 2 | 3 | [sub_resource type="ProceduralSky" id=1] 4 | sun_latitude = 60.0 5 | 6 | [resource] 7 | background_mode = 2 8 | background_sky = SubResource( 1 ) 9 | ambient_light_sky_contribution = 0.5 10 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronfranke/godot-GUI-in-VR/7bdb4f6207a5c885d48f862c996c6709f7e5a2fe/icon.png -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="StreamTexture" 5 | path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" 6 | metadata={ 7 | "vram_texture": false 8 | } 9 | 10 | [deps] 11 | 12 | source_file="res://icon.png" 13 | dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] 14 | 15 | [params] 16 | 17 | compress/mode=0 18 | compress/lossy_quality=0.7 19 | compress/hdr_mode=0 20 | compress/bptc_ldr=0 21 | compress/normal_map=0 22 | flags/repeat=0 23 | flags/filter=true 24 | flags/mipmaps=false 25 | flags/anisotropic=false 26 | flags/srgb=2 27 | process/fix_alpha_border=true 28 | process/premult_alpha=false 29 | process/HDR_as_SRGB=false 30 | process/invert_color=false 31 | stream=false 32 | size_limit=0 33 | detect_3d=true 34 | svg/scale=1.0 35 | -------------------------------------------------------------------------------- /project.godot: -------------------------------------------------------------------------------- 1 | ; Engine configuration file. 2 | ; It's best edited using the editor UI and not directly, 3 | ; since the parameters that go here are not all obvious. 4 | ; 5 | ; Format: 6 | ; [section] ; section goes between [] 7 | ; param=value ; assign values to parameters 8 | 9 | config_version=4 10 | 11 | [application] 12 | 13 | config/name="GUI in VR" 14 | run/main_scene="res://addons/gui_in_vr/world.tscn" 15 | config/icon="res://addons/gui_in_vr/icon.png" 16 | 17 | [display] 18 | 19 | window/vsync/use_vsync=false 20 | 21 | [gdnative] 22 | 23 | singletons=[ "res://addons/godot-openvr/godot_openvr.gdnlib" ] 24 | 25 | [physics] 26 | 27 | common/physics_fps=180 28 | 3d/physics_engine="GodotPhysics" 29 | 30 | [rendering] 31 | 32 | quality/filters/msaa=4 33 | quality/depth/hdr=false 34 | environment/default_environment="res://default_env.tres" 35 | --------------------------------------------------------------------------------