Ich bin noch nicht so in der Materie, also entschuldigt mir diese Frage und beantwortet sie einfach
Mir ist aufgefallen, das wenn ich eine Matrix auf den Stack "pushe" und danach wieder aufrufe, diese
automatisch vom Stack gelöscht wird.
Wenn ich jetzt diese Matrix für mehrere Transformationen benutzen möchte, ist es recht unhandlich,
Code:
Bsp.:
glTranslate(x, y, z);
glrotate(angle, x, y, z);
glPushMatrix;
glPushMatrix;
glPushMatrix;...
zu schreiben, um dreimal
Code:
glPopMatrix;
.
.
glPopMatrix;
.
.
.
aufrufen zu können.
Gibt es also eine Möglichkeit das löschen vom Stack zu verhindern oder nur dann auszulösen wenn ICH es möchte,
und nicht nach jedem glPopMatrix ?
ja, ob ich die Schreibweise evtl veränder, hab ich mir auch schon überlegt...
Ist ja auch sinnvoll, vorallem wenn man kurzzeitig was manipulieren möchte...
Trotzdem beantwortet das meine Frage nicht,
aber danke
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Naja, wenn ich das richtig sehe, dann sin glPush und glPop ja gerade dazu erschaffen und ersonnen worden, das das eine was auf den Stack schreibt, das andere dann das ganze seit dem Pushen wieder "löscht".
Wenn ich dein Problem richtig versteh, dann kann ich des ned ganz nachvollziehen, wenn du also dir das Poppen sparen willst, dann wäre ein Pushen ja sinnlos. dann lass es doch einfach weg!
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Nein...da hast du mich falsch verstanden.
Ich finde die Funktionen ja sehr sinnvoll, etc. etc. .
...
Was ich bräuchte / haben möchte wäre in etwa folgende Procedure
Code:
procedure glPopMatrix(delete:Boolean);
die, wenn \"delete\" den Wert True annimmt, den aktuellen Stack löscht, und ansonsten nix macht,
ausser den Stack zu laden, ihn aber nicht löscht.
Das hätte den Vorteil, das ich nicht jedesmal
Code:
glPopMatrix;
glPushMatrix;
//mein toller Code hier....
glPopMatrix;
glPushMatrix;
//schonwieder mein toller Code
schreiben müsste;
Ansonsten schreib ich mir diese Procedure einfach selbst nach dem Schema
Code:
procedure glPPOwnMatrix(const del:Bool);
begin
if del then
glPopMatrix
else
begin
glPopMatrix;
glPushMatrix
end
end;
Das würde ich nur sehr "unschick" finden, wenn so eine Möglichkeit in OGL schon implentiert wäre - und
eben dies war meine Frage - ob s sowas schon gibt
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du kannst die aktuelle Matrix glaub ich via glGet holen und in einer Variable speichern. Per glLoadMatrix oder so kannste die dann selber wieder setzen wie du willst.
Bin mir net sicher obs glGet war. Musst mal im Wiki unter glMatrixMode gucken...vielleicht weis ein anderer wie der Befehl heißt.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ja...is es. Man kann nur hoffen dass je mehr es nutzen hin und wieder auch paar neue Helfer mitmachn. Wie man an den roten Links sieht: Es ist noch nicht ganz vollständig.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
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.