Index: third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp |
diff --git a/third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp b/third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b88c2986f66f533e3c7a5e0621995660f47a0cfc |
--- /dev/null |
+++ b/third_party/openvr/src/src/vrcommon/sharedlibtools_public.cpp |
@@ -0,0 +1,41 @@ |
+//========= Copyright Valve Corporation ============// |
+#include "sharedlibtools_public.h" |
+#include <string.h> |
+ |
+#if defined(_WIN32) |
+#include <Windows.h> |
+#endif |
+ |
+#if defined(POSIX) |
+#include <dlfcn.h> |
+#endif |
+ |
+SharedLibHandle SharedLib_Load( const char *pchPath ) |
+{ |
+#if defined( _WIN32) |
+ return (SharedLibHandle)LoadLibraryEx( pchPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ); |
+#elif defined(POSIX) |
+ return (SharedLibHandle)dlopen(pchPath, RTLD_LOCAL|RTLD_NOW); |
+#endif |
+} |
+ |
+void *SharedLib_GetFunction( SharedLibHandle lib, const char *pchFunctionName) |
+{ |
+#if defined( _WIN32) |
+ return GetProcAddress( (HMODULE)lib, pchFunctionName ); |
+#elif defined(POSIX) |
+ return dlsym( lib, pchFunctionName ); |
+#endif |
+} |
+ |
+ |
+void SharedLib_Unload( SharedLibHandle lib ) |
+{ |
+#if defined( _WIN32) |
+ FreeLibrary( (HMODULE)lib ); |
+#elif defined(POSIX) |
+ dlclose( lib ); |
+#endif |
+} |
+ |
+ |