#pragma once #include class Sprite; class Texture; struct Section; // Clase Logo class Logo { public: Logo(SDL_Renderer *renderer, Section *section); // Constructor ~Logo(); // Destructor Logo(const Logo &) = delete; auto operator=(const Logo &) -> Logo & = delete; void run(); // Bucle principal void iterate(); // Ejecuta un frame void handleEvent(const SDL_Event *event); // Procesa un evento private: // Objetos y punteros SDL_Renderer *renderer_; // El renderizador de la ventana Texture *texture_; // Textura con los graficos SDL_Event *event_handler_; // Manejador de eventos Sprite *sprite_; // Sprite con la textura del logo Section *section_; // Estado del bucle principal para saber si continua o se sale // Temps acumulat de l'escena (segons). Time-based: no comptem frames. float elapsed_time_s_{0.0F}; void update(float delta_time_s); // Actualiza las variables del objeto void render(); // Dibuja el objeto en pantalla void checkLogoEnd(); // Comprueba si ha terminado el logo void checkInput(); // Comprueba las entradas void renderFade(); // Dibuja el fade };