$input v_view, v_bc

/*
 * Copyright 2016 Dario Manesku. All rights reserved.
 * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
 */

#include "../common/common.sh"
#include "uniforms.sh"

void main()
{
	vec3  color   = u_wfColor;
	float opacity = u_wfOpacity;
	float thickness = u_wfThickness;

	if (gl_FrontFacing) { opacity *= 0.5; }

	vec3 fw = abs(dFdx(v_bc)) + abs(dFdy(v_bc));
	vec3 val = smoothstep(vec3_splat(0.0), vec3_splat(fw*thickness), v_bc);
	float edge = min(min(val.x, val.y), val.z); // Gets to 0.0 around the edges.

	vec4 rgba = vec4(color, (1.0-edge)*opacity);
	gl_FragColor = rgba;
}

