Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

OpenGL-Problem

Empfohlene Antworten

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?

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

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?

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

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.