Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: So Jul 13, 2025 16:25

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mo Nov 08, 2010 22:21 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
hi, ich bins wieder :D

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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 09, 2010 09:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
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

Vielleicht zeigst du mal dein OnResize ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 09, 2010 13:00 
Offline
DGL Member
Benutzeravatar

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 networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 09, 2010 13:10 
Offline
DGL Member

Registriert: Do Jan 07, 2010 21:58
Beiträge: 240
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);

  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity;
  IdleHandler(Sender, tmpBool);
end;


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]