heute is mir aufgefallen das maximieren zur laufzeit nicht mehr geht, das programm hängt sich immer auf und gibt eine acces violation
wenn ich mit ok bestätige dann verweist sie auf diese procedure
Code:
procedure TMapManager.Render; var X,Y : Integer; begin for y := 0 to SizeInBlocks-1 do for x := 0 to SizeInBlocks-1 do begin glpushMatrix; glUniform2i(glGetUniformLocation(MapShader.SelShader, 'leafmin'), x*64,y*64); glInterleavedArrays(GL_V2F, SizeOf(TVertex), nil); glDrawArrays(GL_Triangles, 0, 64*64*SizeOf(TVertex)); glpopMatrix; end; end;
diese macht nichts anderes als eine matrix "aufzupoppen" (toll dieses wort), dem shader sagen wo wir gerade sind das vbo zeichnen und die matrix wieder "zuzupoppen"
das macht sie eben so lang bis alles gezeichnet ist, wenn ich die form gleich auf "Maximized" stelle geht alles wunderbar
nur maximieren zur laufzeit willer gar nich wissen, woran könnte das liegen?
€ desweiteren seh ich gerade is anscheint das gesammte onresize kaputt, verändern der größe geht überhaut nicht mehr
dem shader sagen wo wir gerade sind das vbo zeichnen
Ist der VBO den überhaupt gebunden? Würde jedenfalls die Zugriffsverletzung erklären.
Zitat:
diese macht nichts anderes als eine matrix "aufzupoppen" (toll dieses wort), (...) und die matrix wieder "zuzupoppen"
Das ist in diesem Fall völlig unnötig, da du den Matrixstack ja gar nicht veränderst. Auf Uniform-Variablen hat das keinen Einfluss, diese bleiben erhalten bis du sie neu setzt (auch bleiben ebenfalls erhalten wenn zwischen durch der Shader deaktiviert wird).
Zitat:
€ desweiteren seh ich gerade is anscheint das gesammte onresize kaputt, verändern der größe geht überhaut nicht mehr
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Benutzt du SDL? Dann kann es sein, dass du beim Resize den OpenGL-Kontext neu erzeugst. Dabei gehen alle Daten wie Texturen, VBOs etc verloren und müssen entsprechend neu erzeugt werden.
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
ja jetzt wo ich das 2. vbo eingebaut habe musste ich ja in jedem frame das vbo neu binden, jetzt scheint es zu gehen, aber wie kann das sein das es nur in der OnResize auffält und alles andere einfach sorglos funktioniert?
und nein ich nutze kein sdl, das mag ich nicht^^
meine onresize ist ganz standartmäßig ( ich glaub ich änder da nie etwas drann)
Code:
procedure TForm1.FormResize(Sender: TObject); var tmpBool: Boolean; begin glViewport(0, 0, Clientwidth, Clientheight); glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective(45.0, Clientwidth/Clientheight, NearClipping, FarClipping);
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.