Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Hi @ll
Ich stehe jetzt schon seit einigen Tagen auf dem sprichwörtlichen Schlauch, ich hab den Code schon mehrfach durchsucht, aber ich finde den Fehler nicht.
Das Problem:
Ich lade die Texturen mit einem eigenen Texturmanager / Loader basierend auf SDL_Image. Dort werden ID's und alles generiert, die Textur geladen und mittels glTexImage2D geuploaded. Allerdings muss ich mich mit einem Texturlosen grau zufriedengeben, obwohl keine Fehler auftreten. Die Textur ist 512x512 Pixel groß, also an der größe dürfte es auch nicht hapern.
Hier ein paar Sourcecodes
1. Texturloader
Code:
function TstwEngineTexture.LoadFromSurface(const Surface: PSDL_Surface):Boolean;
Ich find den Fehler nicht, falls noch mehr Source benötigt wird, kann ich gerne noch was rausrücken.
Gruß, ein verzweifelter Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Das einzige was mir gross aufgefallen ist war das: SDL_RLEACCELOK als Flag.
Ansonsten könntest du temporär das Blitten in eine Extrasurface weglassen, da dies nur bei 8-Bit-Surfaces richtig zu empfehlen ist.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das Blitten mache ich, damit das übergeben an OpenGL immer mit dem Farbformat GL_RGBA geht, für den Fall, dass ich z.B. mal eine ABGR-Textur habe. Und das SDL_RLEACCELOK habe ich auch erst zum testen hinzugefügt, das hatte ich aus dem Textausgabe-mit-SDL-Tut.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ich denke das Problem liegt nicht an SDL. Was setzt du denn eigentlich für Filterungen bei deiner Textur? Setzt du überhaupt eine?
Wenn du zum Beispiel als Minfilter GL_LINEAR_MIPMAP_LINEAR angegeben hast und du aber keine MipMaps erzeugen lässt, dann streikt OpenGL. Bzw wenn du gar keine Filterung angegeben hast benutzt der Treiber einen Standardmodus. Optimiert auf Geschwindigkeit und aussehen dürfte das auch GL_LINEAR_MIPMAP_LINEAR sein.
Ach ja. Resultierend aus den fehlenden MipMaps stellt OpenGL natürlich keine Textur dar.
Du hast jetzt 2 Möglichkeiten.
1. Du setzt einen Filter der keine MipMaps vorraussetzt. Also GL_LINEAR
oder
2. du lässt OpenGL MipMaps erzeugen. Ich bin faul deswegen hier nur ein Stück Code aus meiner glBitmap.
Code:
if(GL_VERSION_1_4 or GL_SGIS_generate_mipmap)
then glTexParameteri(Target, GL_GENERATE_MIPMAP, GL_TRUE)
PS: Bevor sich jemand wundert. Die "Möglichkeit" mit gluBuild2DMipmaps MipMaps zu erzeugen habe ich bewusst rausgelassen, da das Heutzutage keine Möglichkeit mehr sein sollte.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
*duck*
War klar, das ich das mal wieder übersehen musste. Aber dennoch danke, dass ihr mir trotzdem geholfen habt. Mein Threadtitel kommt davon, dass bis jetzt immer Texturen funktioniert haben, aber nie mit SDL.
Jetzt gehts. *freu*
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.