Avatar billede nfotx Nybegynder
23. januar 2002 - 18:59 Der er 5 kommentarer og
1 løsning

Refreshe???

Hej alle sammen! Sidder og laver nogle småting med OpenGl og i C++, og så var det jo lige jeg tænkte hvordan jeg laver en eller anden form for timer, så jeg kan refreshe billedet fx 20 gange i sekundet?
Avatar billede tzr Nybegynder
23. januar 2002 - 19:18 #1
#include <iostream.h>
#include <time.h>

void main()
{
    unsigned long i;
    clock_t timer1, timer2;
    double duration;
    timer1 = clock();
    -- statements --
    timer2 = clock();
    duration = timer2-timer1;
    cout << duration << endl;
}
Avatar billede tzr Nybegynder
23. januar 2002 - 19:20 #2
du kan så bruge CLOCKS_PER_SEC (tror jeg det er den hedder) til at se hvormange clocks der går på et sekund. fx hvis den er til 1000, så er duration i millisekunder
Avatar billede nfotx Nybegynder
23. januar 2002 - 19:22 #3
hmmm... er meget newbie når det gælder C++, så hvordan sætter jeg hvor ofte der skal eksekveres et eller andet.
Avatar billede soreno Praktikant
23. januar 2002 - 19:35 #4
hvis du bruger windows (ved ikke med andre os..) kan du jo ikke være 100% sikker på at det er 20fps, da windows benytter callbacks (din app får kun lov til at køre når windows giver den lov).
dessuden skal du overveje hvad der skal ske hvis din app ikke kan følge med, altså er længere tid om at render en frame end 1/20 sekund.
Avatar billede jpk Nybegynder
24. januar 2002 - 08:54 #5
Når du laver en high performance graphics app skal du ikke bruge windows' standard messages til fx en timer. Det er netop som soreno skriver, du kan ikke garantere for at dine messages bliver modtaget konsekvent og til den rette tid...
Endvidere er det sådan, at der på mange PC'er kun er en timer med en gennemsnitlig opløsning på ~55ms, hvilket max vil kunne give en frekvens på ~18 frames/sek.
Det du derimod skal gøre er, at tjekke i et loop om en passende tidsperiode er passeret siden du renderede sidste frame.
Det er ikke hvad der anses for "pæn" programmering i Windows regi, men således er fremgangsmåden hvis det skal være high performance.
Du kan sikkert finde eksempler herpå, rundt omkring på nettet...
Avatar billede nfotx Nybegynder
26. januar 2002 - 21:37 #6
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester