Come faccio a calcolare fps in una semplice applicazione Direct2D?
-
02-10-2019 - |
Domanda
Ciao ragazzi, e grazie per guardare. Ho costruito la semplice applicazione D2D da MSDN, disponibile qui . Ora, voglio trarre alcune primitive e aggiungere un contatore fps.
Ho un evento OnRender (), dove traggo i rettangoli e così via. Ho anche una chiamata a RenderTextInfo () dove io chiamo RenderTarget-> DrawText. Dove faccio ad aggiungere la logica per contare il numero di fotogrammi al secondo?
Grazie molto.
Soluzione
Non so la roba esatto Direct2D, ma questo potrebbe aiutare.
In sostanza, si hanno due scelte. O si aggiorna il framerate quando si disegna un frame, o ogni secondo (o qualsiasi altro intervallo di tempo).
Se si conta che quando si disegna una cornice, si può ottenere semplicemente l'ora corrente quando si disegna una cornice, e sottrarre da esso il tempo che avete disegnato l'ultimo fotogramma. Che si ottiene il tempo trascorso questo lasso di disegno. Il reciproco di tale (cioè 1 / x) è il framerate.
Se si conta che ad intervalli di tempo regolari, è necessario avere un po 'di tiro evento ad ogni intervallo che i controlli quanti fotogrammi sono stati elaborati dall'ultima volta che evento si verificava. Divide che entro l'intervallo (se si tratta di un secondo, non c'è bisogno di dividere, ovviamente) e questo è il valore del tuo fps. Non dimenticare di incrementare un po 'contatore ogni volta che si disegna una cornice.