#pragma once #include #include #include class TextRenderer { public: TextRenderer(); ~TextRenderer(); // Inicializa el renderizador de texto con una fuente bool init(SDL_Renderer* renderer, const char* font_path, int font_size, bool use_antialiasing = true); // Libera recursos void cleanup(); // Renderiza texto en la posición especificada con color RGB void print(int x, int y, const char* text, uint8_t r, uint8_t g, uint8_t b); void print(int x, int y, const std::string& text, uint8_t r, uint8_t g, uint8_t b); // Obtiene el ancho de un texto renderizado int getTextWidth(const char* text); // Obtiene la altura de la fuente int getTextHeight(); // Verifica si está inicializado correctamente bool isInitialized() const { return font_ != nullptr && renderer_ != nullptr; } private: SDL_Renderer* renderer_; TTF_Font* font_; int font_size_; bool use_antialiasing_; };