| // Copyright 2014 The Emscripten Authors. All rights reserved. |
| // Emscripten is available under two separate licenses, the MIT license and the |
| // University of Illinois/NCSA Open Source License. Both these licenses can be |
| // found in the LICENSE file. |
| |
| #include <stdio.h> |
| #include <SDL/SDL.h> |
| |
| |
| extern "C" int main(int argc, char** argv) { |
| |
| SDL_Init(SDL_INIT_VIDEO); |
| SDL_Surface *screen = SDL_SetVideoMode(256, 256, 32, SDL_SWSURFACE); |
| printf("freeing screen...\n"); |
| SDL_FreeSurface(screen); |
| printf("recreating...\n"); |
| screen = SDL_SetVideoMode(256, 256, 32, SDL_SWSURFACE); |
| printf("seems ok!\n"); |
| |
| if (SDL_MUSTLOCK(screen)) SDL_LockSurface(screen); |
| for (int i = 0; i < 256; i++) { |
| for (int j = 0; j < 256; j++) { |
| // alpha component is actually ignored, since this is to the screen |
| *((Uint32*)screen->pixels + i * 256 + j) = SDL_MapRGBA(screen->format, i, j, 255-i, (i+j) % 255); |
| } |
| } |
| if (SDL_MUSTLOCK(screen)) SDL_UnlockSurface(screen); |
| SDL_Flip(screen); |
| |
| SDL_Quit(); |
| |
| return 0; |
| } |
| |