Skip to content

Commit

Permalink
1.0.0-preview.5 - Open source. Display fixes. UWP / IL2CPP fixes.
Browse files Browse the repository at this point in the history
## [1.0.0-preview.5] - 2020-07-15
### Changed 
- See LICENSE.md files for open source updates.
- Fixed 32bit builds
- Fixed UWP builds
- Fixed IL2CPP builds
- Fixed some issues with Mirror View Mode. Now defaulting to Right Eye instead of OpenVR.
- Fixed issue where SteamVR Beta was required.
  • Loading branch information
zite committed Jul 16, 2020
1 parent 5e60711 commit 0bc5102
Show file tree
Hide file tree
Showing 151 changed files with 137,516 additions and 35 deletions.
82 changes: 82 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
*.vcxproj
*.vcxproj.filters

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
Debug/
*.apk
*.unitypackage
*_export.h

# Crashlytics generated file
crashlytics-build.properties

# CMake
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
*.dir

# Valve internal
*.vpc
*.vpc.sentinel
*.vpc_crc
143 changes: 143 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
cmake_minimum_required(VERSION 3.10)
set(CMAKE_SUPPRESS_REGENERATION true)
project(unity_xr_openvr_plugin)

# C++ 17 - note cmake minver is 3.10 supported only on MS C++ 2015 Update 3 and above
message(STATUS "Project language set to C++17")

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(BINARY_RUNTIME_PATH "${CMAKE_SOURCE_DIR}/com.valve.openvr/Runtime")

# Determine platform architecture
message(STATUS "Checking platform architecture...")

# Auto determine platform if none is provided
if(NOT PLATFORM)
if(CMAKE_SIZEOF_VOID_P MATCHES 8)
set(PLATFORM 64)
else()
set(PLATFORM 32)
endif()
endif()

# Platform binary path
if(PLATFORM MATCHES 64)
set(PLATFORMX "x64")
else()
set(PLATFORMX "x86")
endif()

set(BINARY_PATH "${CMAKE_SOURCE_DIR}/com.valve.openvr/Runtime/${PLATFORMX}")
message(STATUS "Platform binary path set to: ${BINARY_PATH}")

# Set Platform
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_definitions(-DLINUX -DPOSIX)
set(OPENVR_API_NAME "libopenvr_api")
set(COMPILED_LIB_TYPE "so")
set(IMPORT_LIB_TYPE "a")
set(ARCH_TARGET linux64)

if(${PLATFORM} MATCHES 32)
message(WARNING "OpenVR x86 binaries not provided on GNU/Linux.")
endif()

elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
add_definitions(-D_WIN32)
set(OPENVR_API_NAME "openvr_api")
set(COMPILED_LIB_TYPE "dll")
set(IMPORT_LIB_TYPE "lib")
set(ARCH_TARGET win${PLATFORM})
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS True)
endif()

message(STATUS "Compilation set for ${CMAKE_SYSTEM_NAME} ${PLATFORM}bit")

# XRSDKOpenVR
message(STATUS "Adding XRSDKOpenVR...")

add_library(XRSDKOpenVR SHARED
${CMAKE_SOURCE_DIR}/Providers/dllmain.cpp
${CMAKE_SOURCE_DIR}/Providers/OpenVRProviderContext.h
${CMAKE_SOURCE_DIR}/Providers/OpenVRSystem.h ${CMAKE_SOURCE_DIR}/Providers/OpenVRSystem.cpp
${CMAKE_SOURCE_DIR}/Providers/UserProjectSettings.h ${CMAKE_SOURCE_DIR}/Providers/UserProjectSettings.cpp

${CMAKE_SOURCE_DIR}/Providers/Display/Display.h ${CMAKE_SOURCE_DIR}/Providers/Display/Display.cpp
${CMAKE_SOURCE_DIR}/Providers/Input/Input.h ${CMAKE_SOURCE_DIR}/Providers/Input/Input.cpp

${CMAKE_SOURCE_DIR}/CommonHeaders/UnityInterfaces.h ${CMAKE_SOURCE_DIR}/CommonHeaders/UnityInterfaces.cpp

${CMAKE_SOURCE_DIR}/CommonHeaders/Singleton.h
${CMAKE_SOURCE_DIR}/CommonHeaders/CommonTypes.h

${CMAKE_SOURCE_DIR}/CommonHeaders/OpenVR/openvr.h
${CMAKE_SOURCE_DIR}/CommonHeaders/OpenVR/openvr_driver.h

${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityEventQueue.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityGraphics.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityGraphicsD3D11.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityGraphicsD3D12.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityGraphicsMetal.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityGraphicsVulkan.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityInterface.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityProfilerCallbacks.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityRenderingExtensions.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityShaderCompilerAccess.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityXRDisplay.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityXRInput.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityXRMeshing.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityXRPreInit.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityXRStats.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/IUnityXRTrace.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/UnitySubsystemTypes.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/UnityXRDisplayStats.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/UnityXRTypes.h
${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/XRMath.h ${CMAKE_SOURCE_DIR}/CommonHeaders/ProviderInterface/XRMath.cpp
)

target_include_directories(XRSDKOpenVR PUBLIC
${CMAKE_SOURCE_DIR}/Providers
${CMAKE_SOURCE_DIR}/CommonHeaders
${CMAKE_SOURCE_DIR}/ThirdParty
)

include(GenerateExportHeader)
generate_export_header(XRSDKOpenVR)


message(STATUS "Runtime output directory set to: ${BINARY_PATH}")
set_target_properties(XRSDKOpenVR
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${BINARY_PATH}"
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${BINARY_PATH}"
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BINARY_PATH}"
ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${BINARY_PATH}"
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${BINARY_PATH}"
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BINARY_PATH}"
)


# OpenVR
message(STATUS "Importing OpenVR API...")

add_library(openvr_api SHARED IMPORTED)
set_target_properties(openvr_api PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/lib/${PLATFORMX}/${OPENVR_API_NAME}.${COMPILED_LIB_TYPE})
set_target_properties(openvr_api PROPERTIES IMPORTED_IMPLIB ${CMAKE_SOURCE_DIR}/lib/${PLATFORMX}/${OPENVR_API_NAME}.${IMPORT_LIB_TYPE})
set_target_properties(openvr_api PROPERTIES LINKER_LANGUAGE CXX)
target_link_libraries(XRSDKOpenVR PUBLIC openvr_api)

# Post-Build - Copy OpenVR api
add_custom_command(TARGET XRSDKOpenVR POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/lib/${PLATFORMX}/${OPENVR_API_NAME}.${COMPILED_LIB_TYPE}
${BINARY_PATH}/${OPENVR_API_NAME}.${COMPILED_LIB_TYPE}

COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/lib/${PLATFORMX}/${OPENVR_API_NAME}.${COMPILED_LIB_TYPE}.sig
${BINARY_PATH}/${OPENVR_API_NAME}.${COMPILED_LIB_TYPE}.sig

COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/lib/${PLATFORMX}/${OPENVR_API_NAME}.${IMPORT_LIB_TYPE}
${BINARY_PATH}/${OPENVR_API_NAME}.${IMPORT_LIB_TYPE}
)
9 changes: 9 additions & 0 deletions CommonHeaders/CommonTypes.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#pragma once

#include "ProviderInterface/IUnityXRTrace.h"
#include "ProviderInterface/IUnityXRStats.h"

extern IUnityXRTrace *s_pXRTrace;
//extern IUnityXRStats* sXRStats;

#define XR_TRACE_PTR s_pXRTrace
Loading

0 comments on commit 0bc5102

Please sign in to comment.