static int vout_mode_overlay = -1, vout_mode_overlay2x = -1, vout_mode_gl = -1;
static void *display, *window;
static int gl_quirks;
static int vout_mode_overlay = -1, vout_mode_overlay2x = -1, vout_mode_gl = -1;
static void *display, *window;
static int gl_quirks;
- plat_sdl_screen = SDL_SetVideoMode(win_w, win_h, 0, flags);
+ if (!plat_sdl_screen || screen_flags != flags ||
+ plat_sdl_screen->w != win_w || plat_sdl_screen->h != win_h)
+ plat_sdl_screen = SDL_SetVideoMode(win_w, win_h, 0, flags);
+ screen_flags = flags;
if (plat_sdl_screen == NULL) {
fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
plat_target.vout_method = 0;
if (plat_sdl_screen == NULL) {
fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
plat_target.vout_method = 0;
if (plat_target.vout_method == vout_mode_overlay
|| plat_target.vout_method == vout_mode_overlay2x) {
if (plat_target.vout_method == vout_mode_overlay
|| plat_target.vout_method == vout_mode_overlay2x) {
plat_sdl_overlay = SDL_CreateYUVOverlay(W, h, SDL_UYVY_OVERLAY, plat_sdl_screen);
if (plat_sdl_overlay != NULL) {
if ((long)plat_sdl_overlay->pixels[0] & 3)
plat_sdl_overlay = SDL_CreateYUVOverlay(W, h, SDL_UYVY_OVERLAY, plat_sdl_screen);
if (plat_sdl_overlay != NULL) {
if ((long)plat_sdl_overlay->pixels[0] & 3)
- plat_sdl_screen = SDL_SetVideoMode(win_w, win_h, 16, flags);
+ if (!plat_sdl_screen || screen_flags != flags ||
+ plat_sdl_screen->w != win_w || plat_sdl_screen->h != win_h)
+ plat_sdl_screen = SDL_SetVideoMode(win_w, win_h, 16, flags);
+ screen_flags = flags;
if (plat_sdl_screen == NULL) {
fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
return -1;
if (plat_sdl_screen == NULL) {
fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
return -1;
- ret = plat_sdl_change_video_mode(g_menuscreen_w, g_menuscreen_h, 1);
- if (ret != 0) {
+ plat_sdl_screen = SDL_SetVideoMode(g_menuscreen_w, g_menuscreen_h, 16, SDL_HWSURFACE);
+ if (plat_sdl_screen == NULL) {
plat_sdl_screen = SDL_SetVideoMode(0, 0, 16, SDL_SWSURFACE);
if (plat_sdl_screen == NULL) {
fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
plat_sdl_screen = SDL_SetVideoMode(0, 0, 16, SDL_SWSURFACE);
if (plat_sdl_screen == NULL) {
fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());