diff options
Diffstat (limited to 'thirdparty/vulkan/loader/dxgi_loader.c')
-rw-r--r-- | thirdparty/vulkan/loader/dxgi_loader.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/thirdparty/vulkan/loader/dxgi_loader.c b/thirdparty/vulkan/loader/dxgi_loader.c new file mode 100644 index 0000000000..c2a3fa5638 --- /dev/null +++ b/thirdparty/vulkan/loader/dxgi_loader.c @@ -0,0 +1,23 @@ +#include "dxgi_loader.h" + +#include <strsafe.h> + +static HMODULE load_dxgi_module() { + TCHAR systemPath[MAX_PATH] = ""; + GetSystemDirectory(systemPath, MAX_PATH); + StringCchCat(systemPath, MAX_PATH, TEXT("\\dxgi.dll")); + + return LoadLibrary(systemPath); +} + +typedef HRESULT (APIENTRY *PFN_CreateDXGIFactory1)(REFIID riid, void **ppFactory); + +HRESULT dyn_CreateDXGIFactory1(REFIID riid, void **ppFactory) { + PFN_CreateDXGIFactory1 fpCreateDXGIFactory1 = + (PFN_CreateDXGIFactory1)GetProcAddress(load_dxgi_module(), "CreateDXGIFactory1"); + + if (fpCreateDXGIFactory1 != NULL) + return fpCreateDXGIFactory1(riid, ppFactory); + + return DXGI_ERROR_NOT_FOUND; +}
\ No newline at end of file |