// line_renderer.cpp - Implementació de renderitzat de línies // © 1999 Visente i Sergi (versió Pascal) // © 2025 Port a C++20 amb SDL3 #include "core/rendering/line_renderer.hpp" #include "core/rendering/coordinate_transform.hpp" namespace Rendering { // Color global compartit (actualitzat per ColorOscillator via SDLManager) SDL_Color g_current_line_color = {255, 255, 255, 255}; void linea(SDL_Renderer* renderer, int x1, int y1, int x2, int y2, float brightness) { if (renderer == nullptr) { return; } // Transformar coordenades lògiques (640x480) a físiques (resolució real) const float SCALE = g_current_scale_factor; const int PX1 = transform_x(x1, SCALE); const int PY1 = transform_y(y1, SCALE); const int PX2 = transform_x(x2, SCALE); const int PY2 = transform_y(y2, SCALE); // Aplicar brightness al color oscil·lat global const auto R = static_cast(g_current_line_color.r * brightness); const auto G = static_cast(g_current_line_color.g * brightness); const auto B = static_cast(g_current_line_color.b * brightness); SDL_SetRenderDrawColor(renderer, R, G, B, 255); SDL_RenderLine(renderer, static_cast(PX1), static_cast(PY1), static_cast(PX2), static_cast(PY2)); } void setLineColor(SDL_Color color) { g_current_line_color = color; } } // namespace Rendering