Browse Source

surface: Add a private SDL_ReadSurfacePixel

This shares its implementation with SDLTest_ReadSurfacePixel: the same
code is compiled twice, to get it into the static test library and also
the public shared library.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 1 year ago
parent
commit
f5745c3a67
2 changed files with 9 additions and 0 deletions
  1. 7 0
      src/video/SDL_surface.c
  2. 2 0
      src/video/SDL_video_c.h

+ 7 - 0
src/video/SDL_surface.c

@@ -23,6 +23,7 @@
 #include "SDL_sysvideo.h"
 #include "SDL_blit.h"
 #include "SDL_RLEaccel_c.h"
+#include "SDL_surface_pixel_impl.h"
 #include "SDL_pixels_c.h"
 #include "SDL_yuv_c.h"
 #include "../render/SDL_sysrender.h"
@@ -34,6 +35,12 @@ SDL_COMPILE_TIME_ASSERT(surface_size_assumptions,
 
 SDL_COMPILE_TIME_ASSERT(can_indicate_overflow, SDL_SIZE_MAX > SDL_MAX_SINT32);
 
+int
+SDL_ReadSurfacePixel(SDL_Surface *surface, int x, int y, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
+{
+    return SDL_ReadSurfacePixel_impl(surface, x, y, r, g, b, a);
+}
+
 /* Public routines */
 
 /*

+ 2 - 0
src/video/SDL_video_c.h

@@ -57,4 +57,6 @@ extern void SDL_VideoQuit(void);
 
 extern int SDL_SetWindowTextureVSync(SDL_Window *window, int vsync);
 
+extern int SDL_ReadSurfacePixel(SDL_Surface *surface, int x, int y, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a);
+
 #endif /* SDL_video_c_h_ */