AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Easy3DGL - Eine Bibliothek für OpenGL
Thema durchsuchen
Ansicht
Themen-Optionen

Easy3DGL - Eine Bibliothek für OpenGL

Ein Thema von Edlmann · begonnen am 15. Mai 2011 · letzter Beitrag vom 22. Mär 2012
Antwort Antwort
Edlmann

Registriert seit: 19. Nov 2010
212 Beiträge
 
#1

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 10:08
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...
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 11:15
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
  Mit Zitat antworten Zitat
Edlmann

Registriert seit: 19. Nov 2010
212 Beiträge
 
#3

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 11:17
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
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 11:19
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.
  Mit Zitat antworten Zitat
Edlmann

Registriert seit: 19. Nov 2010
212 Beiträge
 
#5

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 11:24
Sagen wir die CopyPaste Fehler sind gefixxt... die AV kommt noch immer... ^^
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 11:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Easy3DGL - Eine Bibliothek für OpenGL

  Alt 27. Mai 2011, 12:30
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.
Angehängte Dateien
Dateityp: pas Easy3DGL.pas (45,0 KB, 28x aufgerufen)
Bernhard
Iliacos intra muros peccatur et extra!

Geändert von rollstuhlfahrer (27. Mai 2011 um 12:49 Uhr) Grund: geänderte Datei angehängt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz