Do not overwrite window surface created by driver
If a driver's implementation of CreateWindowFramebuffer sets the window
surface, use that rather than overwriting it. A driver may set the window
surface if data cannot be passed via the CreateWindowFramebuffer output
parameters (e.g. surface palette colors).
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index de0bc1c..76097a8 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -2319,6 +2319,10 @@
return NULL;
}
+ if (window->surface) {
+ return window->surface;
+ }
+
if (!SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, &Amask)) {
return NULL;
}