Afegit comptador de frames per segon a la classe Screen
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#ifndef NO_SHADERS
|
||||
#include "jshader.h"
|
||||
#endif
|
||||
#include "dbgtxt.h"
|
||||
|
||||
// Constructor
|
||||
Screen::Screen(SDL_Window *window, SDL_Renderer *renderer, Asset *asset, Input *input, options_t *options)
|
||||
@@ -36,6 +37,9 @@ Screen::Screen(SDL_Window *window, SDL_Renderer *renderer, Asset *asset, Input *
|
||||
shakeEffect.remaining = 0;
|
||||
shakeEffect.origin = 0;
|
||||
attenuateEffect = false;
|
||||
fpsTicks = 0;
|
||||
fpsCounter = 0;
|
||||
fps = 0;
|
||||
|
||||
// Crea los objetos
|
||||
notify = new Notify(renderer, asset->get("notify.png"), asset->get("8bithud.png"), asset->get("8bithud.txt"), asset->get("notify.wav"), options);
|
||||
@@ -85,6 +89,11 @@ void Screen::blit()
|
||||
// Pinta las notificaciones
|
||||
notify->render();
|
||||
|
||||
// Pinta el contador de FPS
|
||||
fpsCounter++;
|
||||
dbg_print(0, 0, std::to_string(fps).c_str(), 255, 255, 255);
|
||||
|
||||
|
||||
#ifdef NO_SHADERS
|
||||
// Vuelve a dejar el renderizador en modo normal
|
||||
SDL_SetRenderTarget(renderer, nullptr);
|
||||
@@ -305,6 +314,7 @@ void Screen::update()
|
||||
{
|
||||
updateShake();
|
||||
notify->update();
|
||||
updateFPS();
|
||||
}
|
||||
|
||||
// Comprueba las entradas
|
||||
@@ -437,4 +447,15 @@ void Screen::showNotification(std::string text1, std::string text2, int icon)
|
||||
SDL_Renderer *Screen::getRenderer()
|
||||
{
|
||||
return renderer;
|
||||
}
|
||||
|
||||
// Calcula los frames por segundo
|
||||
void Screen::updateFPS()
|
||||
{
|
||||
if (SDL_GetTicks() - fpsTicks > 1000)
|
||||
{
|
||||
fpsTicks = SDL_GetTicks();
|
||||
fps = fpsCounter;
|
||||
fpsCounter = 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user