w32_common: remove backward compatibility code

No longer needed after 9f8b4b38c9.
This commit is contained in:
Kacper Michajłow 2024-06-04 18:44:07 +02:00
parent c6a8b6852c
commit 1a3e3a0c98
2 changed files with 7 additions and 40 deletions

View File

@ -508,6 +508,8 @@ if features['win32-desktop']
cc.find_library('imm32'), cc.find_library('imm32'),
cc.find_library('ntdll'), cc.find_library('ntdll'),
cc.find_library('ole32'), cc.find_library('ole32'),
cc.find_library('shcore'),
cc.find_library('user32'),
cc.find_library('uuid'), cc.find_library('uuid'),
cc.find_library('uxtheme'), cc.find_library('uxtheme'),
cc.find_library('version')] cc.find_library('version')]

View File

@ -26,6 +26,7 @@
#include <dwmapi.h> #include <dwmapi.h>
#include <ole2.h> #include <ole2.h>
#include <process.h> #include <process.h>
#include <shellscalingapi.h>
#include <shobjidl.h> #include <shobjidl.h>
#include <avrt.h> #include <avrt.h>
@ -55,10 +56,6 @@
EXTERN_C IMAGE_DOS_HEADER __ImageBase; EXTERN_C IMAGE_DOS_HEADER __ImageBase;
#define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase) #define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)
#ifndef WM_DPICHANGED
#define WM_DPICHANGED (0x02E0)
#endif
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE #ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 #define DWMWA_USE_IMMERSIVE_DARK_MODE 20
#endif #endif
@ -75,24 +72,12 @@ EXTERN_C IMAGE_DOS_HEADER __ImageBase;
#define DWMWA_SYSTEMBACKDROP_TYPE 38 #define DWMWA_SYSTEMBACKDROP_TYPE 38
#endif #endif
#ifndef DPI_ENUMS_DECLARED
typedef enum MONITOR_DPI_TYPE {
MDT_EFFECTIVE_DPI = 0,
MDT_ANGULAR_DPI = 1,
MDT_RAW_DPI = 2,
MDT_DEFAULT = MDT_EFFECTIVE_DPI
} MONITOR_DPI_TYPE;
#endif
#define rect_w(r) ((r).right - (r).left) #define rect_w(r) ((r).right - (r).left)
#define rect_h(r) ((r).bottom - (r).top) #define rect_h(r) ((r).bottom - (r).top)
#define WM_SHOWMENU (WM_USER + 1) #define WM_SHOWMENU (WM_USER + 1)
struct w32_api { struct w32_api {
HRESULT (WINAPI *pGetDpiForMonitor)(HMONITOR, MONITOR_DPI_TYPE, UINT*, UINT*);
BOOL (WINAPI *pAdjustWindowRectExForDpi)(LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle, UINT dpi);
int (WINAPI *pGetSystemMetricsForDpi)(int nIndex, UINT dpi);
BOOLEAN (WINAPI *pShouldAppsUseDarkMode)(void); BOOLEAN (WINAPI *pShouldAppsUseDarkMode)(void);
DWORD (WINAPI *pSetPreferredAppMode)(DWORD mode); DWORD (WINAPI *pSetPreferredAppMode)(DWORD mode);
}; };
@ -207,9 +192,7 @@ struct vo_w32_state {
static inline int get_system_metrics(struct vo_w32_state *w32, int metric) static inline int get_system_metrics(struct vo_w32_state *w32, int metric)
{ {
return w32->api.pGetSystemMetricsForDpi return GetSystemMetricsForDpi(metric, w32->dpi);
? w32->api.pGetSystemMetricsForDpi(metric, w32->dpi)
: GetSystemMetrics(metric);
} }
static void adjust_window_rect(struct vo_w32_state *w32, HWND hwnd, RECT *rc) static void adjust_window_rect(struct vo_w32_state *w32, HWND hwnd, RECT *rc)
@ -217,13 +200,8 @@ static void adjust_window_rect(struct vo_w32_state *w32, HWND hwnd, RECT *rc)
if (!w32->opts->border && !IsMaximized(w32->window)) if (!w32->opts->border && !IsMaximized(w32->window))
return; return;
if (w32->api.pAdjustWindowRectExForDpi) { AdjustWindowRectExForDpi(rc, GetWindowLongPtrW(hwnd, GWL_STYLE), 0,
w32->api.pAdjustWindowRectExForDpi(rc, GetWindowLongPtrW(hwnd, GWL_EXSTYLE), w32->dpi);
GetWindowLongPtrW(hwnd, GWL_STYLE), 0,
GetWindowLongPtrW(hwnd, GWL_EXSTYLE), w32->dpi);
} else {
AdjustWindowRect(rc, GetWindowLongPtrW(hwnd, GWL_STYLE), 0);
}
} }
static bool check_windows10_build(DWORD build) static bool check_windows10_build(DWORD build)
@ -689,8 +667,7 @@ static void update_dpi(struct vo_w32_state *w32)
HDC hdc = NULL; HDC hdc = NULL;
int dpi = 0; int dpi = 0;
if (w32->api.pGetDpiForMonitor && w32->api.pGetDpiForMonitor(w32->monitor, if (GetDpiForMonitor(w32->monitor, MDT_EFFECTIVE_DPI, &dpiX, &dpiY) == S_OK) {
MDT_EFFECTIVE_DPI, &dpiX, &dpiY) == S_OK) {
dpi = (int)dpiX; dpi = (int)dpiX;
MP_VERBOSE(w32, "DPI detected from the new API: %d\n", dpi); MP_VERBOSE(w32, "DPI detected from the new API: %d\n", dpi);
} else if ((hdc = GetDC(NULL))) { } else if ((hdc = GetDC(NULL))) {
@ -1998,18 +1975,6 @@ void vo_w32_config(struct vo *vo)
static void w32_api_load(struct vo_w32_state *w32) static void w32_api_load(struct vo_w32_state *w32)
{ {
HMODULE shcore_dll = LoadLibraryW(L"shcore.dll");
// Available since Win8.1
w32->api.pGetDpiForMonitor = !shcore_dll ? NULL :
(void *)GetProcAddress(shcore_dll, "GetDpiForMonitor");
HMODULE user32_dll = LoadLibraryW(L"user32.dll");
// Available since Win10
w32->api.pAdjustWindowRectExForDpi = !user32_dll ? NULL :
(void *)GetProcAddress(user32_dll, "AdjustWindowRectExForDpi");
w32->api.pGetSystemMetricsForDpi = !user32_dll ? NULL :
(void *)GetProcAddress(user32_dll, "GetSystemMetricsForDpi");
// Dark mode related functions, available since the 1809 Windows 10 update // Dark mode related functions, available since the 1809 Windows 10 update
// Check the Windows build version as on previous versions used ordinals // Check the Windows build version as on previous versions used ordinals
// may point to unexpected code/data. Alternatively could check uxtheme.dll // may point to unexpected code/data. Alternatively could check uxtheme.dll