ich bin relativ neu in Delphi und beschäftige mich neuerdings auch mit OpenGL Ich habe mir als erstes mal Gedacht ich erstelle so ein Zauberwürfelprogramm.
Ich weiß leider nichtmehr genau wie diese Würfel heißen. Das sind die, wo man so lange drehen muss, bis jede Seite einfarbig ist.
Ein Freund von mir schreibt so etwas als normale VCL Anwenfung. Sozusagen als aufgeklapten Würfel, damit man den Würfel ganz schnell per PC lösen kann. Also da gibts ja so Alrythmen für usw. und der PC errechnet dann die Schritte.
So das war aber nur so Kram nebenbei
Mein eigentliches Problem ist folgendes:
Ich will mich nun langsam da rantatsten.
Nun habe ich mir eine Klasse geschrieben, die mir ganz einfach Würfel erstellt.
Das funktioniert auch alles ganz toll. Nur wenn man die Fenstergröße verändert, dann fehlen plötzlich ein paar seiten Und ich habe leider echt überhaupt keine Ahnung woran es liegt
Und hoffe, dass ihr mir da vlt. helfen könnt.
Hier mal die Units, aber ich hänge alles nochmal als rar an
Hauptprogramm (dpr):
Edit : Bitte keine so großen Quellcodeblöcke posten. Das machts unübersichtlich, ist viel Arbeit für die Forensoftware und lesen tut das auch keiner. Programm dann bitte hochladen oder anhängen. - Sascha Willems
Ich hoffe echt ihr könnt mir da helfen.
Ich habe nämlich keine Ahnung woran es liegen könnte
P.S.
Ich weiß im Ordner sieht es kaotisch aus, aber das liegt daran, dass ich das fertige Projekt genommen habe....
Normal habe ich eine klar strukturierte Ordnerstruktur, welche klar zwischen Source und dem daraus resultirendem unterscheidet
Ach ich habe die DCU's und die EXE aus dem Archiv gelöscht, weil es ansonsten zu groß gewesen wäre.....
EDIT:
Oh mann das warn Kapf eben bis ich posten konnte-.-
bis ich endlich rausgefunden hatte, dass es daran lag, ass ich zu viel Text hatte
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Was für ein komischer Fehler...
Bei dir hat sich der Tiefentest nach einem Resize ausgeschaltet. Konnte man übrigens auch an den Quads sehen , wobei es aber recht schwer ist.
Ich kann aber aktuell leider nicht überprüfen ob es ein Fehler an deinem Code, SDL oder was auch immer ist.
Der Workaround steht aber oben.
Ein paar Anmerkungen:
Quads.pas:
76-80: Ersetzt Length(fQuads) -1 durch High(fQuads).
93: Die Schleife geht ein Element über das Array hinaus. Es fehlt ein -1 oder High.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das ist ein Problem mit SDL. Durch den Aufruf von SDL_SetVideoMode wird unter Windows der OpenGL Kontext gelöscht und somit alle, Texturen, Listen und auch alle vorgenommenen Einstellungen. Somit ist der Tiefentest nach einem Aufruf von SDL_SetVideoMode wieder auf seinem Defaultwert. Also aus.
Um das zu beheben musst du in der Methode glHandleEvents (DPR) vor oder direkt nach (spielt eigentlich keine Rolle) dem Aufruf von glResizeWindow alle deine OpenGL Sachen neu initialisieren. Also Texturen neu laden etc etc etc. Oder du deaktivierst einfach die Größenveränderbarkeit.
Die geschichte mit dem high ist auch eine für sich Ich hatte rumexperimentiert und das dann vergessen gehabt rückgängig zu machen Und nach dem ich meine OpenGL Sachen neu initalisiere geht auch das^^
Code:
glResizeWindow( event.resize.w, event.resize.h);
Init_OpenGL;
Also nochmals vielen Dank für eure schnelle Hilfe.
Ach die SDL.pas hatte von dem Template übernommen und auch die sdl.dll
Muss ich dann beide Dateien austauschen??
Weil ich dürfte die neuste sdl.pas haben, weil ich habe ja das neuste SDK drauf^^
Und zu guter letzt will ich mich auch noch entschuldigen, dass ich den Code direkt hier rein gepostet hatte....
Kommt nicht wieder vor. Ich dachte nur, dass man dann nicht den ganzen Kram rumterladen muss sondern einfach mal schnell durchscrolled Aber bei dieser menge an Code war es eigentlich kalr, dass die Forensoftware streikt, zumal sie zuerst meinen Text die ganze Zeit nicht übernommen hatt
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.