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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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