Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo!

Ich habe ein Problem mit OpenGL.

Undzwar Folgendes:

Ich erzeuge mit glGenLists(1); ein Objekt zwecks späterem abrufen in der

paintGL()-Methode.

Das klappt soweit auch alles. Nur muss ich das Objekt desöfteren Mal neu

berechnen lassen, weil sich Farben etc. ändern.

Wenn ich das häufig und in schneller Abfolge machen lasse, müllt mir aber

irgendwas meinen Speicher zu, undzwar satte 30MB pro Funktionsaufruf, und es kommt nach einiger Zeit zum gefürchteten

Swapping (rumrödeln auf der Festplatte).

Meine Variablen sind alle statisch, das heißt Pointerfehler meinerseits sollten

eigentlich ausgeschlossen sein.

Ich vermute daher, dass glGenLists() für das Fiasko verantwortlich ist.

Weiß irgendjemand, was ich da machen kann?

Geschrieben

Hallo!

Gibst du auch immer den Speicher, den du nicht mehr brauchst, frei? Ich würde da eher mit dynamischen Speicher arbeiten und schön aufpassen, dass ich immer delete etc. aufrufe. Und in deinem Fall ist vielleicht auch manchmal glDeleteLists() angebracht (bin jetzt aber kein OpenGL-Coder, hab nur mal gegoogelt :D).

BTW, gehört eigentlich nicht wirklich in dieses Forum!

HTH

Benjamin

Geschrieben

Hab' das Problem gelöst...

glGenLists sucht nämlich irgendwie nach einem unbenutzten Ort, wo es gerne Hinpointen würde und gibt die Adresse in Form eines Integers zurück.

Und das ist bei jedem Aufruf ein anderer Wert...

Indem ich immer den selben Wert nehme, wird das Speicherzumüllungsproblem gelöst.

Wieso ist das nicht das richtige Forum?

Geschrieben

Gehört eigentlich bei C++: Compiler, IDEs, APIs rein, aber ist jetzt auch net tragisch .. wollt nur ma drauf hinweisen.

Trotzdem sollte man generell immer auf richtige und rechtzeitige Speicherfreigabe achten (z.B. Destruktoren gezielt einsetzen etc.). C++ hat nicht so einen guten garbage collector wie Java oder C#.

Geschrieben
Original geschrieben von kLeiner_HobBes

Trotzdem sollte man generell immer auf richtige und rechtzeitige Speicherfreigabe achten (z.B. Destruktoren gezielt einsetzen etc.).

Das tu' ich doch normalerweise auch! Nur wenn man nicht weiß, wie so'ne eingebundene "Fremdfunktion" funktioniert und man eben selber auch nichts Alloziert hat, gestaltet sich das eben ein bisschen Schwieriger.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...