dxvk/src/util/util_gdi.cpp

45 lines
1.2 KiB
C++

#include "util_gdi.h"
#include "log/log.h"
namespace dxvk {
#ifdef _WIN32
static HMODULE GetGDIModule() {
static HMODULE module = LoadLibraryA("gdi32.dll");
return module;
}
NTSTATUS D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY* Arg1) {
static auto func = (D3DKMTCreateDCFromMemoryType)
GetProcAddress(GetGDIModule(), "D3DKMTCreateDCFromMemory");
if (func != nullptr)
return func(Arg1);
Logger::warn("D3DKMTCreateDCFromMemory: Unable to query proc address.");
return -1;
}
NTSTATUS D3DKMTDestroyDCFromMemory(D3DKMT_DESTROYDCFROMMEMORY* Arg1) {
static auto func = (D3DKMTDestroyDCFromMemoryType)
GetProcAddress(GetGDIModule(), "D3DKMTDestroyDCFromMemory");
if (func != nullptr)
return func(Arg1);
Logger::warn("D3DKMTDestroyDCFromMemory: Unable to query proc address.");
return -1;
}
#else
NTSTATUS D3DKMTCreateDCFromMemory(D3DKMT_CREATEDCFROMMEMORY* Arg1) {
Logger::warn("D3DKMTCreateDCFromMemory: Not available on this platform.");
return -1;
}
NTSTATUS D3DKMTDestroyDCFromMemory(D3DKMT_DESTROYDCFROMMEMORY* Arg1) {
Logger::warn("D3DKMTDestroyDCFromMemory: Not available on this platform.");
return -1;
}
#endif
}