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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top