32 lines
601 B
GLSL
32 lines
601 B
GLSL
|
|
noperspective in vec2 stipple_coord;
|
|
flat in vec2 stipple_start;
|
|
flat in vec4 finalColor;
|
|
|
|
layout(location = 0) out vec4 fragColor;
|
|
layout(location = 1) out vec4 lineOutput;
|
|
|
|
void main()
|
|
{
|
|
fragColor = finalColor;
|
|
|
|
/* Stipple */
|
|
const float dash_width = 6.0;
|
|
const float dash_factor = 0.5;
|
|
|
|
lineOutput = pack_line_data(gl_FragCoord.xy, stipple_start, stipple_coord);
|
|
|
|
float dist = distance(stipple_start, stipple_coord);
|
|
|
|
if (fragColor.a == 0.0) {
|
|
/* Disable stippling. */
|
|
dist = 0.0;
|
|
}
|
|
|
|
fragColor.a = 1.0;
|
|
|
|
if (fract(dist / dash_width) > dash_factor) {
|
|
discard;
|
|
}
|
|
}
|