| #include<SDL.h> |
| #include<memory> |
| #include<iostream> |
| #include<string> |
| |
| int main(void) { |
| SDL_Surface *screenSurface; |
| SDL_Event e; |
| int keepGoing = 1; |
| std::string message; |
| |
| if(SDL_Init( SDL_INIT_VIDEO ) < 0) { |
| printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() ); |
| } |
| atexit(SDL_Quit); |
| |
| std::unique_ptr<SDL_Window, void(*)(SDL_Window*)> window(SDL_CreateWindow( "My application", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN), SDL_DestroyWindow); |
| screenSurface = SDL_GetWindowSurface(window.get()); |
| |
| // Use iostream to make sure we have not screwed |
| // up libstdc++ linking. |
| message = "Window created."; |
| message += " Starting main loop."; |
| std::cout << message << std::endl; |
| |
| while(keepGoing) { |
| while(SDL_PollEvent(&e) != 0) { |
| if(e.type == SDL_QUIT) { |
| keepGoing = 0; |
| break; |
| } |
| } |
| SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0xFF, 0x00, 0x00)); |
| SDL_UpdateWindowSurface(window.get()); |
| SDL_Delay(100); |
| } |
| |
| return 0; |
| } |