summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/monitor/monitor_dxgi.cpp
diff options
context:
space:
mode:
author Brad Hughes <bradhugh@outlook.com>2016-11-18 14:06:11 -0500
committer Brad Hughes <bradhugh@outlook.com>2016-11-20 13:41:44 -0500
commit17c9b0b7847e71ac49b756e6a0cfc0841ce52ac0 (patch)
treeddceeec41f182007d71f496189c9ce7f020fae62 /src/osd/modules/monitor/monitor_dxgi.cpp
parente4c856dd1ff81ed945c7edd96993f3d909be9ded (diff)
Created DYNAMIC_API macros for cleaner definition of dynamically linked functions
Diffstat (limited to 'src/osd/modules/monitor/monitor_dxgi.cpp')
-rw-r--r--src/osd/modules/monitor/monitor_dxgi.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/osd/modules/monitor/monitor_dxgi.cpp b/src/osd/modules/monitor/monitor_dxgi.cpp
index 33360922764..c536a52efa6 100644
--- a/src/osd/modules/monitor/monitor_dxgi.cpp
+++ b/src/osd/modules/monitor/monitor_dxgi.cpp
@@ -25,6 +25,10 @@
#include "window.h"
#include "windows/video.h"
+DYNAMIC_API_BEGIN(dxgi, "dxgi.dll")
+ DYNAMIC_API_FN(DWORD, WINAPI, CreateDXGIFactory1, REFIID, void**)
+DYNAMIC_API_END()
+
using namespace Microsoft::WRL;
class dxgi_monitor_info : public osd_monitor_info
@@ -54,26 +58,18 @@ public:
}
};
-typedef DWORD(WINAPI *dxgi_create_factory_fn)(REFIID, void**);
class dxgi_monitor_module : public monitor_module_base
{
-private:
- osd::dynamic_module::ptr m_dxgi_module;
- dxgi_create_factory_fn m_create_factory_fn;
-
public:
dxgi_monitor_module()
- : monitor_module_base(OSD_MONITOR_PROVIDER, "dxgi"),
- m_dxgi_module(osd::dynamic_module::open({"dxgi.dll"})),
- m_create_factory_fn(nullptr)
+ : monitor_module_base(OSD_MONITOR_PROVIDER, "dxgi")
{
}
bool probe() override
{
- m_create_factory_fn = m_dxgi_module->bind<dxgi_create_factory_fn>("CreateDXGIFactory1");
- if (m_create_factory_fn == nullptr)
+ if(!DYNAMIC_API_TEST(dxgi, CreateDXGIFactory1))
return false;
return true;
@@ -133,7 +129,7 @@ protected:
ComPtr<IDXGIFactory2> factory;
ComPtr<IDXGIAdapter> adapter;
- result = m_create_factory_fn(__uuidof(IDXGIFactory2), reinterpret_cast<void**>(factory.GetAddressOf()));
+ result = DYNAMIC_CALL(dxgi, CreateDXGIFactory1, __uuidof(IDXGIFactory2), reinterpret_cast<void**>(factory.GetAddressOf())); // m_create_factory_fn();
if (result != ERROR_SUCCESS)
{
osd_printf_error("CreateDXGIFactory1 failed with error 0x%x\n", static_cast<unsigned int>(result));