Hallo,
Zitat:
Die Ausgänge auf der Graka habe ich aber geht darum ein digital Video aufzunehmen. Länge: sekunden bis wenige Minuten.
640*480 wäre auch gut
jetzt kannst Du ausrechnen wieviel Speicher Du brauchst (pro Sekunde und für den ganzen Film)
und entscheiden ob Du zuerst alles im Arbeitsspeicher einlesen möchtest und danach die einzelnen Sache (Bilder/Frames) abarbeiten möchtest
oder ob Du über einen FileStream gleich auf Platte schreiben willst ...
Zitat:
Wie kann ich eine Laufzeitmessung machen?
normalerweise mit
anfang := Time;
// mach was
ende := Time;
diff := ende - anfang;
aber das ist viel zu ungenau ...
auch der GetTickCount ist nur im 10ms Bereich genau, verwende den
QueryPerformanceCounter
da bekommst Du im 1ms Bereich genaue Zeiten geliefert
Delphi-Quellcode:
var liStart : TLargeInteger;
var liEnd : TLargeInteger;
var liDiff : TLargeInteger;
var b : Boolean;
var liFreq : TLargeInteger;
var dTime : Double;
begin
b := QueryPerformanceFrequency (liFreq);
b := QueryPerformanceCounter (liStart);
// START Zeitmessung
Sleep (513);
// für Dich ist hier der BitBlt-Aufruf zu verwenden
// ENDE Zeitmessung
b := QueryPerformanceCounter (liEnd);
liDiff := liEnd - liStart;
// Zeit in Sekunden
dTime := liDiff / liFreq;
was mir noch eingefallen ist, in der Spiele-Entwicklung wird nicht jedes Pixel ausgelesen
entweder jede zweites Pixel oder jede zweite Zeile
auch die game-entwickler haben Tricks, vielleicht wäre die vorgehensweise über diesen Bereich
effizienter