diff options
-rw-r--r-- | src/d3d/lfx.cpp | 15 | ||||
-rw-r--r-- | src/d3d/lfx.h | 3 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/d3d/lfx.cpp b/src/d3d/lfx.cpp index 99abae2..e7da893 100644 --- a/src/d3d/lfx.cpp +++ b/src/d3d/lfx.cpp @@ -27,12 +27,10 @@ namespace dxvk { return; } - m_lfx_WaitAndBeginFrame = reinterpret_cast<PFN_lfx_WaitAndBeginFrame>(reinterpret_cast<void*>( - GetProcAddress(m_lfxModule, - !useFallbackEntrypoints ? "lfx_WaitAndBeginFrame" : "winelfx_WaitAndBeginFrame"))); - m_lfx_SetTargetFrameTime = reinterpret_cast<PFN_lfx_SetTargetFrameTime>(reinterpret_cast<void*>( - GetProcAddress(m_lfxModule, - !useFallbackEntrypoints ? "lfx_SetTargetFrameTime" : "winelfx_SetTargetFrameTime"))); + m_lfx_WaitAndBeginFrame = GetProcAddress<PFN_lfx_WaitAndBeginFrame>( + !useFallbackEntrypoints ? "lfx_WaitAndBeginFrame" : "winelfx_WaitAndBeginFrame"); + m_lfx_SetTargetFrameTime = GetProcAddress<PFN_lfx_SetTargetFrameTime>( + !useFallbackEntrypoints ? "lfx_SetTargetFrameTime" : "winelfx_SetTargetFrameTime"); } Lfx::~Lfx() { @@ -56,4 +54,9 @@ namespace dxvk { if (m_lfx_SetTargetFrameTime) m_lfx_SetTargetFrameTime(static_cast<__int64>(frame_time_ns)); } + + template <typename T> + T Lfx::GetProcAddress(const char* name) { + return reinterpret_cast<T>(reinterpret_cast<void*>(::GetProcAddress(m_lfxModule, name))); + } }
\ No newline at end of file diff --git a/src/d3d/lfx.h b/src/d3d/lfx.h index f0b1954..ae21d72 100644 --- a/src/d3d/lfx.h +++ b/src/d3d/lfx.h @@ -19,5 +19,8 @@ namespace dxvk { HMODULE m_lfxModule{}; PFN_lfx_WaitAndBeginFrame m_lfx_WaitAndBeginFrame{}; PFN_lfx_SetTargetFrameTime m_lfx_SetTargetFrameTime{}; + + template <typename T> + T GetProcAddress(const char* name); }; }
\ No newline at end of file |