mirror of
https://github.com/mii443/MigawariDriver.git
synced 2025-08-22 16:05:33 +00:00
linux compilable
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@ -11,4 +11,6 @@ x64/
|
||||
driver_migawari.dir/
|
||||
Debug/
|
||||
Release/
|
||||
lib/minhook/
|
||||
lib/minhook/
|
||||
libdriver_migawari.so
|
||||
Makefile
|
||||
|
@ -6,9 +6,17 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
set(OPENVR_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib/openvr/headers")
|
||||
|
||||
set(PROCESSOR_ARCH "64")
|
||||
set(PLATFORM_NAME "win")
|
||||
if (WIN)
|
||||
set(PLATFORM_NAME "win")
|
||||
elseif (UNIX AND NOT APPLE)
|
||||
set(PLATFORM_NAME "linux")
|
||||
elseif (APPLE)
|
||||
set(PLATFORM_NAME "osx")
|
||||
endif()
|
||||
|
||||
if (WIN)
|
||||
add_subdirectory(lib/minhook)
|
||||
endif()
|
||||
find_library(OPENVR_LIB openvr_api HINTS "${CMAKE_CURRENT_SOURCE_DIR}/lib/openvr/lib/${PLATFORM_NAME}${PROCESSOR_ARCH}/" NO_DEFAULT_PATH)
|
||||
|
||||
set(DRIVER_NAME "migawari")
|
||||
@ -17,11 +25,15 @@ file(GLOB_RECURSE HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp")
|
||||
file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
|
||||
add_library("${PROJECT}" SHARED "${HEADERS}" "${SOURCES}")
|
||||
|
||||
if (WIN)
|
||||
target_include_directories("${PROJECT}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/lib/minhook/include")
|
||||
endif()
|
||||
target_include_directories("${PROJECT}" PUBLIC "${OPENVR_INCLUDE_DIR}")
|
||||
target_include_directories("${PROJECT}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src/")
|
||||
target_link_libraries("${PROJECT}" PUBLIC "${OPENVR_LIB}")
|
||||
if (WIN)
|
||||
target_link_libraries("${PROJECT}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/lib/minhook/Release/minhook.x64.lib")
|
||||
endif()
|
||||
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/src" PREFIX "Header Files" FILES ${HEADERS})
|
||||
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/src" PREFIX "Source Files" FILES ${SOURCES})
|
||||
set_property(TARGET "${PROJECT}" PROPERTY CXX_STANDARD 17)
|
||||
|
@ -1,6 +1,9 @@
|
||||
#include "DriverFactory.hpp"
|
||||
#include "ServerTrackedDeviceProvider.hpp"
|
||||
#include "VRWatchdogProvider.hpp"
|
||||
#ifndef _MSC_VER
|
||||
#include <cstring>
|
||||
#endif
|
||||
|
||||
static ServerTrackedDeviceProvider g_serverTrackedDeviceProvider;
|
||||
static VRWatchdogProvider g_watchdogProvider;
|
||||
|
@ -2,4 +2,8 @@
|
||||
|
||||
#include <openvr_driver.h>
|
||||
|
||||
extern "C" __declspec(dllexport) void* HmdDriverFactory(const char* pInterfaceName, int* pReturnCode);
|
||||
extern "C"
|
||||
#ifdef _MSC_VER
|
||||
__declspec(dllexport)
|
||||
#endif
|
||||
void* HmdDriverFactory(const char* pInterfaceName, int* pReturnCode);
|
||||
|
@ -1,10 +1,13 @@
|
||||
#include "ServerTrackedDeviceProvider.hpp"
|
||||
#include "Device.hpp"
|
||||
#ifdef _MSC_VER
|
||||
#include <Windows.h>
|
||||
#endif
|
||||
|
||||
vr::EVRInitError ServerTrackedDeviceProvider::Init(vr::IVRDriverContext *pDriverContext) {
|
||||
VR_INIT_SERVER_DRIVER_CONTEXT(pDriverContext);
|
||||
|
||||
#ifdef _MSC_VER
|
||||
auto name = "MigawariDriver_k_unMaxTrackedDeviceCount";
|
||||
auto size = 4;
|
||||
HANDLE hSharedMemory = CreateFileMapping(NULL, NULL, PAGE_READWRITE, NULL, size, name);
|
||||
@ -19,6 +22,7 @@ vr::EVRInitError ServerTrackedDeviceProvider::Init(vr::IVRDriverContext *pDriver
|
||||
HANDLE pHandle = CreateFileMapping(NULL, NULL, PAGE_READWRITE, NULL, sizeof(SharedDevice), ("MigawariDriver_Device" + std::to_string(i)).c_str());
|
||||
devices[i] = (SharedDevice*)MapViewOfFile(pHandle, FILE_MAP_ALL_ACCESS, NULL, NULL, sizeof(SharedDevice));
|
||||
}
|
||||
#endif
|
||||
|
||||
return vr::VRInitError_None;
|
||||
}
|
||||
|
Reference in New Issue
Block a user