// (c) 1995-2014 by Artsoft Entertainment
// Holger Schemel
// info@artsoft.org
-// http://www.artsoft.org/
+// https://www.artsoft.org/
// ----------------------------------------------------------------------------
// sdl.c
// ============================================================================
SDL_SetSurfaceAlphaMod(surface, alpha);
}
+const char *SDLGetRendererName(void)
+{
+ static SDL_RendererInfo renderer_info;
+
+ SDL_GetRendererInfo(sdl_renderer, &renderer_info);
+
+ return renderer_info.name;
+}
+
SDL_Surface *SDLGetNativeSurface(SDL_Surface *surface)
{
SDL_PixelFormat format;
{
SDL_Surface *new_surface = NULL;
- int surface_flags_window = SURFACE_FLAGS | SDL_WINDOW_RESIZABLE;
+ int surface_flags_window = SURFACE_FLAGS;
int surface_flags_fullscreen = SURFACE_FLAGS | SDL_WINDOW_FULLSCREEN_DESKTOP;
#if 1
int renderer_flags = SDL_RENDERER_SOFTWARE;
#endif
- SDLSetScreenSizeAndOffsets(video.width, video.height);
-
int width = video.width;
int height = video.height;
int screen_width = video.screen_width;
if (sdl_renderer != NULL)
{
- SDL_RenderSetLogicalSize(sdl_renderer, screen_width, screen_height);
// SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, setup.window_scaling_quality);
Error(ERR_WARN, "SDL_CreateWindow() failed: %s", SDL_GetError());
}
+ SDLSetScreenProperties();
+
// store fullscreen state ("video.fullscreen_enabled" may not reflect this!)
if (new_surface != NULL)
fullscreen_enabled = fullscreen;
void SDLSetDisplaySize(void)
{
- SDL_Rect display_bounds;
+ if (sdl_renderer != NULL)
+ {
+ int w, h;
- SDL_GetDisplayBounds(0, &display_bounds);
+ SDL_GetRendererOutputSize(sdl_renderer, &w, &h);
- video.display_width = display_bounds.w;
- video.display_height = display_bounds.h;
+ video.display_width = w;
+ video.display_height = h;
#if 0
- Error(ERR_DEBUG, "SDL real screen size: %d x %d",
- video.display_width, video.display_height);
+ Error(ERR_DEBUG, "SDL renderer size: %d x %d",
+ video.display_width, video.display_height);
#endif
+ }
+ else
+ {
+ SDL_Rect display_bounds;
+
+ SDL_GetDisplayBounds(0, &display_bounds);
+
+ video.display_width = display_bounds.w;
+ video.display_height = display_bounds.h;
+
+#if 0
+ Error(ERR_DEBUG, "SDL display size: %d x %d",
+ video.display_width, video.display_height);
+#endif
+ }
}
void SDLSetScreenSizeAndOffsets(int width, int height)
void SDLSetScreenProperties(void)
{
+ SDLSetDisplaySize();
SDLSetScreenSizeAndOffsets(video.width, video.height);
SDLSetScreenSizeForRenderer(video.screen_width, video.screen_height);
}
void HandleJoystickEvent(Event *event)
{
+ // when using joystick, disable overlay touch buttons
+ runtime.uses_touch_device = FALSE;
+
switch (event->type)
{
case SDL_CONTROLLERDEVICEADDED: