// shape_renderer.hpp - Renderizado de formes vectorials // © 2026 JailDesigner #pragma once #include #include #include "core/graphics/shape.hpp" #include "core/rendering/render_context.hpp" #include "core/types.hpp" namespace Rendering { // Renderizar shape con transformacions // - renderer: SDL renderer // - shape: shape vectorial a draw // - position: posición del centro en coordenades mundials // - angle: rotación en radians (0 = amunt, sentit horari) // - scale: factor de scale (1.0 = mida original) // - progress: progrés de l'animación (0.0-1.0, default 1.0 = tot visible) // - brightness: factor de brightness (0.0-1.0, default 1.0 = màxima brightness) // - color: si alpha==0, usa oscil·lador global // - thickness: gruix de línia. <=0 → usa global (g_current_line_thickness) // - alpha: alpha que arriba al GPU (default 1.0 = opac). <1.0 = halo real // - glow: si true, redibuixa la shape amb halos translúcids proporcionals // al bounding_radius*scale (efecte neon). Si false, single-pass. void renderShape(Rendering::Renderer* renderer, const std::shared_ptr& shape, const Vec2& position, float angle, float scale = 1.0F, float progress = 1.0F, float brightness = 1.0F, SDL_Color color = {0, 0, 0, 0}, float thickness = 0.0F, float alpha = 1.0F, bool glow = true); } // namespace Rendering