Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/jp7677/dxvk-nvapi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Peters <jp7677@gmail.com>2022-06-25 21:03:32 +0300
committerJens Peters <jp7677@gmail.com>2022-06-25 21:03:32 +0300
commitd7f1d249da1ba32bc995e0c39b7f78ce6cacc508 (patch)
tree6143f60e9bb3cf1cf446be64ff619d05fc318450
parent09a22d77c2003e26352109fcc4ac669e63ba6388 (diff)
lfx: Introduce GetProcAddress template
-rw-r--r--src/d3d/lfx.cpp15
-rw-r--r--src/d3d/lfx.h3
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