DirectDraw wird immer langsamer
-
Hallo!
Ich muss ~30 Bitmaps (beinhalten Animationsframes) mit insgesamt sicherlich 40 MB in IDirectDrawSurface laden und bliten.
Das ganze geht mit 5 Bitmaps relativ gut, erzeuge ich jedoch weitere Surfaces beginnt die gesamte Anwendung sehr stark zu ruckeln.
Ich denke mal wegen der Auslagerung der bmps in den Hauptspeicher...Ich kann die Frames nicht kleiner machen und auch nicht sonst irgendwie komprimieren.. an was liegt dieser drastische Geschwindikeitseinbruch nun tatsächlich? Beheben lässt sich das sicher, denn die "großen" Grafikanwendungen laden sicher auch mehr als 40 MB an Grafiken!
mfG
Gunther
-
Umsteigen auf D3D. :p
Damit kann man übrigens auch sehr schön 2D-Grafik programmieren.Und schneller ist es auch, vermutlich hast du auch mehr Texturspeicher dann zur Verfügung...
Wofür brauchst du überhaupt 40MB 2D-Grafiken?!
-
Wozu? Naja, ich mach so ne Art MortalCombat mit echten gefilmten Personen...
Auf D3D will ich jetzt ehrlich gesagt nicht mehr umsteigen, jetzt wo die Engine so gut wie fertig ist...Übrigens: Bin draufgekommen, dass Die GetTickCount() plötzlich so extrem bremst! Wenn ich die weg gebe, geht alles extrem schnell (zu schnell)..
shit, gibts da eine bessere Möglichkeit als GetTickCount um den FrameUpdate Vorgang etwas zu steuern?
-
Ja, QueryPerformanceCounter() und QueryPerformanceFrequency().
-
Ausgezeichnet. Man dankt!
Gunther
-
am besten einmal pro rendering/logic durchlauf am anfang die zeit in einer variable zu speichern und dann von überall drauf zugreifen, sollte am schnellsten sein.
rapso->greets();