SDL und OpenGL "Process terminated with status 3"
-
Hallo,
Z.z. versuche ich mich mit OpenGL einzuarbeiten, zur Erzeugung der Fenster und das Abfragen von Handles würde ich gerne SDL benutzen.
Ich habe eine Klasse, namens MySDL, die sich um die Initialisierung von SDL und OpenGL kümmert. Die Initialisierung von SDL funktioniert einwandfrei, bei der von OpenGL bricht mein Programm ab, genauer gesagt bei 'glEnable'(Zeile 40), und gibt mir "Process terminated with status 3" zurück. Das ganze geschieht zur Laufzeit, das Compilieren verläuft fehlerfrei!
Nun habe ich folgenden Code(gekürzt).//sdlclass.h class MySDL { private: int width; int heigth; int bits; Uint32 flags; public: MySDL(); int InitSDL(); int InitGL(); }; MySDL::MySDL() { width = 640; heigth= 480; bits = 16; flags = SDL_OPENGL; } int MySDL::InitSDL() { if(SDL_Init( SDL_INIT_VIDEO ) < 0) { std::cerr << "Unable to init SDL:" << SDL_GetError(); return false; } atexit(SDL_Quit); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1); SDL_Surface* window = SDL_SetVideoMode(width,heigth,bits,flags); if(!window) { std::cerr << "Unable to set "<< width << 'x' << heigth <<" video:" << SDL_GetError() << '\n'; return false; } return true; } int MySDL::InitGL() { glEnable( GL_TEXTURE_2D ); glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); glViewport(0,0,width,heigth); glClear( GL_COLOR_BUFFER_BIT ); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(0.0f, width, heigth, 0.0f, -1.0f, 1.0f); glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); return true; } //main.cpp #include <SDL.h> #include <SDL_opengl.h> #include "sdlclass.h" int main ( int argc, char** argv ) { MySDL Init; Init.InitSDL(); Init.InitGL(); // program main loop [...] return 0; }
Ich nutze die IDE Code::Blocks, den MinGW Compiler, Windows XP und folgendes Libs habe ich eingebunden:
mingw32
SDLmain
SDL.dll
user32
gdi32
winmm
dxguid
glu32
GLUT32
OpenGL32
GLlib
glauxIch hoffe mir kann jemand helfen, danke im voraus.
MfG.
-
SDL_Init und SDL_SetVideoMode koennt' was helfen.
-
Eigentlich habe ich sowas schon. Ich habe es bloß weggekürzt. Habe jetzt den Code oben mal der Vollständigkeit editiert.
-
Tritt der Fehler auch bei den OpenGL-Beispielen der SDL auf?
-
Dieses SDL_OpenGL Beispiel sagt mir, dass ich kein OpenGl habe, dass ist dann wohl des Rätsellösung. Wahrscheinlich liegt es daran, dass meine Grafiktreiber völlig veraltet sind...