23. januar 2002 - 18:59Der 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?
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
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.
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...
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.