Files
libretro/bios/Other/eka2l1/resources/pen.frag
T

26 lines
618 B
GLSL

// Based on: https://stackoverflow.com/questions/6017176/gllinestipple-deprecated-in-opengl-3-1
// Thanks rabbid76!
#version 140
flat in vec2 out_lineStartingPoint;
in vec2 out_lineCurrentProcessingPoint;
uniform vec4 u_color;
uniform uint u_pattern;
uniform vec2 u_viewport;
out vec4 o_color;
void main() {
vec2 dirvec = (out_lineCurrentProcessingPoint - out_lineStartingPoint) * u_viewport;
float dist = length(dirvec);
uint bit_in_pattern = uint(round(dist)) & 15U;
uint bit_mask = 1U << bit_in_pattern;
if ((u_pattern & bit_mask) == 0U)
discard;
o_color = u_color / 255.0;
}