#pragma once #include #include class Text; // Overlay de debug que mostra FPS, driver GPU i shader + preset actiu. Es // dibuixa a la part superior de la pantalla amb una animació de lliscament // (RISING / ACTIVE / VANISHING / HIDDEN). L'activa la tecla F3 a l'escena. class RenderInfo { public: static auto get() -> RenderInfo&; RenderInfo(const RenderInfo&) = delete; RenderInfo(RenderInfo&&) = delete; auto operator=(const RenderInfo&) -> RenderInfo& = delete; auto operator=(RenderInfo&&) -> RenderInfo& = delete; // Carrega la font 8bithud. S'ha de cridar després de configurar Screen. void init(); void update(int delta_ms); void render(); void toggle(); [[nodiscard]] auto isActive() const -> bool { return status_ != Status::HIDDEN; } // Alçada fixa de l'overlay: TEXT_SIZE (8) + padding vertical. static constexpr int HEIGHT = 10; static constexpr float SLIDE_SPEED = 120.0F; private: enum class Status : std::uint8_t { HIDDEN, RISING, ACTIVE, VANISHING }; RenderInfo() = default; ~RenderInfo(); std::unique_ptr text_; Status status_{Status::HIDDEN}; float y_{static_cast(-HEIGHT)}; };