// // Simple passthrough fragment shader // varying vec2 v_vTexcoord; varying vec4 v_vColour; uniform vec2 position; uniform float amount; uniform int blend; uniform vec4 col1, col2; void main() { vec2 pos = v_vTexcoord - position; float _cell = 1. / (amount * 2.); float _xind = floor(pos.x / _cell); float _yind = floor(pos.y / _cell); float _xcell = fract(pos.x * amount * 2.); float _ycell = fract(pos.y * amount * 2.); float _x = _xcell; float _y = _ycell; if(mod(_xind, 2.) == 1.) _x = 1. - _xcell; if(blend == 0) { if(mod(_yind, 2.) == 1.) { if(_x > _y) gl_FragColor = vec4(col1.rgb, 1.); else gl_FragColor = vec4(col2.rgb, 1.); } else { if(_x > _y) gl_FragColor = vec4(col2.rgb, 1.); else gl_FragColor = vec4(col1.rgb, 1.); } } else { if(_x > _y) gl_FragColor = vec4(mix(col1.rgb, col2.rgb, _y + (1. - _x)), 1.); else gl_FragColor = vec4(mix(col1.rgb, col2.rgb, _y - _x), 1.); } }