// line_frag.msl.h - Metal Shading Language del fragment shader de línies
// © 2026 JailDesigner
//
// IMPORTANT: mantenir sincronitzat a mà amb shaders/line.frag.glsl. SDL3 GPU
// compila aquest string MSL en runtime; no hi ha generador automàtic.
//
// Aplica antialias geomètric via smoothstep sobre edge_dist (±1 als laterals,
// 0 al centre del quad). Sense uniforms ni samplers.

#pragma once
#ifdef __APPLE__

namespace Rendering::GPU::Msl {

inline constexpr const char* LINE_FRAG_MSL = R"(
#include <metal_stdlib>
using namespace metal;

struct VOut {
    float4 pos       [[position]];
    float4 color;
    float  edge_dist;
};

fragment float4 line_fs(VOut in [[stage_in]]) {
    float d = abs(in.edge_dist);
    float alpha = 1.0 - smoothstep(0.7, 1.0, d);
    return float4(in.color.rgb, in.color.a * alpha);
}
)";

}  // namespace Rendering::GPU::Msl

#endif  // __APPLE__
