Ich habe jetzt endlich angefangen, mich mit SDL zu beschäftigen, und stehe gleich vorm ersten Problem!
Ich versuche, mittels SDL_Image ein Bild zu laden und als Texture zu verwenden. Ein oft schon hier angehandeltes Thema, aber ich glaub, ich hab ganz andere Probleme! Ich kann .pixels nicht auslesen!
// no error, wenn er soweit kommt und nicht vorher rausfliegt
WriteLn(gluErrorString(glGetError()));
end;
end;
Da stell ich mir die eine Frage:
Warum kann SDL mit meinem SDL_Image Surface umgehen (Speichern, Blitten) und ich nicht? Ich hatte schonmal die Idee, TSDL_Surface als packed record zu definieren - immerhin ist SDL in C geschrieben und eventuell liegt das Surface anders im Speicher, aber Fehlanzeige. Dagegen spricht auch, dass das Surface der Form ja korrekt zu sein scheint (immerhin zeigt pixels nicht irgendwo an den Anfang des Speichers...).
Ich habs dann auch mal mit easySDLTextures probiert (nachdem ich sdlutils 64bit-tauglich gemacht habe), mit der gehts auch nicht.
Jemand ne Idee? Ich lauf hier nämlich bald Amok...
Gruß
edit: Mir ist grad noch ein Fünkchen Hoffnung aufgegangen, als ich gesehn hab, dass ich garnicht das geblittete Surface benutze (*peinlich*) - nichts desto trotz ist hier alles gleich: pixels zeigt in einen ähnlichen Speicherbereich. Wenn ich nur die Surface erstelle (CreateRGBSurface), dann kann ich ein schwarzes Bild speichern (auch logisch).
_________________ I'm not the signature, I'm just cleaning the floor...
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Du bist unter einem 64-Bit OS?
Dann würde ich an der Stelle mal den Header mit dem C-Header vergleichen und schauen ob nicht eine Variable mit falscher Länge definiert wurde.
Den Header hab ich mir angeguckt, der is so "1:1" vom C-Header übernommen.
Da snd die Fehler denke ich auch nicht zu suchen. Irgendwo schreibt SDL selbst ins Nichts, warscheinlich durch irgendwelches (rück-)konvertieren von Pointern - woher weiß ich das? Die Fehler sind unberechenbar. Binde ich zum Beispiel das normale GL und GLU ein, dann wird das Surface initialisiert, bind ich dglOpenGL ein, dann nichtmehr. Außerdem spielt meine Konsole kurz verrückt! Ich frag mich echt, ob gerade bei solchen Projekten nicht mal einer ne 64bit Kiste hat. Und sowas nennt sich dann Platform-Independent...
Ich werd mal die Demos testen.
Ich hab langsam keine Lust mehr auf den 64bit Mist - Man muss sich überall Workarounds und was weiß ich was machen, nichts funktioniert wie es soll. Da fragt man sich echt, wozu der Sch**** gut sein soll.... Nur mal meine Meinung sry für die Ausdrucksweise.
edit: Oder es liegt doch nur am Header, ein OGL-Beispiel mit Texturen in C geht nämlich. Aber jetzt 5000 Zeilen Code durchsehen? naja...
_________________ I'm not the signature, I'm just cleaning the floor...
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das Problem kommt mir verdammt bekannt vor!
Ich hatte doch vorkurzem ein ähnliches Problem. Wenn du den Compiler allerdings auf i386 umstellst, dann läuft es - abgesehen davon, dass deine Surface vermutlich nicht bei OpenGL ankommt, wenn du das gleiche "glück" hast wie ich.
Probier das doch mal aus, vielleicht können wir da unsere Erfahrungen irgendwie zusammenbringen. Ich suche immernoch nach einer Lösung.
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
Würde ich gerne tun aber... ich hab mir mittlerweile aus Frust vor dem ganzen 64bit gedöns ein 32bit-OS draufgemacht, und hier geht alles einwandfrei und das ist gut so...
_________________ I'm not the signature, I'm just cleaning the floor...
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
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.