sdl: Support setting resizable before allocate in SDL 1

The SDL 1 winsys now checks for the initial resizable state of the
onscreen framebuffer when it is allocated and updates the video flags
accordingly.

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit f5fb9be70a92f751886a94da0b34e14252ed197e)
This commit is contained in:
Neil Roberts 2012-11-20 18:50:42 +00:00 committed by Robert Bragg
parent 982ee75319
commit 05ebbfdae7

View File

@ -287,6 +287,7 @@ _cogl_winsys_onscreen_init (CoglOnscreen *onscreen,
CoglContext *context = framebuffer->context; CoglContext *context = framebuffer->context;
CoglDisplay *display = context->display; CoglDisplay *display = context->display;
CoglDisplaySdl *sdl_display = display->winsys; CoglDisplaySdl *sdl_display = display->winsys;
CoglBool flags_changed = FALSE;
int width, height; int width, height;
if (sdl_display->onscreen) if (sdl_display->onscreen)
@ -300,9 +301,16 @@ _cogl_winsys_onscreen_init (CoglOnscreen *onscreen,
width = cogl_framebuffer_get_width (framebuffer); width = cogl_framebuffer_get_width (framebuffer);
height = cogl_framebuffer_get_height (framebuffer); height = cogl_framebuffer_get_height (framebuffer);
if (cogl_onscreen_get_resizable (onscreen))
{
sdl_display->video_mode_flags |= SDL_RESIZABLE;
flags_changed = TRUE;
}
/* Try to update the video size using the onscreen size */ /* Try to update the video size using the onscreen size */
if (width != sdl_display->surface->w || if (width != sdl_display->surface->w ||
height != sdl_display->surface->h) height != sdl_display->surface->h ||
flags_changed)
{ {
sdl_display->surface = SDL_SetVideoMode (width, height, sdl_display->surface = SDL_SetVideoMode (width, height,
0, /* bitsperpixel */ 0, /* bitsperpixel */