2022-08-21 18:35:16 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#if defined(__linux__)
|
|
|
|
|
|
|
|
#include <windows.h>
|
|
|
|
#include <dlfcn.h>
|
|
|
|
|
|
|
|
#include "log/log.h"
|
|
|
|
|
|
|
|
inline HMODULE LoadLibraryA(LPCSTR lpLibFileName) {
|
|
|
|
return dlopen(lpLibFileName, RTLD_NOW);
|
|
|
|
}
|
|
|
|
|
2022-08-26 17:40:09 +00:00
|
|
|
inline void FreeLibrary(HMODULE module) {
|
2022-08-21 18:35:16 +00:00
|
|
|
dlclose(module);
|
|
|
|
}
|
|
|
|
|
|
|
|
inline void* GetProcAddress(HMODULE module, LPCSTR lpProcName) {
|
2022-09-01 02:14:22 +00:00
|
|
|
if (!module)
|
|
|
|
return nullptr;
|
|
|
|
|
2022-08-21 18:35:16 +00:00
|
|
|
return dlsym(module, lpProcName);
|
|
|
|
}
|
|
|
|
|
|
|
|
inline HANDLE CreateSemaphoreA(
|
|
|
|
SECURITY_ATTRIBUTES* lpSemaphoreAttributes,
|
|
|
|
LONG lInitialCount,
|
|
|
|
LONG lMaximumCount,
|
|
|
|
LPCSTR lpName) {
|
|
|
|
dxvk::Logger::warn("CreateSemaphoreA not implemented.");
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
#define CreateSemaphore CreateSemaphoreA
|
|
|
|
|
|
|
|
inline BOOL ReleaseSemaphore(
|
|
|
|
HANDLE hSemaphore,
|
|
|
|
LONG lReleaseCount,
|
|
|
|
LONG* lpPreviousCount) {
|
|
|
|
dxvk::Logger::warn("ReleaseSemaphore not implemented.");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
inline BOOL SetEvent(HANDLE hEvent) {
|
|
|
|
dxvk::Logger::warn("SetEvent not implemented.");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
inline BOOL CloseHandle(HANDLE hObject) {
|
|
|
|
dxvk::Logger::warn("CloseHandle not implemented.");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
inline HDC CreateCompatibleDC(HDC hdc) {
|
|
|
|
dxvk::Logger::warn("CreateCompatibleDC not implemented.");
|
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
inline BOOL DeleteDC(HDC hdc) {
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|