SDL_SetRenderTarget(sdl_renderer, NULL);
SDL_RenderCopy(sdl_renderer, sdl_texture_target, NULL, NULL);
}
+#endif
- // show render target buffer on screen
- SDL_RenderPresent(sdl_renderer);
+ // global synchronization point of the game to align video frame delay
+ WaitUntilDelayReached(&video.frame_delay, video.frame_delay_value);
+#if defined(TARGET_SDL2)
+ // show render target buffer on screen
+ SDL_RenderPresent(sdl_renderer);
#else // TARGET_SDL
if (rect)
SDL_UpdateRects(screen, 1, rect);
video.window_scaling_quality = window_scaling_quality;
}
+void SDLSetScreenRenderingMode(char *screen_rendering_mode)
+{
+ video.screen_rendering_mode =
+ (strEqual(screen_rendering_mode, STR_SPECIAL_RENDERING_BITMAP) ?
+ SPECIAL_RENDERING_BITMAP :
+ strEqual(screen_rendering_mode, STR_SPECIAL_RENDERING_TARGET) ?
+ SPECIAL_RENDERING_TARGET:
+ strEqual(screen_rendering_mode, STR_SPECIAL_RENDERING_DOUBLE) ?
+ SPECIAL_RENDERING_DOUBLE : SPECIAL_RENDERING_OFF);
+}
+
void SDLSetWindowFullscreen(boolean fullscreen)
{
if (sdl_window == NULL)
while (time_current < time_post_delay)
{
- // do not wait longer than 10 ms at a time to be able to ...
- Delay(MIN(10, time_post_delay - time_current));
-
- // ... continue drawing global animations during post delay
+ // updating the screen contains waiting for frame delay (non-busy)
UpdateScreen(NULL);
time_current = SDL_GetTicks();