ソースを参照

Fixed data alignment for PNG cursors (thanks @Kontrabant!)

Sam Lantinga 1 ヶ月 前
コミット
9d32e0e881
1 ファイル変更12 行追加1 行削除
  1. 12 1
      src/video/windows/SDL_windowsmouse.c

+ 12 - 1
src/video/windows/SDL_windowsmouse.c

@@ -196,7 +196,18 @@ static bool FillIconEntry(CURSORICONFILEDIRENTRY *entry, SDL_Surface *surface, i
 
 static bool WriteIconSurface(SDL_IOStream *dst, SDL_Surface *surface)
 {
-    return SDL_SavePNG_IO(surface, dst, false);
+    if (!SDL_SavePNG_IO(surface, dst, false)) {
+        return false;
+    }
+
+    // Image data offsets must be WORD aligned
+    Sint64 offset = SDL_TellIO(dst);
+    if (offset & 1) {
+        if (!SDL_WriteU8(dst, 0)) {
+            return false;
+        }
+    }
+    return true;
 }
 
 #else