SDL - Klasse geht nicht
-
Kann mir jemand sagen warum mein Bild nicht geladen wird und nix passiert.
Es wird zwar "0" returned, aber es kommt kein Fenster -> somit auch kein Bild.
Aber warum? Ich weiß es nicht....#include "SDL/SDL.h" #include "SDL/SDL_image.h" #include "SDL/SDL_ttf.h" #include <iostream> #include <string> using namespace std; //Global SDL_Surface *screen = NULL; SDL_Surface * LoadImage(const string &filename) { SDL_Surface *loadedImage = NULL; SDL_Surface *optimizedImage = NULL; loadedImage = IMG_Load(filename.c_str()); if(loadedImage != NULL) { optimizedImage = SDL_DisplayFormat(loadedImage); SDL_FreeSurface(loadedImage); } else { cout << "Ladefehler " << filename << endl; cout << "richtig geschrieben?" << endl; } return optimizedImage; } void ApplySurface(short x, short y, SDL_Surface *source, SDL_Surface *destination) { SDL_Rect rect; rect.x = x; rect.y = y; SDL_BlitSurface(source, NULL, destination, &rect); } class Button { public: Button(short x, short y, short w, short h, const string &filename); ~Button(); void show_Button(); void handle_Button(); //Stub private: SDL_Rect sizes; SDL_Surface *picture; }; Button::Button(short x, short y, short w, short h, const string &filename) { sizes.x = x; sizes.y = y; sizes.w = w; sizes.h = h; picture = LoadImage(filename); } Button::~Button() { } void Button::show_Button() { ApplySurface(sizes.x, sizes.y, picture, screen); } int main(int argc, char *args[]) { //main Global SDL_Event event; bool exit; Button test(200,200,100,100,"bud.jpeg"); screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE); if(TTF_Init() == -1) { return 1; } while(!exit) { while(SDL_PollEvent(&event)) { if(event.type == SDL_QUIT) { exit = true; } } test.show_Button(); if(SDL_Flip(screen) == -1) { return 1; } } TTF_Quit(); SDL_Quit(); return 0; }
-
welchen wert hat exit aus zeile 79?
-
Oh verdammt dass hab ich übersehen! Ich habs dann jetzt durch "bool exit = false" ersetzt.
Und das Fenster kommt, das Bild wird aber trotzdem nicht angezeigt....MfG
Stromberg
-
hast du keinen debugger dass du das nicht findest?
-
Mein Debugger von Codeblocks funktioniert irgendwie nicht.
MfG
Stromberg
-
Ja, das musst du afaik selber konfigurieren. Einfach in den Optionen den Pfad zum GDB(Oder einem anderen Debugger, wenn das überhaupt geht) setzen.
-
Dir fehlt ein SDL_Init.
-
Stimmt. Das Bild wird aber trotzdem nicht angezeigt. Es wird einfach n schwarzes Fenster geöffnet, also ich blick grad gar nimma durch, obwohl ich dass jetzt auch alles ma mitm Debugger durchgelaufen bin, ich finde da nix.
MfG
Stromberg
-
Hallo
Versuchs vielleicht mal mit Express-Version vom Visual Studio. Da ist der Debugger sofort einsatzbereit.
chrische
-
Der Fehler ist(war), dass ich ".jpeg" geschrieben habe, wenn ich bloß ".jpg" schreibe geht es, und das Bild wird angezeigt.
MfG
Stromberg
-
Ja, es ist schon sinnvoll, den Dateinamen richtig zu schreiben...
