Ich versuche, die Chronobibliothek für Timer und Dauer zu verwenden.
Ich möchte in der Lage sein, eine Duration frameStart;
(von App-Start) und eine Duration frameDelta;
(Zeit zwischen Frames) zu haben.
Ich muss in der Lage sein, die frameDelta
Dauer als Millisekunden und Float-Sekunden zu erhalten.
Wie geht das mit den neuen c ++ 11- <chrono>
Bibliotheken? Ich habe daran gearbeitet und gegoogelt (Informationen sind spärlich). Der Code ist stark mit Vorlagen versehen und erfordert spezielle Besetzungen und Dinge. Ich kann nicht herausfinden, wie diese Bibliothek richtig verwendet wird.
count
sie dann auf ...duration_cast
Antworten:
Ist es das, wonach du suchst?
was für mich druckt:
quelle
auto
auffs
und verwendend
?auto
wäre in Ordnung fürd
, als Ergebnis derduration_cast<ms>
istms
. Diesfs
auto
wäre jedoch nicht angemessen, da das Ergebnis vont1-t0
einen Typ hat,high_resolution_clock::duration
der nicht unbedingt der gleiche Typ ist wieduration<float>
. Zum Beispiel auf meinem System ist esduration<long long, nano>
. In dieser Zeile findet also eine implizite Konvertierung von integralbasiertnanoseconds
zu floatbasiert stattseconds
, nur weil der Zieltyp mit angegeben istfsec
.auto fs = std::chrono::duration_cast<fsec>(t1 - t0);
pedantischer Overkill?Erraten Sie, wonach Sie fragen. Ich gehe davon aus, dass Sie im Millisekunden-Frame-Timer nach etwas suchen, das sich wie folgt verhält:
aber verwendet
std::chrono
stattdessen,Hoffe das hilft.
quelle
Ich weiß nicht, was "Millisekunden und Gleitsekunden" bedeutet, aber das sollte Ihnen eine Idee geben:
quelle
count
alsfloat
?Im AAA-Stil unter Verwendung der explizit eingegebenen Initialisierungssprache :
quelle