mirror of
https://github.com/optiscaler/OptiScaler.git
synced 2026-08-28 09:07:11 +00:00
Merge branch 'v0.9' of https://github.com/optiscaler/OptiScaler into v0.9
This commit is contained in:
+3
-3
@@ -6,9 +6,9 @@
|
||||
#include <shlobj.h>
|
||||
|
||||
typedef LONG(WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
|
||||
typedef DWORD (*PFN_GetFileVersionInfoSizeW)(LPCWSTR lptstrFilename, LPDWORD lpdwHandle);
|
||||
typedef BOOL (*PFN_GetFileVersionInfoW)(LPCWSTR lptstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData);
|
||||
typedef BOOL (*PFN_VerQueryValueW)(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID* lplpBuffer, PUINT puLen);
|
||||
typedef decltype(&GetFileVersionInfoSizeW) PFN_GetFileVersionInfoSizeW;
|
||||
typedef decltype(&GetFileVersionInfoW) PFN_GetFileVersionInfoW;
|
||||
typedef decltype(&VerQueryValueW) PFN_VerQueryValueW;
|
||||
|
||||
static IID streamlineRiid {};
|
||||
|
||||
|
||||
@@ -8,10 +8,9 @@
|
||||
|
||||
const HKEY signatureMark = (HKEY) 0xFFFFFFFF13372137;
|
||||
|
||||
typedef LSTATUS (*PFN_RegOpenKeyExW)(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
|
||||
typedef LSTATUS (*PFN_RegEnumValueW)(HKEY hKey, DWORD dwIndex, LPWSTR lpValueName, LPDWORD lpcchValueName,
|
||||
LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
|
||||
typedef LSTATUS (*PFN_RegCloseKey)(HKEY hKey);
|
||||
typedef decltype(&RegOpenKeyExW) PFN_RegOpenKeyExW;
|
||||
typedef decltype(&RegEnumValueW) PFN_RegEnumValueW;
|
||||
typedef decltype(&RegCloseKey) PFN_RegCloseKey;
|
||||
|
||||
static PFN_RegOpenKeyExW o_RegOpenKeyExW = nullptr;
|
||||
static PFN_RegEnumValueW o_RegEnumValueW = nullptr;
|
||||
|
||||
@@ -7,10 +7,8 @@
|
||||
#include "detours/detours.h"
|
||||
#include <wincrypt.h>
|
||||
|
||||
typedef BOOL (*PFN_CryptQueryObject)(DWORD dwObjectType, const void* pvObject, DWORD dwExpectedContentTypeFlags,
|
||||
DWORD dwExpectedFormatTypeFlags, DWORD dwFlags, DWORD* pdwMsgAndCertEncodingType,
|
||||
DWORD* pdwContentType, DWORD* pdwFormatType, HCERTSTORE* phCertStore,
|
||||
HCRYPTMSG* phMsg, const void** ppvContext);
|
||||
typedef decltype(&CryptQueryObject) PFN_CryptQueryObject;
|
||||
|
||||
static PFN_CryptQueryObject o_CryptQueryObject = nullptr;
|
||||
|
||||
static BOOL hkCryptQueryObject(DWORD dwObjectType, const void* pvObject, DWORD dwExpectedContentTypeFlags,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <WinTrust.h>
|
||||
#include <Softpub.h>
|
||||
|
||||
typedef LONG (*PFN_WinVerifyTrust)(HWND hwnd, GUID* pgActionID, LPVOID pWVTData);
|
||||
typedef decltype(&WinVerifyTrust) PFN_WinVerifyTrust;
|
||||
static PFN_WinVerifyTrust o_WinVerifyTrust = nullptr;
|
||||
|
||||
static LONG hkWinVerifyTrust(HWND hwnd, GUID* pgActionID, LPVOID pWVTData)
|
||||
|
||||
@@ -83,12 +83,12 @@ class MenuCommon
|
||||
#pragma region "Hooks & WndProc"
|
||||
|
||||
// for hooking
|
||||
typedef BOOL (*PFN_SetCursorPos)(int x, int y);
|
||||
typedef BOOL (*PFN_ClipCursor)(const RECT* lpRect);
|
||||
typedef UINT (*PFN_SendInput)(UINT cInputs, LPINPUT pInputs, int cbSize);
|
||||
typedef void (*PFN_mouse_event)(DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo);
|
||||
typedef BOOL (*PFN_GetCursorPos)(LPPOINT lpPoint);
|
||||
typedef LRESULT (*PFN_SendMessageW)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
|
||||
typedef decltype(&SetCursorPos) PFN_SetCursorPos;
|
||||
typedef decltype(&ClipCursor) PFN_ClipCursor;
|
||||
typedef decltype(&SendInput) PFN_SendInput;
|
||||
typedef decltype(&mouse_event) PFN_mouse_event;
|
||||
typedef decltype(&GetCursorPos) PFN_GetCursorPos;
|
||||
typedef decltype(&SendMessageW) PFN_SendMessageW;
|
||||
|
||||
inline static PFN_SetCursorPos pfn_SetPhysicalCursorPos = nullptr;
|
||||
inline static PFN_SetCursorPos pfn_SetCursorPos = nullptr;
|
||||
|
||||
+317
-274
File diff suppressed because it is too large
Load Diff
@@ -13,20 +13,18 @@
|
||||
class Kernel32Proxy
|
||||
{
|
||||
public:
|
||||
typedef BOOL(WINAPI* PFN_FreeLibrary)(HMODULE lpLibrary);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryA)(LPCSTR lpLibFileName);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryW)(LPCWSTR lpLibFileName);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryExA)(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryExW)(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
|
||||
typedef FARPROC(WINAPI* PFN_GetProcAddress)(HMODULE hModule, LPCSTR lpProcName);
|
||||
typedef HMODULE(WINAPI* PFN_GetModuleHandleA)(LPCSTR lpModuleName);
|
||||
typedef HMODULE(WINAPI* PFN_GetModuleHandleW)(LPCWSTR lpModuleName);
|
||||
typedef BOOL(WINAPI* PFN_GetModuleHandleExA)(DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule);
|
||||
typedef BOOL(WINAPI* PFN_GetModuleHandleExW)(DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule);
|
||||
typedef DWORD(WINAPI* PFN_GetFileAttributesW)(LPCWSTR lpFileName);
|
||||
typedef HANDLE(WINAPI* PFN_CreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
|
||||
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition,
|
||||
DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
|
||||
typedef decltype(&FreeLibrary) PFN_FreeLibrary;
|
||||
typedef decltype(&LoadLibraryA) PFN_LoadLibraryA;
|
||||
typedef decltype(&LoadLibraryW) PFN_LoadLibraryW;
|
||||
typedef decltype(&LoadLibraryExA) PFN_LoadLibraryExA;
|
||||
typedef decltype(&LoadLibraryExW) PFN_LoadLibraryExW;
|
||||
typedef decltype(&GetProcAddress) PFN_GetProcAddress;
|
||||
typedef decltype(&GetModuleHandleA) PFN_GetModuleHandleA;
|
||||
typedef decltype(&GetModuleHandleW) PFN_GetModuleHandleW;
|
||||
typedef decltype(&GetModuleHandleExA) PFN_GetModuleHandleExA;
|
||||
typedef decltype(&GetModuleHandleExW) PFN_GetModuleHandleExW;
|
||||
typedef decltype(&GetFileAttributesW) PFN_GetFileAttributesW;
|
||||
typedef decltype(&CreateFileW) PFN_CreateFileW;
|
||||
|
||||
static void Init()
|
||||
{
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
class KernelBaseProxy
|
||||
{
|
||||
public:
|
||||
typedef BOOL(WINAPI* PFN_FreeLibrary)(HMODULE lpLibrary);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryA)(LPCSTR lpLibFileName);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryW)(LPCWSTR lpLibFileName);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryExA)(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
|
||||
typedef HMODULE(WINAPI* PFN_LoadLibraryExW)(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
|
||||
typedef FARPROC(WINAPI* PFN_GetProcAddress)(HMODULE hModule, LPCSTR lpProcName);
|
||||
typedef HMODULE(WINAPI* PFN_GetModuleHandleA)(LPCSTR lpModuleName);
|
||||
typedef HMODULE(WINAPI* PFN_GetModuleHandleW)(LPCWSTR lpModuleName);
|
||||
typedef BOOL(WINAPI* PFN_GetModuleHandleExA)(DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule);
|
||||
typedef BOOL(WINAPI* PFN_GetModuleHandleExW)(DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule);
|
||||
typedef decltype(&FreeLibrary) PFN_FreeLibrary;
|
||||
typedef decltype(&LoadLibraryA) PFN_LoadLibraryA;
|
||||
typedef decltype(&LoadLibraryW) PFN_LoadLibraryW;
|
||||
typedef decltype(&LoadLibraryExA) PFN_LoadLibraryExA;
|
||||
typedef decltype(&LoadLibraryExW) PFN_LoadLibraryExW;
|
||||
typedef decltype(&GetProcAddress) PFN_GetProcAddress;
|
||||
typedef decltype(&GetModuleHandleA) PFN_GetModuleHandleA;
|
||||
typedef decltype(&GetModuleHandleW) PFN_GetModuleHandleW;
|
||||
typedef decltype(&GetModuleHandleExA) PFN_GetModuleHandleExA;
|
||||
typedef decltype(&GetModuleHandleExW) PFN_GetModuleHandleExW;
|
||||
|
||||
static void Init()
|
||||
{
|
||||
|
||||
@@ -107,8 +107,8 @@ class NtdllProxy
|
||||
}
|
||||
|
||||
private:
|
||||
typedef VOID(NTAPI* PFN_RtlInitUnicodeString)(PUNICODE_STRING DestinationString, PCWSTR SourceString);
|
||||
typedef ULONG(NTAPI* PFN_RtlNtStatusToDosError)(NTSTATUS Status);
|
||||
typedef decltype(&RtlInitUnicodeString) PFN_RtlInitUnicodeString;
|
||||
typedef decltype(&RtlNtStatusToDosError) PFN_RtlNtStatusToDosError;
|
||||
|
||||
inline static HMODULE _dll = nullptr;
|
||||
|
||||
|
||||
@@ -15,52 +15,29 @@
|
||||
#pragma comment(lib, "Version.lib")
|
||||
|
||||
// Common
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetVersion)(xefg_swapchain_version_t* pVersion);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetProperties)(xefg_swapchain_handle_t hSwapChain,
|
||||
xefg_swapchain_properties_t* pProperties);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainTagFrameConstants)(
|
||||
xefg_swapchain_handle_t hSwapChain, uint32_t presentId, const xefg_swapchain_frame_constant_data_t* pConstants);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetEnabled)(xefg_swapchain_handle_t hSwapChain, uint32_t enable);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetPresentId)(xefg_swapchain_handle_t hSwapChain,
|
||||
uint32_t presentId);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetLastPresentStatus)(
|
||||
xefg_swapchain_handle_t hSwapChain, xefg_swapchain_present_status_t* pPresentStatus);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetLoggingCallback)(
|
||||
xefg_swapchain_handle_t hSwapChain, xefg_swapchain_logging_level_t loggingLevel,
|
||||
xefg_swapchain_app_log_callback_t loggingCallback, void* userData);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainDestroy)(xefg_swapchain_handle_t hSwapChain);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetLatencyReduction)(xefg_swapchain_handle_t hSwapChain,
|
||||
void* hXeLLContext);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetSceneChangeThreshold)(xefg_swapchain_handle_t hSwapChain,
|
||||
float threshold);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetPipelineBuildStatus)(xefg_swapchain_handle_t hSwapChain);
|
||||
typedef decltype(&xefgSwapChainGetVersion) PFN_xefgSwapChainGetVersion;
|
||||
typedef decltype(&xefgSwapChainGetProperties) PFN_xefgSwapChainGetProperties;
|
||||
typedef decltype(&xefgSwapChainTagFrameConstants) PFN_xefgSwapChainTagFrameConstants;
|
||||
typedef decltype(&xefgSwapChainSetEnabled) PFN_xefgSwapChainSetEnabled;
|
||||
typedef decltype(&xefgSwapChainSetPresentId) PFN_xefgSwapChainSetPresentId;
|
||||
typedef decltype(&xefgSwapChainGetLastPresentStatus) PFN_xefgSwapChainGetLastPresentStatus;
|
||||
typedef decltype(&xefgSwapChainSetLoggingCallback) PFN_xefgSwapChainSetLoggingCallback;
|
||||
typedef decltype(&xefgSwapChainDestroy) PFN_xefgSwapChainDestroy;
|
||||
typedef decltype(&xefgSwapChainSetLatencyReduction) PFN_xefgSwapChainSetLatencyReduction;
|
||||
typedef decltype(&xefgSwapChainSetSceneChangeThreshold) PFN_xefgSwapChainSetSceneChangeThreshold;
|
||||
typedef decltype(&xefgSwapChainGetPipelineBuildStatus) PFN_xefgSwapChainGetPipelineBuildStatus;
|
||||
|
||||
// Dx12
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12CreateContext)(ID3D12Device* pDevice,
|
||||
xefg_swapchain_handle_t* phSwapChain);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12BuildPipelines)(xefg_swapchain_handle_t hSwapChain,
|
||||
ID3D12PipelineLibrary* pPipelineLibrary,
|
||||
bool blocking, uint32_t initFlags);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12InitFromSwapChain)(
|
||||
xefg_swapchain_handle_t hSwapChain, ID3D12CommandQueue* pCmdQueue,
|
||||
const xefg_swapchain_d3d12_init_params_t* pInitParams);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12InitFromSwapChainDesc)(
|
||||
xefg_swapchain_handle_t hSwapChain, HWND hWnd, const DXGI_SWAP_CHAIN_DESC1* pSwapChainDesc,
|
||||
const DXGI_SWAP_CHAIN_FULLSCREEN_DESC* pFullscreenDesc, ID3D12CommandQueue* pCmdQueue, IDXGIFactory2* pDxgiFactory,
|
||||
const xefg_swapchain_d3d12_init_params_t* pInitParams);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12GetSwapChainPtr)(xefg_swapchain_handle_t hSwapChain,
|
||||
REFIID riid, void** ppSwapChain);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12TagFrameResource)(
|
||||
xefg_swapchain_handle_t hSwapChain, ID3D12CommandList* pCmdList, uint32_t presentId,
|
||||
const xefg_swapchain_d3d12_resource_data_t* pResData);
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12SetDescriptorHeap)(xefg_swapchain_handle_t hSwapChain,
|
||||
ID3D12DescriptorHeap* pDescriptorHeap,
|
||||
uint32_t descriptorHeapOffsetInBytes);
|
||||
typedef decltype(&xefgSwapChainD3D12CreateContext) PFN_xefgSwapChainD3D12CreateContext;
|
||||
typedef decltype(&xefgSwapChainD3D12BuildPipelines) PFN_xefgSwapChainD3D12BuildPipelines;
|
||||
typedef decltype(&xefgSwapChainD3D12InitFromSwapChain) PFN_xefgSwapChainD3D12InitFromSwapChain;
|
||||
typedef decltype(&xefgSwapChainD3D12InitFromSwapChainDesc) PFN_xefgSwapChainD3D12InitFromSwapChainDesc;
|
||||
typedef decltype(&xefgSwapChainD3D12GetSwapChainPtr) PFN_xefgSwapChainD3D12GetSwapChainPtr;
|
||||
typedef decltype(&xefgSwapChainD3D12TagFrameResource) PFN_xefgSwapChainD3D12TagFrameResource;
|
||||
typedef decltype(&xefgSwapChainD3D12SetDescriptorHeap) PFN_xefgSwapChainD3D12SetDescriptorHeap;
|
||||
|
||||
// Debug
|
||||
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainEnableDebugFeature)(xefg_swapchain_handle_t hSwapChain,
|
||||
xefg_swapchain_debug_feature_t featureId,
|
||||
uint32_t enable, void* pArgument);
|
||||
typedef decltype(&xefgSwapChainEnableDebugFeature) PFN_xefgSwapChainEnableDebugFeature;
|
||||
|
||||
class XeFGProxy
|
||||
{
|
||||
|
||||
@@ -16,18 +16,16 @@
|
||||
#pragma comment(lib, "Version.lib")
|
||||
|
||||
// Common
|
||||
typedef xell_result_t (*PFN_xellDestroyContext)(xell_context_handle_t context);
|
||||
typedef xell_result_t (*PFN_xellSetSleepMode)(xell_context_handle_t context, const xell_sleep_params_t* param);
|
||||
typedef xell_result_t (*PFN_xellGetSleepMode)(xell_context_handle_t context, xell_sleep_params_t* param);
|
||||
typedef xell_result_t (*PFN_xellSleep)(xell_context_handle_t context, uint32_t frame_id);
|
||||
typedef xell_result_t (*PFN_xellAddMarkerData)(xell_context_handle_t context, uint32_t frame_id,
|
||||
xell_latency_marker_type_t marker);
|
||||
typedef xell_result_t (*PFN_xellGetVersion)(xell_version_t* pVersion);
|
||||
typedef xell_result_t (*PFN_xellSetLoggingCallback)(xell_context_handle_t hContext, xell_logging_level_t loggingLevel,
|
||||
xell_app_log_callback_t loggingCallback);
|
||||
typedef decltype(&xellDestroyContext) PFN_xellDestroyContext;
|
||||
typedef decltype(&xellSetSleepMode) PFN_xellSetSleepMode;
|
||||
typedef decltype(&xellGetSleepMode) PFN_xellGetSleepMode;
|
||||
typedef decltype(&xellSleep) PFN_xellSleep;
|
||||
typedef decltype(&xellAddMarkerData) PFN_xellAddMarkerData;
|
||||
typedef decltype(&xellGetVersion) PFN_xellGetVersion;
|
||||
typedef decltype(&xellSetLoggingCallback) PFN_xellSetLoggingCallback;
|
||||
|
||||
// Dx12
|
||||
typedef xell_result_t (*PFN_xellD3D12CreateContext)(ID3D12Device* device, xell_context_handle_t* out_context);
|
||||
typedef decltype(&xellD3D12CreateContext) PFN_xellD3D12CreateContext;
|
||||
|
||||
class XeLLProxy
|
||||
{
|
||||
|
||||
@@ -24,75 +24,51 @@
|
||||
|
||||
#pragma comment(lib, "Version.lib")
|
||||
|
||||
typedef xess_result_t (*PFN_xessD3D12CreateContext)(ID3D12Device* pDevice, xess_context_handle_t* phContext);
|
||||
typedef xess_result_t (*PFN_xessD3D12BuildPipelines)(xess_context_handle_t hContext,
|
||||
ID3D12PipelineLibrary* pPipelineLibrary, bool blocking,
|
||||
uint32_t initFlags);
|
||||
typedef xess_result_t (*PRN_xessD3D12Init)(xess_context_handle_t hContext, const xess_d3d12_init_params_t* pInitParams);
|
||||
typedef xess_result_t (*PFN_xessD3D12Execute)(xess_context_handle_t hContext, ID3D12GraphicsCommandList* pCommandList,
|
||||
const xess_d3d12_execute_params_t* pExecParams);
|
||||
typedef xess_result_t (*PFN_xessSelectNetworkModel)(xess_context_handle_t hContext, xess_network_model_t network);
|
||||
typedef xess_result_t (*PFN_xessStartDump)(xess_context_handle_t hContext,
|
||||
const xess_dump_parameters_t* dump_parameters);
|
||||
typedef xess_result_t (*PFN_xessGetVersion)(xess_version_t* pVersion);
|
||||
typedef xess_result_t (*PFN_xessIsOptimalDriver)(xess_context_handle_t hContext);
|
||||
typedef xess_result_t (*PFN_xessSetLoggingCallback)(xess_context_handle_t hContext, xess_logging_level_t loggingLevel,
|
||||
xess_app_log_callback_t loggingCallback);
|
||||
typedef xess_result_t (*PFN_xessGetProperties)(xess_context_handle_t hContext, const xess_2d_t* pOutputResolution,
|
||||
xess_properties_t* pBindingProperties);
|
||||
typedef xess_result_t (*PFN_xessDestroyContext)(xess_context_handle_t hContext);
|
||||
typedef xess_result_t (*PFN_xessSetVelocityScale)(xess_context_handle_t hContext, float x, float y);
|
||||
typedef decltype(&xessD3D12CreateContext) PFN_xessD3D12CreateContext;
|
||||
typedef decltype(&xessD3D12BuildPipelines) PFN_xessD3D12BuildPipelines;
|
||||
typedef decltype(&xessD3D12Init) PFN_xessD3D12Init;
|
||||
typedef decltype(&xessD3D12Execute) PFN_xessD3D12Execute;
|
||||
typedef decltype(&xessSelectNetworkModel) PFN_xessSelectNetworkModel;
|
||||
typedef decltype(&xessStartDump) PFN_xessStartDump;
|
||||
typedef decltype(&xessGetVersion) PFN_xessGetVersion;
|
||||
typedef decltype(&xessIsOptimalDriver) PFN_xessIsOptimalDriver;
|
||||
typedef decltype(&xessSetLoggingCallback) PFN_xessSetLoggingCallback;
|
||||
typedef decltype(&xessGetProperties) PFN_xessGetProperties;
|
||||
typedef decltype(&xessDestroyContext) PFN_xessDestroyContext;
|
||||
typedef decltype(&xessSetVelocityScale) PFN_xessSetVelocityScale;
|
||||
|
||||
typedef xess_result_t (*PFN_xessD3D12GetInitParams)(xess_context_handle_t hContext,
|
||||
xess_d3d12_init_params_t* pInitParams);
|
||||
typedef xess_result_t (*PFN_xessForceLegacyScaleFactors)(xess_context_handle_t hContext, bool force);
|
||||
typedef xess_result_t (*PFN_xessGetExposureMultiplier)(xess_context_handle_t hContext, float* pScale);
|
||||
typedef xess_result_t (*PFN_xessGetInputResolution)(xess_context_handle_t hContext, const xess_2d_t* pOutputResolution,
|
||||
xess_quality_settings_t qualitySettings,
|
||||
xess_2d_t* pInputResolution);
|
||||
typedef xess_result_t (*PFN_xessGetIntelXeFXVersion)(xess_context_handle_t hContext, xess_version_t* pVersion);
|
||||
typedef xess_result_t (*PFN_xessGetJitterScale)(xess_context_handle_t hContext, float* pX, float* pY);
|
||||
typedef xess_result_t (*PFN_xessGetOptimalInputResolution)(
|
||||
xess_context_handle_t hContext, const xess_2d_t* pOutputResolution, xess_quality_settings_t qualitySettings,
|
||||
xess_2d_t* pInputResolutionOptimal, xess_2d_t* pInputResolutionMin, xess_2d_t* pInputResolutionMax);
|
||||
typedef xess_result_t (*PFN_xessSetExposureMultiplier)(xess_context_handle_t hContext, float scale);
|
||||
typedef xess_result_t (*PFN_xessSetJitterScale)(xess_context_handle_t hContext, float x, float y);
|
||||
typedef decltype(&xessD3D12GetInitParams) PFN_xessD3D12GetInitParams;
|
||||
typedef decltype(&xessForceLegacyScaleFactors) PFN_xessForceLegacyScaleFactors;
|
||||
typedef decltype(&xessGetExposureMultiplier) PFN_xessGetExposureMultiplier;
|
||||
typedef decltype(&xessGetInputResolution) PFN_xessGetInputResolution;
|
||||
typedef decltype(&xessGetIntelXeFXVersion) PFN_xessGetIntelXeFXVersion;
|
||||
typedef decltype(&xessGetJitterScale) PFN_xessGetJitterScale;
|
||||
typedef decltype(&xessGetOptimalInputResolution) PFN_xessGetOptimalInputResolution;
|
||||
typedef decltype(&xessSetExposureMultiplier) PFN_xessSetExposureMultiplier;
|
||||
typedef decltype(&xessSetJitterScale) PFN_xessSetJitterScale;
|
||||
|
||||
typedef xess_result_t (*PFN_xessD3D12GetResourcesToDump)(xess_context_handle_t hContext,
|
||||
xess_resources_to_dump_t** pResourcesToDump);
|
||||
typedef xess_result_t (*PFN_xessD3D12GetProfilingData)(xess_context_handle_t hContext,
|
||||
xess_profiling_data_t** pProfilingData);
|
||||
typedef decltype(&xessD3D12GetResourcesToDump) PFN_xessD3D12GetResourcesToDump;
|
||||
typedef decltype(&xessD3D12GetProfilingData) PFN_xessD3D12GetProfilingData;
|
||||
|
||||
typedef xess_result_t (*PFN_xessSetContextParameterF)();
|
||||
typedef xess_result_t (*PFN_xessGetPipelineBuildStatus)(xess_context_handle_t hContext);
|
||||
typedef xess_result_t (*PFN_xessSetContextParameterF)(); // XeSS' headers don't export this
|
||||
typedef decltype(&xessGetPipelineBuildStatus) PFN_xessGetPipelineBuildStatus;
|
||||
|
||||
// Vulkan?!?
|
||||
typedef xess_result_t (*PFN_xessVKGetRequiredInstanceExtensions)(uint32_t* instanceExtensionsCount,
|
||||
const char* const** instanceExtensions,
|
||||
uint32_t* minVkApiVersion);
|
||||
typedef xess_result_t (*PFN_xessVKGetRequiredDeviceExtensions)(VkInstance instance, VkPhysicalDevice physicalDevice,
|
||||
uint32_t* deviceExtensionsCount,
|
||||
const char* const** deviceExtensions);
|
||||
typedef xess_result_t (*PFN_xessVKGetRequiredDeviceFeatures)(VkInstance instance, VkPhysicalDevice physicalDevice,
|
||||
void** features);
|
||||
typedef xess_result_t (*PFN_xessVKCreateContext)(VkInstance instance, VkPhysicalDevice physicalDevice, VkDevice device,
|
||||
xess_context_handle_t* phContext);
|
||||
typedef xess_result_t (*PFN_xessVKBuildPipelines)(xess_context_handle_t hContext, VkPipelineCache pipelineCache,
|
||||
bool blocking, uint32_t initFlags);
|
||||
typedef xess_result_t (*PFN_xessVKInit)(xess_context_handle_t hContext, const xess_vk_init_params_t* pInitParams);
|
||||
typedef xess_result_t (*PFN_xessVKGetInitParams)(xess_context_handle_t hContext, xess_vk_init_params_t* pInitParams);
|
||||
typedef xess_result_t (*PFN_xessVKExecute)(xess_context_handle_t hContext, VkCommandBuffer commandBuffer,
|
||||
const xess_vk_execute_params_t* pExecParams);
|
||||
typedef xess_result_t (*PFN_xessVKGetResourcesToDump)(xess_context_handle_t hContext,
|
||||
xess_vk_resources_to_dump_t** pResourcesToDump);
|
||||
typedef decltype(&xessVKGetRequiredInstanceExtensions) PFN_xessVKGetRequiredInstanceExtensions;
|
||||
typedef decltype(&xessVKGetRequiredDeviceExtensions) PFN_xessVKGetRequiredDeviceExtensions;
|
||||
typedef decltype(&xessVKGetRequiredDeviceFeatures) PFN_xessVKGetRequiredDeviceFeatures;
|
||||
typedef decltype(&xessVKCreateContext) PFN_xessVKCreateContext;
|
||||
typedef decltype(&xessVKBuildPipelines) PFN_xessVKBuildPipelines;
|
||||
typedef decltype(&xessVKInit) PFN_xessVKInit;
|
||||
typedef decltype(&xessVKGetInitParams) PFN_xessVKGetInitParams;
|
||||
typedef decltype(&xessVKExecute) PFN_xessVKExecute;
|
||||
typedef decltype(&xessVKGetResourcesToDump) PFN_xessVKGetResourcesToDump;
|
||||
|
||||
// Dx11
|
||||
typedef xess_result_t (*PFN_xessD3D11CreateContext)(ID3D11Device* device, xess_context_handle_t* phContext);
|
||||
typedef xess_result_t (*PFN_xessD3D11Init)(xess_context_handle_t hContext, const xess_d3d11_init_params_t* pInitParams);
|
||||
typedef xess_result_t (*PFN_xessD3D11GetInitParams)(xess_context_handle_t hContext,
|
||||
xess_d3d11_init_params_t* pInitParams);
|
||||
typedef xess_result_t (*PFN_xessD3D11Execute)(xess_context_handle_t hContext,
|
||||
const xess_d3d11_execute_params_t* pExecParams);
|
||||
typedef decltype(&xessD3D11CreateContext) PFN_xessD3D11CreateContext;
|
||||
typedef decltype(&xessD3D11Init) PFN_xessD3D11Init;
|
||||
typedef decltype(&xessD3D11GetInitParams) PFN_xessD3D11GetInitParams;
|
||||
typedef decltype(&xessD3D11Execute) PFN_xessD3D11Execute;
|
||||
|
||||
class XeSSProxy
|
||||
{
|
||||
@@ -105,7 +81,7 @@ class XeSSProxy
|
||||
|
||||
inline static PFN_xessD3D12CreateContext _xessD3D12CreateContext = nullptr;
|
||||
inline static PFN_xessD3D12BuildPipelines _xessD3D12BuildPipelines = nullptr;
|
||||
inline static PRN_xessD3D12Init _xessD3D12Init = nullptr;
|
||||
inline static PFN_xessD3D12Init _xessD3D12Init = nullptr;
|
||||
inline static PFN_xessD3D12Execute _xessD3D12Execute = nullptr;
|
||||
inline static PFN_xessSelectNetworkModel _xessSelectNetworkModel = nullptr;
|
||||
inline static PFN_xessStartDump _xessStartDump = nullptr;
|
||||
@@ -361,7 +337,7 @@ class XeSSProxy
|
||||
(PFN_xessD3D12CreateContext) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12CreateContext");
|
||||
_xessD3D12BuildPipelines =
|
||||
(PFN_xessD3D12BuildPipelines) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12BuildPipelines");
|
||||
_xessD3D12Init = (PRN_xessD3D12Init) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12Init");
|
||||
_xessD3D12Init = (PFN_xessD3D12Init) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12Init");
|
||||
_xessD3D12Execute = (PFN_xessD3D12Execute) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12Execute");
|
||||
_xessSelectNetworkModel =
|
||||
(PFN_xessSelectNetworkModel) KernelBaseProxy::GetProcAddress_()(_dll, "xessSelectNetworkModel");
|
||||
@@ -432,7 +408,7 @@ class XeSSProxy
|
||||
(PFN_xessD3D12CreateContext) DetourFindFunction("libxess.dll", "xessD3D12CreateContext");
|
||||
_xessD3D12BuildPipelines =
|
||||
(PFN_xessD3D12BuildPipelines) DetourFindFunction("libxess.dll", "xessD3D12BuildPipelines");
|
||||
_xessD3D12Init = (PRN_xessD3D12Init) DetourFindFunction("libxess.dll", "xessD3D12Init");
|
||||
_xessD3D12Init = (PFN_xessD3D12Init) DetourFindFunction("libxess.dll", "xessD3D12Init");
|
||||
_xessGetVersion = (PFN_xessGetVersion) DetourFindFunction("libxess.dll", "xessGetVersion");
|
||||
_xessD3D12Execute = (PFN_xessD3D12Execute) DetourFindFunction("libxess.dll", "xessD3D12Execute");
|
||||
_xessSelectNetworkModel =
|
||||
@@ -888,7 +864,7 @@ class XeSSProxy
|
||||
|
||||
static PFN_xessD3D12CreateContext D3D12CreateContext() { return _xessD3D12CreateContext; }
|
||||
static PFN_xessD3D12BuildPipelines D3D12BuildPipelines() { return _xessD3D12BuildPipelines; }
|
||||
static PRN_xessD3D12Init D3D12Init() { return _xessD3D12Init; }
|
||||
static PFN_xessD3D12Init D3D12Init() { return _xessD3D12Init; }
|
||||
static PFN_xessD3D12Execute D3D12Execute() { return _xessD3D12Execute; }
|
||||
static PFN_xessSelectNetworkModel SelectNetworkModel() { return _xessSelectNetworkModel; }
|
||||
static PFN_xessStartDump StartDump() { return _xessStartDump; }
|
||||
|
||||
Reference in New Issue
Block a user