Browse Source

Speed up full-surface fills

(cherry picked from commit 7a3f5ef129d7650f9b1a9077e304a15816323976)
(cherry picked from commit 9f07ac8bba58dd3ee000fee68e6219953393c460)
Starbuck5 4 months ago
parent
commit
1e3465dc99
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/video/SDL_fillrect.c

+ 7 - 0
src/video/SDL_fillrect.c

@@ -61,6 +61,13 @@ static void SDL_FillRect##bpp##SSE(Uint8 *pixels, int pitch, Uint32 color, int w
 { \
     int i, n; \
     Uint8 *p = NULL; \
+  \
+    /* If the number of bytes per row is equal to the pitch, treat */ \
+    /* all rows as one long continuous row (for better performance) */ \
+    if ((w) * (bpp) == pitch) { \
+        w = w * h; \
+        h = 1; \
+    } \
  \
     SSE_BEGIN; \
  \