Mercurial > sdl-ios-xcode
diff src/video/riscos/SDL_wimpvideo.c @ 634:44d574ed4780
Date: Thu, 05 Jun 2003 09:36:40 +0100
From: "alan buckley" <alan_baa@hotmail.com>
Subject: Modification for RISC OS SDL port
My name is Alan Buckley and I have been working on the RISC OS SDL port.
I've attached a modification to SDL_WimpVideo.c to this email that ensures
the Window is displayed immediately when the video mode is set to a windowed
mode.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 14 Jun 2003 07:18:40 +0000 |
parents | 550bccdf04bd |
children | b8d311d90021 |
line wrap: on
line diff
--- a/src/video/riscos/SDL_wimpvideo.c Tue Jun 03 19:35:10 2003 +0000 +++ b/src/video/riscos/SDL_wimpvideo.c Sat Jun 14 07:18:40 2003 +0000 @@ -80,6 +80,9 @@ extern int mouseInWindow; extern int riscos_closeaction; +/* Following needed to ensure window is shown immediately */ +extern int hasFocus; +extern void WIMP_Poll(_THIS, int waitTime); SDL_Surface *WIMP_SetVideoMode(_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags) @@ -177,9 +180,21 @@ /* Reset device functions for the wimp */ WIMP_SetDeviceMode(this); - /* Needs to set up plot info after window has been created */ - /* Not sure why, but plots don't work if I do it earlier */ - WIMP_SetupPlotInfo(this); + /* Needs to set up plot info after window has been created */ + /* Not sure why, but plots don't work if I do it earlier */ + WIMP_SetupPlotInfo(this); + + /* Poll until window is shown */ + { + /* We wait until it gets the focus, but give up after 5 seconds + in case the focus is prevented in any way. + */ + Uint32 now = SDL_GetTicks(); + while (!hasFocus && SDL_GetTicks() - now < 5000) + { + WIMP_Poll(this, 0); + } + } /* We're done */ return(current);