uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_duration; uniform float u_time; uniform float u_time_end; uniform sampler2D texture; uniform bool is_shape; void main() { if(is_shape) { float tick = (u_time_end - u_time) / u_duration; float blink = mix(0.5, 1.0, tick); vec4 color = vec4(blink, blink, blink, 1.0); gl_FragColor = gl_Color * color; } else { vec4 pixel = texture2D(texture, gl_TexCoord[0].xy); float tick = (u_time_end - u_time) / u_duration; float blink = mix(0.5, 1.0, tick); vec4 color = vec4(blink, blink, blink, 1.0); gl_FragColor = gl_Color * color * pixel; } }