[DirectX] Wie speichert DirectX Daten?
spacer
Autor Nachricht
ScaVo
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 19.11.11 23:55 
Betrifft: DirectX
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
ausblenden Delphi-Quelltext markieren
1:
vertexbuffer := nil;

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
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
j.klugmann
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 35

Windows 7, Debian "Squeeze"
C#,C++,Haskell,Python,Delphi,PHP
BeitragVerfasst: 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. ;)

_________________
FD Imaging - Bildbearbeitung und Middleware
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: So 20.11.11 12:24 
user profile iconScaVo hat folgendes geschrieben Zum zitierten Posting springen:
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.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home