+2014-01-05
+ * fixed using fullscreen mode on Android instead of pseudo-window mode
+ * fixed keeping desktop fullscreen mode when changing viewport size
+
2014-01-04
* fixed remaining text input problems for non-ASCII keys with modifier
* added window scaling options to graphics setup menu
-#define COMPILE_DATE_STRING "2014-01-04 22:53"
+#define COMPILE_DATE_STRING "2014-01-05 22:41"
#include "network.h"
-#define DEBUG_EVENTS 1
+#define DEBUG_EVENTS 0
static boolean cursor_inside_playfield = FALSE;
si->override_level_sounds = AUTO;
si->override_level_music = AUTO;
#endif
+
+#if defined(PLATFORM_ANDROID)
+ si->fullscreen = TRUE;
+#endif
}
static void setSetupInfoToDefaults_EditorCascade(struct SetupInfo *si)
InitSetup();
+#if 1
+ Error(ERR_INFO, "::: MARK 1: setup.fullscreen == %d", setup.fullscreen);
+#endif
+
print_timestamp_time("[init setup/config stuff (1)]");
InitGameInfo();
print_timestamp_time("[init setup/config stuff]");
+#if 1
+ Error(ERR_INFO, "::: MARK 2: setup.fullscreen == %d", setup.fullscreen);
+#endif
+
InitVideoDisplay();
InitVideoBuffer(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH, setup.fullscreen);
#if DEBUG
-#define DEBUG_PRINT_INIT_TIMESTAMPS TRUE
+#define DEBUG_PRINT_INIT_TIMESTAMPS FALSE
#define DEBUG_PRINT_INIT_TIMESTAMPS_DEPTH 10
#define DEBUG_NUM_TIMESTAMPS 10
boolean fullscreen)
{
SDL_Surface *new_surface = NULL;
+ static boolean fullscreen_enabled = FALSE;
int surface_flags_window = SURFACE_FLAGS;
#if defined(TARGET_SDL2)
#endif
if ((*backbuffer)->surface)
+ {
SDL_FreeSurface((*backbuffer)->surface);
+ (*backbuffer)->surface = NULL;
+ }
if (sdl_texture)
+ {
SDL_DestroyTexture(sdl_texture);
+ sdl_texture = NULL;
+ }
- if (sdl_renderer)
- SDL_DestroyRenderer(sdl_renderer);
+ if (!(fullscreen && fullscreen_enabled))
+ {
+ if (sdl_renderer)
+ {
+ SDL_DestroyRenderer(sdl_renderer);
+ sdl_renderer = NULL;
+ }
- if (sdl_window)
- SDL_DestroyWindow(sdl_window);
+ if (sdl_window)
+ {
+ SDL_DestroyWindow(sdl_window);
+ sdl_window = NULL;
+ }
+ }
- sdl_window = SDL_CreateWindow(program.window_title,
- SDL_WINDOWPOS_CENTERED,
- SDL_WINDOWPOS_CENTERED,
- (int)(screen_scaling_factor * width),
- (int)(screen_scaling_factor * height),
- surface_flags);
+ Error(ERR_INFO, "::: checking 'sdl_window' ...");
+
+ if (sdl_window == NULL)
+ Error(ERR_INFO, "::: calling SDL_CreateWindow() [%d, %d, %d] ...",
+ setup.fullscreen, fullscreen, fullscreen_enabled);
+
+ if (sdl_window == NULL)
+ sdl_window = SDL_CreateWindow(program.window_title,
+ SDL_WINDOWPOS_CENTERED,
+ SDL_WINDOWPOS_CENTERED,
+ (int)(screen_scaling_factor * width),
+ (int)(screen_scaling_factor * height),
+ surface_flags);
if (sdl_window != NULL)
{
- sdl_renderer = SDL_CreateRenderer(sdl_window, -1, 0);
+ if (sdl_renderer == NULL)
+ sdl_renderer = SDL_CreateRenderer(sdl_window, -1, 0);
if (sdl_renderer != NULL)
{
new_surface = SDL_SetVideoMode(width, height, video.depth, surface_flags);
#endif
+ // store fullscreen state ("video.fullscreen_enabled" may not reflect this!)
+ if (new_surface != NULL)
+ fullscreen_enabled = fullscreen;
+
return new_surface;
}
#if defined(PLATFORM_ANDROID)
#define WINDOW_SCALING_STATUS WINDOW_SCALING_NOT_AVAILABLE
-#define FULLSCREEN_STATUS FULLSCREEN_NOT_AVAILABLE
+#define FULLSCREEN_STATUS FULLSCREEN_AVAILABLE
+#define USE_DESKTOP_FULLSCREEN TRUE
#elif defined(TARGET_SDL2)
#define WINDOW_SCALING_STATUS WINDOW_SCALING_AVAILABLE
#define FULLSCREEN_STATUS FULLSCREEN_AVAILABLE
void InitVideoBuffer(int width, int height, int depth, boolean fullscreen)
{
+#if 0
+ static boolean initialized = FALSE;
+#endif
+
video.width = width;
video.height = height;
video.depth = GetRealDepth(depth);
video.window_scaling_available = WINDOW_SCALING_STATUS;
+#if 0
+#if defined(PLATFORM_ANDROID)
+ if (!initialized)
+ video.fullscreen_enabled = TRUE;
+#endif
+#endif
+
#if defined(TARGET_SDL)
SDLInitVideoBuffer(&backbuffer, &window, fullscreen);
#else
#endif
drawto = backbuffer;
+
+#if 0
+ initialized = TRUE;
+#endif
}
inline static void FreeBitmapPointers(Bitmap *bitmap)
DrawSetupScreen();
}
+#if !defined(PLATFORM_ANDROID)
#if defined(TARGET_SDL2)
static void execSetupChooseWindowSize()
{
DrawSetupScreen();
}
#endif
+#endif
static void execSetupChooseScrollDelay()
{
static struct TokenInfo setup_info_graphics[] =
{
+#if !defined(PLATFORM_ANDROID)
{ TYPE_SWITCH, &setup.fullscreen, "Fullscreen:" },
#if defined(TARGET_SDL2)
{ TYPE_ENTER_LIST, execSetupChooseWindowSize, "Window Scaling:" },
{ TYPE_ENTER_LIST, execSetupChooseScreenMode, "Fullscreen Mode:" },
{ TYPE_STRING, &screen_mode_text, "" },
#endif
+#endif
#if 0
{ TYPE_SWITCH, &setup.scroll_delay, "Scroll Delay:" },
#endif