From 9fac4b9f5f37369130bca4210e244bebb141cf32 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Mon, 14 Oct 2024 14:50:00 +0300
Subject: [PATCH] SDL_windowsmodes.c: Fix MSVC builds against SDKs older than
10.0.17134.0
workaround the missing DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL enum value
and DISPLAYCONFIG_SDR_WHITE_LEVEL struct.
Fixes: https://github.com/libsdl-org/SDL/issues/11193
Closes: https://github.com/libsdl-org/SDL/pull/11205
---
src/video/windows/SDL_windowsmodes.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/video/windows/SDL_windowsmodes.c b/src/video/windows/SDL_windowsmodes.c
index 221db107a3eda..afa468304414c 100644
--- a/src/video/windows/SDL_windowsmodes.c
+++ b/src/video/windows/SDL_windowsmodes.c
@@ -513,7 +513,12 @@ static float WIN_GetSDRWhitePoint(SDL_VideoDevice *_this, HMONITOR hMonitor)
float SDR_white_level = 1.0f;
if (WIN_GetMonitorPathInfo(videodata, hMonitor, &path_info)) {
- DISPLAYCONFIG_SDR_WHITE_LEVEL white_level;
+ /* workarounds for https://github.com/libsdl-org/SDL/issues/11193 */
+ struct SDL_DISPLAYCONFIG_SDR_WHITE_LEVEL {
+ DISPLAYCONFIG_DEVICE_INFO_HEADER header;
+ ULONG SDRWhiteLevel;
+ } white_level;
+ #define DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL 11
SDL_zero(white_level);
white_level.header.type = DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL;