DirectX Textur überladen

30/04/2009 - 18:42 von Thomas Petzold | Report spam
Hallo,

ich habe folgendes kleines Problem.

- ich zeichne in meiner Anwendung eine Textur mittels GDI
- speichere diese in einen Stream
- lese diese Stream in eine Textur mit TextureLoader.FromStream

das ganze làuft auch soweit. Nur zeichne ich diese Textur so alle 30
Sekunden neu und jedesmal beim wenn der TextureLoader làuft steigt der
Arbeitsspeicher der Anwendung um ca. 2MB an. Diese führt nach làngerer
Laufzeit natürlich zu einem OutOfMemory.

Gibt es hierfür eine andere Methode oder Lösung.

Gruß
Thomas
 

Lesen sie die antworten

#1 Karsten Sosna
01/05/2009 - 09:16 | Warnen spam
- ich zeichne in meiner Anwendung eine Textur mittels GDI
- speichere diese in einen Stream
- lese diese Stream in eine Textur mit TextureLoader.FromStream

das ganze làuft auch soweit. Nur zeichne ich diese Textur so alle 30
Sekunden neu und jedesmal beim wenn der TextureLoader làuft steigt der
Arbeitsspeicher der Anwendung um ca. 2MB an. Diese führt nach làngerer
Laufzeit natürlich zu einem OutOfMemory.

Gibt es hierfür eine andere Methode oder Lösung.



Hallo Thomas,
ohne hier irgendeinen Code zu sehen, kann man nur die Runen befragen.
Sicherlich vergisst Du irgendwo ein Dispose. Bedenke hinter DirectX steckt
unsaved Codeund unmanged Resource. Werden letztere nicht wieder freigeben,
passiert geanu das was Du beschreibst. Irgendeiner blockiert aber den
anderen, deswegen kann er nicht vom GC abgeràumt werden. Zeig mal etwas Code
und ich glaube ich finde Haken.
-
Gruß Scotty

Ähnliche fragen