As my larger program does completely reload OpenGL and all the textures, and it has the same problems.
Furthermore, it works if I run it in windowed mode. It only doesn't work if it is in fullscreen.
AFAIK SDL_SetVideoMode doesn't create a new rendering context if you're in windowed mode in the latest SDL 1.2 build (it shouldn't be necessary as the actual resolution doesn't change) but it still does it when switching to or from a fullscreen mode.
I'm fairly sure you are forgetting to re-initialize something in your larger program aswell.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
//enable SDL
SDL_Init(SDL_INIT_VIDEO);
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 0 );
SDL_SetVideoMode(640, 480, 0, SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE | SDL_FULLSCREEN);
//note that if SDL_FULLSCREEN is removed (both here and in event handeling), then this works