Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Easy3DGL - Eine Bibliothek für OpenGL (https://www.delphipraxis.net/160483-easy3dgl-eine-bibliothek-fuer-opengl.html)

rollstuhlfahrer 26. Mai 2011 19:25

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von mleyen (Beitrag 1103042)
Bei mir fliegt die Exception bei:
Delphi-Quellcode:
wglSwapIntervalEXT(1);
Und FreeGL sollte auch nicht öfters aufgerufen werden.:shock:

Bei mir auch.

Bernhard

ADD: Gibt es eigentlich eine Version, die aktueller ist, als die momentan verfügbare zum Download?

Edlmann 27. Mai 2011 09:40

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Ich hab grade eine neue Version hochgeladen, wo ich beim Starten eines Programms die Fehlerbehandlung verbessert habe und eine andere Prozedur zum V-Sync aktivieren benutze, ich weiß aber nicht ob das den Fehler fixxt...

Zu deiner Liste rollstuhlfahrer:

a) noch nicht erledigt, mach ich aber noch
b) geht leider nicht, da bei TWinControl die Events OnMouseDown etc protected sind
c) den Texturloader habe ich nicht selbst geschrieben, werd mich mal umschauen ob es einen Loader dafür gibt
d) Hinzugefügt
e) gefixxt
f) War in beiden Versionen ein Fehler und ist gefixxt. Das mit der virtuellen Methode hatte ich auch versucht, allerdings wurde die Prozedur dann trotz override nicht korrekt aufgerufen...
g) Den Fehler finde ich einfach nicht. Die AV kommt erst bei CItem.Free, und ich frage ja vorher extra ab ob da auch was ist was man befreien kann...ich versteh es bisher absolut nicht.
h) Ist verbessert, kommt jetzt eine Fehlermeldung

Zweiter Post:

Es kann sein dass der das TGA nicht annimmt, weil es keine Farbtiefe von 32-bit hat. Der Texturloader den ich im Moment benutze unterstützt anscheinend aber nur 32-bittige-tga's
a) liegt auch am Loader, schau ich mir mal an
b) Hab ich verändert.

@mleyen: Habs dann auch relativ schnell nach dem ich den Post oben geschrieben habe gesehen ^^ lag dran dass das Beispiel noch mit einer älteren Version geschrieben wurde, wo das nicht automatisch erledigt wurde. Ist gefixxt.

Vielen Dank fürs Feedback ;)

Satty67 27. Mai 2011 09:57

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von Edlmann (Beitrag 1103238)
g) Den Fehler finde ich einfach nicht.

Kann sein dass ich mich falsch erinnere...

Aber schau Dir mal die Schleife an... meine da war Schleifenvariable x und Zugriff über y (oder umgekehrt)

Edlmann 27. Mai 2011 10:08

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Zitat:

Zitat von Satty67 (Beitrag 1103247)
Zitat:

Zitat von Edlmann (Beitrag 1103238)
g) Den Fehler finde ich einfach nicht.

Kann sein dass ich mich falsch erinnere...

Aber schau Dir mal die Schleife an... meine da war Schleifenvariable x und Zugriff über y (oder umgekehrt)

Ne, Variable ist beidesmal x...

Satty67 27. Mai 2011 11:15

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Sehe ich anders...
Delphi-Quellcode:
// FreeGL
  for y := 0 to TransparentList.Count - 1 do
  begin    
    if Assigned(SolidList[x]) then
    begin
    CItem := TransparentList[x];
    CItem.Free;
    end;
  end;
Das auf SolidList geprüft wird statt TransparentList[], war zudem wohl der C&P Fehler

Edlmann 27. Mai 2011 11:17

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Mmh...bei mir steht da:

Delphi-Quellcode:
  try
  for x := SolidList.Count - 1 downto 0 do
  begin
    if Assigned(SolidList[x]) then
    begin
    CItem := SolidList[x];
    SolidList.Remove(CItem);
    CItem.Destroy;
    end;
  end;
  for x := TransparentList.Count - 1 downto 0 do
  begin
    if Assigned(TransparentList[x]) then
    begin
    CItem := TransparentList[x];
    TransparentList.Remove(CItem);
    CItem.Destroy;
    end;
  end;
  except

  end;
kann sein dass ich das schon gefixxt habe, und nur noch nicht hochgeladen, schau ich gleich mal

Satty67 27. Mai 2011 11:19

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Also ist bei mir natürlich noch die ungefixte Version, aber dachte darauf bezog sich die Liste von rollstuhlfahrer. Wenn es gefixt ist, ist ja gut.

Edlmann 27. Mai 2011 11:24

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Sagen wir die CopyPaste Fehler sind gefixxt... die AV kommt noch immer... ^^

mleyen 27. Mai 2011 11:30

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Hab mir die neue Version noch nicht angeschaut, aber statt .Destroy sollte man lieber FreeAndNil() verwenden.
Und ein private-Sichtbarkeitsabschnitt wäre für Sachen wie FreeGL von Vorteil.

rollstuhlfahrer 27. Mai 2011 12:30

AW: Easy3DGL - Eine Bibliothek für OpenGL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab die AV gefunden: In der TransparentList ist an Position 1 (bei mir) ein schon aus dem Speicher genommenes Objekt, welches fälschlicherweise von Assigned als existent erachtet wird. Jetzt nur noch schauen, wo das Objekt gelöscht wird.

Bernhard

ADD: AV entgültig gefunden: Bei mir wurde ein GLLicht erstellt. Dieses wurde zu der genannten Liste hinzugefügt. Leider wurde dieses Licht vorher bei den Lichtern aus dem Speicher genommen und ist somit nicht mehr da. Dann soll es allerdings wieder aus dem Speicher genommen werden und dann knallt der nächste Zugriff (das war bei mir die Abfrage nach dem Klassenname).

ADD2: Was mir noch auffällt: Meine Objekte sind alle DOPPELT in der Liste, sie werden also auch 2x gezeichnet. Was machen die da doppelt drin?
ADD3: Warum die alle doppelt drin sind? - Das liegt an den Konstuktoren: In GLQuader (Beispiel) wird das Material gesetzt. Dann wird über inherited der Konstruktor von GLObject aufgerufen und dort gleich nochmal das Material gesetzt. -> macht 2 Listeneinträge, von denen einer zu viel ist.

ADD4: Ich habe mal eine geänderte Version hochgeladen (für Delphi ohne Umlaute). Alles, was ich geändert habe, habe ich mit "Änderung" versehen. Teilweise stehen auch die Gründe direkt dabei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Seite 3 von 6     123 45     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz