Mercurial > sdl-ios-xcode
view Xcode-iPhoneOS/Demos/src/rectangles.c @ 3486:c87dbbde2bc2
Fixed bug #891
Mason Wheeler 2009-11-23 06:59:48 PST
There's code in SDL_RecreateWindow specifically to handle SDL_WINDOW_FOREIGN,
but it appears to have been overlooked in the allowed_flags constant. This
causes the line
window->flags = (flags & allowed_flags);
to strip SDL_WINDOW_FOREIGN from the window's flags, which breaks some code in
WIN_WindowProc in SDL_win32Events.c that treats foreign windows differently.
This can be trivially fixed by defining allowed_flags as
const Uint32 allowed_flags = (SDL_WINDOW_FULLSCREEN |
SDL_WINDOW_OPENGL |
SDL_WINDOW_BORDERLESS |
SDL_WINDOW_RESIZABLE |
SDL_WINDOW_INPUT_GRABBED |
SDL_WINDOW_FOREIGN);
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 24 Nov 2009 04:59:50 +0000 |
parents | 20326ba2bda2 |
children | 64ce267332c6 |
line wrap: on
line source
/* * rectangles.c * written by Holmes Futrell * use however you want */ #include "SDL.h" #include <time.h> #include "common.h" void render(void) { Uint8 r, g, b; /* Come up with a random rectangle */ SDL_Rect rect; rect.w = randomInt(64, 128); rect.h = randomInt(64, 128); rect.x = randomInt(0, SCREEN_WIDTH); rect.y = randomInt(0, SCREEN_HEIGHT); /* Come up with a random color */ r = randomInt(50, 255); g = randomInt(50, 255); b = randomInt(50, 255); /* Fill the rectangle in the color */ SDL_SetRenderDrawColor(r, g, b, 255); SDL_RenderFill(&rect); /* update screen */ SDL_RenderPresent(); } int main(int argc, char *argv[]) { SDL_WindowID windowID; int done; SDL_Event event; /* initialize SDL */ if (SDL_Init(SDL_INIT_VIDEO) < 0) { fatalError("Could not initialize SDL"); } /* seed random number generator */ srand(time(NULL)); /* create window and renderer */ windowID = SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); if (windowID == 0) { fatalError("Could not initialize Window"); } if (SDL_CreateRenderer(windowID, -1, 0) != 0) { fatalError("Could not create renderer"); } /* Fill screen with black */ SDL_SetRenderDrawColor(0, 0, 0, 255); SDL_RenderFill(NULL); /* Enter render loop, waiting for user to quit */ done = 0; while (!done) { while (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { done = 1; } } render(); SDL_Delay(1); } /* shutdown SDL */ SDL_Quit(); return 0; }