//
//  UVTexturePass.swift
//  Adamantium
//
//  Created by Sunny Uppal on 11/26/24.
//

#include <metal_stdlib>
using namespace metal;

struct VertexOut_UVTexturePass {
    float4 position [[ position ]];
    float2 uv;
};

struct Uniforms_UVTexturePass {
    float brightness;
};

fragment float4 uv_texture_pass_frag(
    VertexOut_UVTexturePass in [[ stage_in ]],
    constant Uniforms_UVTexturePass &u [[ buffer(0) ]],
    texture2d<float> map [[ texture(0) ]]) {
    
    constexpr sampler textureSampler (mag_filter::linear, min_filter::linear);
    float3 mapColor = map.sample(textureSampler, in.uv).rgb;
    mapColor *= u.brightness;
        
    return float4(mapColor, 1.0);
}

