Gracias por vuestras respuestas.
Ante todo se me olvidó. lo quiero hacer con SDL.
yo lo que hago es esto:
SDL_Surface *screen;
SDL_Surface *anteri;
SDL_Surface *table;
screen = SDL_SetVideoMode(480,272,32, SDL_HWSURFACE );
.... meto imagenes en "screen"
table = IMG_Load ("imagenes/tithorver.png");
destino.x = 280; destino.y = 136;
SDL_BlitSurface(table, NULL, screen, &destino);
SDL_FreeSurface(table);
---mas imagenes
---mas imagenes
SDL_BlitSurface(screen, NULL, anteri, &destino); guardo el estado en anteri. aqui LE llamo estado "INICIO"
------------------------------------------------------------------
------------------------------------------------------------------
....sigo metiendo imageness....
tablo = IMG_Load ("imagenes/titsigue.png");
destino.x = 280; destino.y = 136;
SDL_BlitSurface(tablo, NULL, screen, &destino);
SDL_FreeSurface(tablo);
.... mas imagenes encima.
------------------------------------------------------------------
.... en un momento dado, quiero volver al estado "INICIO"
yo lo hago asi, pero no funciona:
SDL_BlitSurface(anteri, &destino, screen, &destino);
---------------------------------------------------------------------
no sé si me explicado bien.
Necesito ayuda.
Muchas gracias por vuestra paciencia.