SDL_Surface in glBitmap
-
Hi,
ich versuche eine SDL_Surface (hat korrekten Inhalt - wenn ich sie direkt auf den Bildschirm [in dem Fall nicht OpenGL] bringe sieht es normal aus) in eine Displayliste zu packen. Die Displayliste besteht nur aus einem Aufruf von glBitmap():GLuint list = glGenLists(1); glNewList(list, GL_COMPILE); glBitmap(psurface->w, psurface->h, 0, 0, 0, 0, static_cast<GLubyte const*>(psurface->pixels)); glEndList();
Wenn ich jetzt die Displayliste aufrufe habe ich nur Quatsch in Form von vertikalen Streifen mit unterschiedlichen Abstaenden auf dem Bildschirm.
Ich vermute (/bin mir eigentlich sicher), dass glBitmap ein anderes Format erwartet (im letzten Parameter), als es SDL_Surface in pixels besitzt.
Die Surface wurde so erzeugt und spaeter etwas hinein gezeichnet:SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 32, #if SDL_BYTEORDER == SDL_BIG_ENDIAN 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff #else 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 #endif );
Ich vermute, der richtige Weg fuehrt ueber diverse Aufrufe von glPixelStorei, zur Beschreibung des von SDL_Surface verwendeten Formates, bin bisher aber gescheitert.
Hat jemand eine Idee?Gruss,
DeSoVoDaMu
-
Hm, offensichtlich ist glBitmap der falsche Weg. Bei diesem gibt es keine Farben und jedes Bit wird ausgewertet und dargestellt (1) oder einfach ausgelassen (0).
Ich bin jetzt auf glDrawPixels umgestiegenGruss,
DeSoVoDaMu