SDL krash med fullscreen flagga (endast vid första start)?
Hallå!
Åkte på en skum grej för ett tag sedan, har utvecklat ett program under en längre tid på både laptop & stationär dator, nyligen började det krasha vid första start (endast) på laptop men går bra på stationära :S
OpenGL 3D app med SDL, GLUT, GLEW
Catalyst 11.x
Laptop: AMD Dual Core 1.8GHz, 2GB RAM, HD2400, Vista x86
Desktop: Q66, 8GB RAM, 2x4890, Vista x64
Kod:
bool ZUI_App::ZUI_Init(int w, int h, bool fullscreen){
ZUI_WIDTH = w;
ZUI_HEIGHT = h;
if ( SDL_Init( SDL_INIT_EVERYTHING ) < 0 ) {
cerr << "INFO: Could not initialize subsystem. Exiting." << endl;
return false;
}
if( TTF_Init() < 0) {
cerr << "INFO: Could not initialize font subsystem. Exiting." << endl;
return false;
}
/*if( Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 4096 ) == -1 ) {
cerr << "An error has occurred.\n" ;
return false;
}*/
atexit(SDL_Quit);
//SDL_Surface* ZUI_screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE|SDL_DOUBLEBUF);
if(fullscreen)
ZUI_screen = SDL_SetVideoMode(ZUI_WIDTH, ZUI_HEIGHT, 32, SDL_OPENGL | SDL_DOUBLEBUF | SDL_FULLSCREEN );
else
ZUI_screen = SDL_SetVideoMode(ZUI_WIDTH, ZUI_HEIGHT, 32, SDL_OPENGL | SDL_DOUBLEBUF);//| SDL_FULLSCREEN);
if (!ZUI_screen ){cerr << "INFO: Invalid video settings!" << endl; return false;}
glewInit();
if (GLEW_VERSION_2_0){cerr << "INFO: OpenGL 2.0 supported, proceeding" << endl;}
else {cerr << "INFO: OpenGL 2.0 not supported. Exiting." << endl; return false;}
...
}
Det krashar alltså alltid första gången endast vid första set video mode anropet, typ att funktionen ej är implementerad, och stannar vid någon lock. Verkar också som videominnet tar slut då skrivbordsbakgrunden på laptopen tas bort. Startar man programmet igen så fungerar allt finfint. Jag har inte lyckats fånga något meddelande om vad det beror på, men skippar jag fullscreen flaggan så fungerar det, men sätter jag dit den så krashar det första gången.
Någon som har nån ide? tips?
Det har fungerat förr, så kanske beror det på os eller grafikdrivrutiner som är det jag brukar uppdatera. Rullar finfint på stationära också. Koden har dessutom fungerat i över ett år!
Mvh
Dalton Sleeper