Ich arbeite mit dem PerformanceCounter und habe folgendes Problem:
Ich möchte in jedem Frame die vergangene Zeit in Sekunden errechnen,
das mache ich in dem ich den aktuellen LastCount ( LastCount ) von dem aktuellen Zählerstand ( CurrentCount ) abziehe und das Ergebnis durch die Frequenz des PerformanceCounters Teile das funktioniert auch.
aber wenn jetzt zum Beispiel einer der Werte im Minusbereich liegt, da der DatenTyp ja LONGLONG ist passiert das ja irgendwann, bekomme ich eine vergangene Zeit im Minusbereich da ich aber die Bewegungen davon abhängig mache ist das unpraktisch wie kann ich das Problem lösen ?
Das ist die Funktion zum Errechnen der vergangenen Zeit:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
|
VOID MBE_Timer :: Update ( VOID )
{
this -> LastCount = this -> CurrentCount;
QueryPerformanceCounter ( reinterpret_cast < LARGE_INTEGER * > ( & this -> CurrentCount ) );
this -> FrameTime = static_cast < FLOAT > ( ( this -> CurrentCount - this -> LastCount ) / this -> Frequency );
return;
}
|