/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "renderfps.h" #include "display/render.h" #include "display/ui/rendertext.h" #include "time.h" #include "game.h" float_t RENDER_FPS_AVG = -1.0f; float_t RENDER_TPS_AVG = -1.0f; void renderFPSDraw(void) { if(TIME.delta > 0) { float_t fps = 1.0f / TIME.realDelta; if(RENDER_FPS_AVG == -1.0f) { RENDER_FPS_AVG = fps; } else { RENDER_FPS_AVG = (RENDER_FPS_AVG + fps) / 2.0f; } } if(TIME.time != TIME.lastTick) { float_t timeSinceLastTick = TIME.realTime - TIME.lastTick; float_t tps = 1.0f / timeSinceLastTick; if(RENDER_TPS_AVG == -1.0f) { RENDER_TPS_AVG = tps; } else { RENDER_TPS_AVG = (RENDER_TPS_AVG + tps) / 2.0f; } } char_t buffer[64]; snprintf(buffer, sizeof(buffer), "%.1f/%.1f", RENDER_FPS_AVG, RENDER_TPS_AVG); int32_t width, height; renderTextMeasure(buffer, &width, &height); renderTextDraw(RENDER_WIDTH - width, 0, buffer, 0x00, 0xFF, 0x00); }