Kann sich Jemand bitte noch mal meinen letzten Post anschauen
-
Danke durito !
Ich habe aber immer noch ein Problem,
wenn ich richtig im internet gesucht habe ,
musste es also heissen :SDL_Surface *text = SDL_LoadBMP("Data/NeHe.bmp"); glGenTextures( 1 , &texture[0] ); glBindTexture( GL_TEXTURE_2D , texture[0] ); glTexImage2D( GL_TEXTURE_2D , 0 , 3 , text->w , text->h , 0 , GL_RGB , GL_UNSIGNED_BYTE , text->pixels ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER,GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER,GL_LINEAR );
Aber er gibt bei der Compilierung folgenden Fehler aus :
make -k g++ -o eoglp main.cpp -lGL -lGLU -lglut /tmp/cc50HDwk.o(.text+0x35): In function `main': : undefined reference to `SDL_RWFromFile' /tmp/cc50HDwk.o(.text+0x3e): In function `main': : undefined reference to `SDL_LoadBMP_RW' collect2: ld returned 1 exit status make: *** [eoglp] Fehler 1
-
Kenn mich zwar mit SDL nicht so aus, sieht mir aber nach einem Linkerfehler aufgrund nicht mitgelinkter Libs aus.
-
Jep, Du must dazu die SDL-Lib einbinden.
-> SDL installieren (www.libsdl.org glaub ich)
-> statt -lglut musst Du dem compiler -lSDL mitgeben. SDL ist sowas wie de Ablösung von Glut
-
durito schrieb:
SDL ist sowas wie de Ablösung von Glut
DAU gerechte Erklärung
-
ChockoCookie schrieb:
durito schrieb:
SDL ist sowas wie de Ablösung von Glut
DAU gerechte Erklärung
Wenn ich abends von nem guten Konzert nach Hause komm, dann bin ich nun ma ein sehr einfaches Gemüt
Da liegt nicht mehr drin..
-
Hallo !
Ich habe die Lib eingefügt , und die SDL/SDL.h eingebunden .
Und ich habe die Funktion "loadtexture" von http://www.c-plusplus.net/forum/viewtopic.php?t=83686 mit dem folgenden ersetzt :bool loadtexture( char *filename ){ SDL_Surface *text = SDL_LoadBMP( filename ); glGenTextures( 1 , &texture[0] ); glBindTexture( GL_TEXTURE_2D , texture[0] ); glTexImage2D( GL_TEXTURE_2D , 0 , 3 , text->w , text->h , 0 , GL_RGB , GL_UNSIGNED_BYTE , text->pixels ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER,GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER,GL_LINEAR ); return true; }
Aber es geht immer noch nicht ( "weiße Textur" ) !
Ich dreh bald noch durch , ich find den Fehler nicht .
-
Du musst noch Speicher reservieren wo Du das Bild dann reinkippst..
Mach mal:
SDL_Surface *conv = SDL_CreateRGBSurface(SDL_SWSURFACE, text->w, text->h, 32, #if SDL_BYTEORDER == SDL_BIG_ENDIAN 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff); #else 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000); #endif SDL_BlitSurface(text, 0, conv, 0);
nach dem SDL_LoadBMP.
Und dann bei glTexImage2D alle text durch conv ersetzen.. Dann sollte es gehen..
-
Hallo !
selbst mit dem code :
bool loadtexture( char *filename ){ SDL_Surface *text = SDL_LoadBMP( filename ); SDL_Surface *conv = SDL_CreateRGBSurface(SDL_SWSURFACE, text->w, text->h, 32, #if SDL_BYTEORDER == SDL_BIG_ENDIAN 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff); #else 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000); #endif SDL_BlitSurface(text, 0, conv, 0); glGenTextures( 1 , &texture[0] ); glBindTexture( GL_TEXTURE_2D , texture[0] ); glTexImage2D( GL_TEXTURE_2D , 0 , 3 , conv->w , conv->h , 0 , GL_RGB , GL_UNSIGNED_BYTE , conv->pixels ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER,GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER,GL_LINEAR ); return true; }
geht es nicht !
-
Geht nicht ist ein weiter Begriff
Was denn?Probier mal RGBA-Format
glTexImage2D(GL_TEXTURE_2D , 0 , [b]GL_RGBA[/b] , conv->w , conv->h , 0 , [b]GL_RGBA[/b] , GL_UNSIGNED_BYTE , conv->pixels );
Wenns dann nicht hinhaut: Lad Dir das Texture-Tut bei NeHe fuer SDL runter. Dann haste sicher ein Bsp das geht.
-
Hallo !
Ich danke Euch für Eure Gedult !
Ich weiss zwar immer noch nicht wo das Problem / der Fehler lagen ,
aber ich habs jetzt hingekriegt .Vielen Dank
-
gut
Mir ist noch in'n Sinn gekommen, dass Du evt. ne falsche Textur verwenden wolltest.. Die muss immer ne Zweierpotenz sein (Also z.B. 512x512).. Hat sie ne falsche Groesse wird nix angezeigt..