// shape_renderer.hpp - Renderizado de formes vectorials
// © 2026 JailDesigner

#pragma once

#include <SDL3/SDL.h>

#include <memory>

#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)
    void renderShape(Rendering::Renderer* renderer,
        const std::shared_ptr<Graphics::Shape>& 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});  // alpha==0 → usa global oscilador

}  // namespace Rendering
