// line_renderer.hpp - Renderizado de líneas vectoriales (SDL3 GPU) // © 1999 Visente i Sergi (versión Pascal) // © 2025 Port a C++20 con SDL3 // // El dibujo de líneas pasa por el pipeline GPU. Las coordenadas (x1,y1,x2,y2) // son lógicas (1280×720); el shader las mapea a NDC y el viewport del SDLManager // hace el letterbox a píxeles físicos. El brillo modula el color global de // línea (lo gestiona ColorOscillator). El grosor es configurable por línea // (parámetro thickness>0) o global (g_current_line_thickness vía setLineThickness). #pragma once #include "core/rendering/render_context.hpp" #include namespace Rendering { // Dibuja una línea entre dos puntos en coordenadas lógicas (1280×720). // brightness: factor de brillo (0.0..1.0, default 1.0 = brillo máximo). // thickness: grosor en píxeles lógicos. Si <= 0 usa g_current_line_thickness. void linea(Renderer* renderer, int x1, int y1, int x2, int y2, float brightness = 1.0F, float thickness = 0.0F); // Color global de las líneas (lo actualiza ColorOscillator vía SDLManager). void setLineColor(SDL_Color color); // Grosor global por defecto (en píxeles lógicos). Default: 1.5. void setLineThickness(float thickness); [[nodiscard]] auto getLineThickness() -> float; } // namespace Rendering