#include #include 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; }