Jestem chyba odrobinę zniesmaczony.
Odrobina uproszczonego kodu:
void start(){
initialize();
auto new_time = std::chrono::high_resolution_clock::now();
auto old_time = new_time;
while(!quit){
new_time = std::chrono::high_resolution_clock::now();
auto elapsed_time = new_time - old_time;
old_time = new_time;
update(elapsed_time);
draw();
}
finalize();
}
typedef std::ratio<1, 1000000000000> pico;
typedef std::chrono::duration<long long, pico> Duration;
virtual void onUpdate(Duration elapsed_time) override{
static int counter = 0;
cout << "chrono: " << elapsed_time.count() << "; SDL: " << SDL_GetTicks() << endl;
if(counter++ > 10) quit = true;
}
Przykładowe wyjście
chrono: 0; SDL: 26
chrono: 0; SDL: 26
chrono: 0; SDL: 26
chrono: 0; SDL: 27
chrono: 0; SDL: 27
chrono: 0; SDL: 27
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
chrono: 0; SDL: 28
Mając standard chciałbym ograniczyć użycie zbędnego kodu z zewnątrz. Czy mogę?
Czy używam chrono w zły sposób?
//EDIT:
code::blocks
- Release 13.12 rev 9501
gcc 4.7.1
Windows/unicode - 32 bit
//EDIT:
ehh... nic to, zostaje mi tylko napisać providera
wysoce precyzyjnego zegara
to zbyt wiele? :s