Entwickler-Ecke
Multimedia / Grafik - Wie speichert DirectX Daten?
ScaVo - Sa 19.11.11 23:55
Titel: Wie speichert DirectX Daten?
Sehr geehrtes Forum,
heute geht es mir mal um eine reine Wissenssache. Wenn man über z.B. DirectX ein Interface erstellt, dann kann man dieses auch Locken und wunderbar Daten schreiben ect., aber wie sieht es eigentlich mit dem freigeben dieses Speichers aus? Laut dem Buch welches ich verwende reicht es
zu schreiben und schon ist alles friedlich.
Nur kommt mir diese Methode unsauber vor. Deswegen wollte ich wissen, ob dann wirklich alles freigegeben ist - inklusive den hinterlegten Vertexdaten? Und wenn ich die Größe des Vertexbuffers ändern möchte, da ich mehr oder weniger Vertices beim nächsten Rendern habe - kann ich dann einfach einen neuen Vertexbuffer mit dem gleichen Interface erstellen oder wie läuft das dann?
Ich hoffe ihr versteht mein Problem und meine Zweifel.
Scavo
Delete - So 20.11.11 11:03
Nein, das hat nichts mit der eigentlichen GPU-Seite von D3D zu tun. Normalerweise gibt's die typischen COM-Aufrufe, um Ressourcen effektiv zu verwalten. DeinObject.Release() sollte zum Beispiel deine Ressource auf der GPU als auch im CPU-RAM(oder wohin du sie auch immer gemappt hast) freigeben. Guck dir mal COM-Schnittstellen an. Ansonsten hat das DirectX-SDK eine sehr gute Dokumentation, die wahrscheinlich nützlicher ist als jedes Buch.
Ich übernehme keine Haftung für die Richtigkeit meiner Aussage. ;)
jaenicke - So 20.11.11 12:24
ScaVo hat folgendes geschrieben : |
Nur kommt mir diese Methode unsauber vor. Deswegen wollte ich wissen, ob dann wirklich alles freigegeben ist - inklusive den hinterlegten Vertexdaten? |
Intern wird an dieser Stelle automatisch ein Aufruf von _Release bei dem Interface hinzufügt. Im Übrigen im Normalfall auch ohne, dass du explizit den Wert nil zuweist. Nur weißt du dann evtl. nicht wann das genau geschieht, wenn es nicht gerade eine lokale Variable ist, bei der der Scope die aktuelle Methode ist.
Ob damit auch alles freigegeben wird, sollte die Dokumentation beinhalten. Zumindest dann, wenn es nicht so ist.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!