#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 // Variables Uint32 ticks_; // Contador de ticks para ajustar la velocidad del programa Uint32 ticks_speed_; // Velocidad a la que se repiten los bucles del programa int counter_; // Contador void update(); // 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 };