From 33f2b91c9915ae886f7c8847bfb907cf0fb5b649 Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Sun, 19 Jan 2025 09:27:26 +0100
Subject: [PATCH] tweak workaound for CreateDIBSection offset bug

---
 src/ddsurface.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ddsurface.c b/src/ddsurface.c
index e52b3fb..96d69de 100644
--- a/src/ddsurface.c
+++ b/src/ddsurface.c
@@ -1553,7 +1553,8 @@ HRESULT dd_CreateSurface(
             if (dst_surface->hdc)
                 InterlockedIncrement(&g_dds_gdi_handles);
 
-            DWORD map_offset = 65280; // CreateDIBSection cannot handle values higher than a WORD - 0xFF00 (guard lines);
+            // CreateDIBSection cannot handle values higher than a WORD - 0xFF00 (guard lines);
+            DWORD map_offset = min(65280, dst_surface->pitch * g_config.guard_lines);
 
             dst_surface->mapping =
                 CreateFileMappingA(