Estou tentando usar a biblioteca chrono para cronômetros e durações.
Eu quero ser capaz de ter um Duration frameStart;
(desde o início do aplicativo) e um Duration frameDelta;
(tempo entre os quadros)
Preciso ser capaz de obter a frameDelta
duração em milissegundos e segundos flutuantes.
Como você faz isso com as novas <chrono>
bibliotecas c ++ 11 ? Estive trabalhando nisso e pesquisando no Google (as informações são esparsas). O código é fortemente modelado e requer casts e coisas especiais, não consigo descobrir como usar essa biblioteca corretamente.
count
...duration_cast
Respostas:
É isso que você está procurando?
que para mim imprime:
fonte
auto
emfs
ed
?auto
seria adequado parad
, como resultado doduration_cast<ms>
isms
. No entanto, parafs
auto
não seria apropriado porque o resultado det1-t0
tem um tipohigh_resolution_clock::duration
que não é necessariamente o mesmo tipo queduration<float>
. Por exemplo, no meu sistema éduration<long long, nano>
. Portanto, há uma conversão implícita de baseadonanoseconds
em integral para baseado em flutuanteseconds
acontecendo nessa linha, apenas porque o tipo de destino é especificado comfsec
.auto fs = std::chrono::duration_cast<fsec>(t1 - t0);
um exagero pedante?Adivinhar o que você está pedindo. Estou supondo que por temporizador de quadro de milissegundos você está procurando algo que funcione como o seguinte,
mas usa em
std::chrono
vez disso,Espero que isto ajude.
fonte
Não sei o que significa "milissegundos e segundos flutuantes", mas isso deve dar uma ideia:
fonte
count
como umfloat
?No estilo AAA usando o idioma inicializador explicitamente digitado :
fonte