X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=a794a153ec85f4adba6e3d73a1abac4224269af8;hp=47ad26237b32ab1186c6a059152f038c69655b96;hb=30eb586d06bc4d1ee7388dced1c20e530292aa93;hpb=457abe4e8de9b10096af75c026409ab068570b7f diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 47ad2623..a794a153 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -245,6 +245,20 @@ static void UpdateScreen_WithoutFrameDelay(SDL_Rect *rect) UpdateScreenExt(rect, FALSE); } +void Delay_WithScreenUpdates(unsigned int delay) +{ + unsigned int time_current = SDL_GetTicks(); + unsigned int time_delayed = time_current + delay; + + while (time_current < time_delayed) + { + // updating the screen contains waiting for frame delay (non-busy) + UpdateScreen_WithFrameDelay(NULL); + + time_current = SDL_GetTicks(); + } +} + static void SDLSetWindowIcon(char *basename) { /* (setting the window icon on Mac OS X would replace the high-quality @@ -541,7 +555,7 @@ inline static void SDLInitVideoBuffer_VideoBuffer(boolean fullscreen) SDLSetWindowTitle(); } -inline static void SDLInitVideoBuffer_DrawBuffer() +inline static void SDLInitVideoBuffer_DrawBuffer(void) { /* SDL cannot directly draw to the visible video framebuffer like X11, but always uses a backbuffer, which is then blitted to the visible @@ -829,7 +843,7 @@ boolean SDLSetVideoMode(boolean fullscreen) return success; } -void SDLSetWindowTitle() +void SDLSetWindowTitle(void) { #if defined(TARGET_SDL2) if (sdl_window == NULL) @@ -922,7 +936,7 @@ void SDLSetWindowFullscreen(boolean fullscreen) } } -void SDLSetDisplaySize() +void SDLSetDisplaySize(void) { SDL_Rect display_bounds; @@ -976,7 +990,7 @@ void SDLSetScreenSizeForRenderer(int width, int height) SDL_RenderSetLogicalSize(sdl_renderer, width, height); } -void SDLSetScreenProperties() +void SDLSetScreenProperties(void) { SDLSetScreenSizeAndOffsets(video.width, video.height); SDLSetScreenSizeForRenderer(video.screen_width, video.screen_height); @@ -999,7 +1013,7 @@ void SDLSetScreenRenderingMode(char *screen_rendering_mode) #endif } -void SDLRedrawWindow() +void SDLRedrawWindow(void) { UpdateScreen_WithoutFrameDelay(NULL); } @@ -1389,20 +1403,7 @@ void SDLFadeRectangle(int x, int y, int width, int height, } if (post_delay > 0) - { - unsigned int time_post_delay; - - time_current = SDL_GetTicks(); - time_post_delay = time_current + post_delay; - - while (time_current < time_post_delay) - { - // updating the screen contains waiting for frame delay (non-busy) - UpdateScreen_WithFrameDelay(NULL); - - time_current = SDL_GetTicks(); - } - } + Delay_WithScreenUpdates(post_delay); // restore function for drawing global masked border gfx.draw_global_border_function = draw_global_border_function; @@ -1521,7 +1522,7 @@ Pixel SDLGetPixel(Bitmap *src_bitmap, int x, int y) /* http://www.etek.chalmers.se/~e8cal1/sge/index.html */ /* ========================================================================= */ -void _PutPixel(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) +static void _PutPixel(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) { if (x >= 0 && x <= surface->w - 1 && y >= 0 && y <= surface->h - 1) { @@ -1568,23 +1569,24 @@ void _PutPixel(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) } } -void _PutPixelRGB(SDL_Surface *surface, Sint16 x, Sint16 y, - Uint8 R, Uint8 G, Uint8 B) +#if 0 +static void _PutPixelRGB(SDL_Surface *surface, Sint16 x, Sint16 y, + Uint8 R, Uint8 G, Uint8 B) { _PutPixel(surface, x, y, SDL_MapRGB(surface->format, R, G, B)); } -void _PutPixel8(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) +static void _PutPixel8(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) { *((Uint8 *)surface->pixels + y*surface->pitch + x) = color; } -void _PutPixel16(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) +static void _PutPixel16(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) { *((Uint16 *)surface->pixels + y*surface->pitch/2 + x) = color; } -void _PutPixel24(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) +static void _PutPixel24(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) { Uint8 *pix; int shift; @@ -1599,12 +1601,12 @@ void _PutPixel24(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) *(pix+shift/8) = color>>shift; } -void _PutPixel32(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) +static void _PutPixel32(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) { *((Uint32 *)surface->pixels + y*surface->pitch/4 + x) = color; } -void _PutPixelX(SDL_Surface *dest,Sint16 x,Sint16 y,Uint32 color) +static void _PutPixelX(SDL_Surface *dest,Sint16 x,Sint16 y,Uint32 color) { switch (dest->format->BytesPerPixel) { @@ -1625,8 +1627,9 @@ void _PutPixelX(SDL_Surface *dest,Sint16 x,Sint16 y,Uint32 color) break; } } +#endif -void sge_PutPixel(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) +static void sge_PutPixel(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) { if (SDL_MUSTLOCK(surface)) { @@ -1644,13 +1647,14 @@ void sge_PutPixel(SDL_Surface *surface, Sint16 x, Sint16 y, Uint32 color) } } -void sge_PutPixelRGB(SDL_Surface *surface, Sint16 x, Sint16 y, - Uint8 r, Uint8 g, Uint8 b) +#if 0 +static void sge_PutPixelRGB(SDL_Surface *surface, Sint16 x, Sint16 y, + Uint8 r, Uint8 g, Uint8 b) { sge_PutPixel(surface, x, y, SDL_MapRGB(surface->format, r, g, b)); } -Sint32 sge_CalcYPitch(SDL_Surface *dest, Sint16 y) +static Sint32 sge_CalcYPitch(SDL_Surface *dest, Sint16 y) { if (y >= 0 && y <= dest->h - 1) { @@ -1677,7 +1681,8 @@ Sint32 sge_CalcYPitch(SDL_Surface *dest, Sint16 y) return -1; } -void sge_pPutPixel(SDL_Surface *surface, Sint16 x, Sint32 ypitch, Uint32 color) +static void sge_pPutPixel(SDL_Surface *surface, Sint16 x, Sint32 ypitch, + Uint32 color) { if (x >= 0 && x <= surface->w - 1 && ypitch >= 0) { @@ -1724,8 +1729,8 @@ void sge_pPutPixel(SDL_Surface *surface, Sint16 x, Sint32 ypitch, Uint32 color) } } -void sge_HLine(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, - Uint32 Color) +static void sge_HLine(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, + Uint32 Color) { SDL_Rect l; @@ -1765,13 +1770,14 @@ void sge_HLine(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, } } -void sge_HLineRGB(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, - Uint8 R, Uint8 G, Uint8 B) +static void sge_HLineRGB(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, + Uint8 R, Uint8 G, Uint8 B) { sge_HLine(Surface, x1, x2, y, SDL_MapRGB(Surface->format, R, G, B)); } -void _HLine(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, Uint32 Color) +static void _HLine(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, + Uint32 Color) { SDL_Rect l; @@ -1798,8 +1804,8 @@ void _HLine(SDL_Surface *Surface, Sint16 x1, Sint16 x2, Sint16 y, Uint32 Color) SDL_FillRect(Surface, &l, Color); } -void sge_VLine(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, - Uint32 Color) +static void sge_VLine(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, + Uint32 Color) { SDL_Rect l; @@ -1839,13 +1845,14 @@ void sge_VLine(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, } } -void sge_VLineRGB(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, - Uint8 R, Uint8 G, Uint8 B) +static void sge_VLineRGB(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, + Uint8 R, Uint8 G, Uint8 B) { sge_VLine(Surface, x, y1, y2, SDL_MapRGB(Surface->format, R, G, B)); } -void _VLine(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, Uint32 Color) +static void _VLine(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, + Uint32 Color) { SDL_Rect l; @@ -1871,11 +1878,12 @@ void _VLine(SDL_Surface *Surface, Sint16 x, Sint16 y1, Sint16 y2, Uint32 Color) SDL_FillRect(Surface, &l, Color); } +#endif -void sge_DoLine(SDL_Surface *Surface, Sint16 x1, Sint16 y1, - Sint16 x2, Sint16 y2, Uint32 Color, - void Callback(SDL_Surface *Surf, Sint16 X, Sint16 Y, - Uint32 Color)) +static void sge_DoLine(SDL_Surface *Surface, Sint16 x1, Sint16 y1, + Sint16 x2, Sint16 y2, Uint32 Color, + void Callback(SDL_Surface *Surf, Sint16 X, Sint16 Y, + Uint32 Color)) { Sint16 dx, dy, sdx, sdy, x, y, px, py; @@ -1927,14 +1935,16 @@ void sge_DoLine(SDL_Surface *Surface, Sint16 x1, Sint16 y1, } } -void sge_DoLineRGB(SDL_Surface *Surface, Sint16 X1, Sint16 Y1, - Sint16 X2, Sint16 Y2, Uint8 R, Uint8 G, Uint8 B, - void Callback(SDL_Surface *Surf, Sint16 X, Sint16 Y, - Uint32 Color)) +#if 0 +static void sge_DoLineRGB(SDL_Surface *Surface, Sint16 X1, Sint16 Y1, + Sint16 X2, Sint16 Y2, Uint8 R, Uint8 G, Uint8 B, + void Callback(SDL_Surface *Surf, Sint16 X, Sint16 Y, + Uint32 Color)) { sge_DoLine(Surface, X1, Y1, X2, Y2, SDL_MapRGB(Surface->format, R, G, B), Callback); } +#endif void sge_Line(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 Color) @@ -1955,11 +1965,13 @@ void sge_Line(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, } } -void sge_LineRGB(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, - Sint16 y2, Uint8 R, Uint8 G, Uint8 B) +#if 0 +static void sge_LineRGB(SDL_Surface *Surface, Sint16 x1, Sint16 y1, Sint16 x2, + Sint16 y2, Uint8 R, Uint8 G, Uint8 B) { sge_Line(Surface, x1, y1, x2, y2, SDL_MapRGB(Surface->format, R, G, B)); } +#endif void SDLPutPixel(Bitmap *dst_bitmap, int x, int y, Pixel pixel) { @@ -2030,7 +2042,7 @@ typedef struct Uint8 a; } tColorRGBA; -int zoomSurfaceRGBA_scaleDownBy2(SDL_Surface *src, SDL_Surface *dst) +static int zoomSurfaceRGBA_scaleDownBy2(SDL_Surface *src, SDL_Surface *dst) { int x, y; tColorRGBA *sp, *csp, *dp; @@ -2081,7 +2093,7 @@ int zoomSurfaceRGBA_scaleDownBy2(SDL_Surface *src, SDL_Surface *dst) return 0; } -int zoomSurfaceRGBA(SDL_Surface *src, SDL_Surface *dst) +static int zoomSurfaceRGBA(SDL_Surface *src, SDL_Surface *dst) { int x, y, *sax, *say, *csax, *csay; float sx, sy; @@ -2154,7 +2166,7 @@ int zoomSurfaceRGBA(SDL_Surface *src, SDL_Surface *dst) ----------------------------------------------------------------------------- */ -int zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst) +static int zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst) { Uint32 x, y, sx, sy, *sax, *say, *csax, *csay, csx, csy; Uint8 *sp, *dp, *csp; @@ -2254,7 +2266,7 @@ int zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst) ----------------------------------------------------------------------------- */ -SDL_Surface *zoomSurface(SDL_Surface *src, int dst_width, int dst_height) +static SDL_Surface *zoomSurface(SDL_Surface *src, int dst_width, int dst_height) { SDL_Surface *zoom_src = NULL; SDL_Surface *zoom_dst = NULL; @@ -2606,7 +2618,7 @@ static int sdl_js_axis[MAX_PLAYERS][2]; static int sdl_js_button[MAX_PLAYERS][2]; static boolean sdl_is_controller[MAX_PLAYERS]; -void SDLClearJoystickState() +void SDLClearJoystickState(void) { int i, j; @@ -2847,7 +2859,7 @@ void HandleJoystickEvent(Event *event) } } -void SDLInitJoysticks() +void SDLInitJoysticks(void) { static boolean sdl_joystick_subsystem_initialized = FALSE; boolean print_warning = !sdl_joystick_subsystem_initialized; @@ -3150,7 +3162,7 @@ static void DrawTouchInputOverlay_ShowGridButtons(int alpha) SDL_SetRenderDrawColor(sdl_renderer, 0, 0, 0, 255); } -static void DrawTouchInputOverlay() +static void DrawTouchInputOverlay(void) { static SDL_Texture *texture = NULL; static boolean initialized = FALSE;