Registriert: Sa Okt 17, 2009 12:40 Beiträge: 14 Wohnort: Tirol
Hi, zuerst mal ein großes Lob! Die ersten 3 Tutorials, sind super geschrieben und einfach nachzuvollziehen(für mich)
Jetzt hänge ich aber bei Tutorial (Lektion ) 4. Die SDL Probleme konnte ich durch die Forensuche lösen. Jetzt hänge ich aber an folgendem:
Zitat:
Tapeten besorgen
Ich werde jetzt nicht näher darauf eingehen, wie man Texturen erstellt. Vielleicht gibt's ja einige Photoshopexperten unter Euch, die Lust haben einige Ihrer Tricks den anderen in Form eines Tutorials zu zeigen.
Zunächst einmal müssen wir uns die eigentlichen Bilddaten besorgen. Wir werden das jetzt in diesem Tutorial mit SDL machen es gibt jedoch auch die Möglichkeit die Daten manuell zu laden das könnt Ihr hier nachlesen:
* TGA Bilder laden
Es gibt allerdings auch Texturloader die Euch die nächsten Kapitel abnehmen und das alles für Euch machen. glBitmap ist so ein Loader. Mehr dazu erfahrt Ihr in dem glBitmap-Artikel.
Bei SDL rufen wir nur IMG_Load auf und prüfen dann ob das Laden erfolgreich war. Hierbei sei erwähnt, dass es unter Linux zu Problemen führen kann, wenn ein Programm nicht aus einer Konsole heraus gestartet wurde. In diesem Fall sind die Pfade zu den Texturen nämlich falsch gesetzt und das Laden würde fehlschlagen. Abhilfe schafft man durch das Verwenden von absoluten Pfaden.
bei diesem Formcreate nach dem Tutorial erhalte ich bei programmstart : Erste Gelegenheit für Exception bei $75C2FBAE. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000'. Prozess OpenGL.exe (1376)
Das sagt mir der Debugger
Du nutzt beim Laden der Textur bereits OpenGL obwohl es noch nicht initialisiert ist. Ich würde das Laden der Textur in die Init-Methode packen, jedenfalls nach dem RenderingContext/SetupGL;
Es ist generell davon abzuraten, OGL-spezifische Initalisierungen in Construktoren und OGL-spezifische Freigaben in Destruktoren abzuarbeiten.
Wie Coolcat angemerkt hat, kann es vorkommen, dass beim Construktor der OGL Kontext nihct bereitsteht. Beim Destruktor hingegen kann es vorkommen, dass der Kontext schon vernichtet wurde. Deswegen sind Init- und Dispose- (o.Ä.) Methoden die bessere Alternative.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Um auszuschließen, dass der Fehler an den DL liegt, solltest du zu aller erst mal versuchen den Coder innerhalb der DL direkt an der Stelle einzufügen wo du später die DL aufrufst.
Falls du dann dort auch nichts siehst, könnte es z.B. daran liegen, dass deine Szene zu nah an der "Kamera" also der Near-Clipping-Plane ist.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Das ist mit hoher Wahrscheinlichkeit die Near-Clipping-Plane, versuch mal ein glTranslatef(0, 0, -5) nach dem letzten glLoadIdentity (oder wars +5 anstatt -5? Probier +5, wenn -5 nicht geht).
greetings
_________________ 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 4 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.