35 lines
839 B
GLSL
35 lines
839 B
GLSL
#pragma header
|
|
|
|
#define GRID_SIZE 40.0
|
|
#define GRID_HEIGHT 4.0
|
|
|
|
uniform int segments;
|
|
|
|
vec4 colorA = vec4(0.329, 0.329, 0.329, 1.0);
|
|
vec4 colorB = vec4(0.153, 0.153, 0.153, 1.0);
|
|
vec4 colorOutline = vec4(0.867, 0.867, 0.867, 1.0);
|
|
|
|
void main()
|
|
{
|
|
vec2 pixelSize = (1.0 / openfl_TextureSize) / (GRID_SIZE * float(segments));
|
|
vec2 uv = openfl_TextureCoordv.xy;
|
|
vec2 pixelUV = vec2(uv.x * GRID_SIZE * float(segments), uv.y * GRID_SIZE * GRID_HEIGHT);
|
|
if (uv.x < pixelSize.x || uv.x > 1.0 - pixelSize.x) { //edges
|
|
gl_FragColor = colorOutline;
|
|
return;
|
|
}
|
|
vec4 col = colorA;
|
|
bool flip = false;
|
|
|
|
//horizontal
|
|
if (mod(pixelUV.x, GRID_SIZE * 2.0) < GRID_SIZE)
|
|
flip = !flip;
|
|
//vertical
|
|
if (mod(pixelUV.y, GRID_SIZE * 2.0) < GRID_SIZE)
|
|
flip = !flip;
|
|
|
|
if (flip)
|
|
col = colorB;
|
|
|
|
gl_FragColor = col * flixel_texture2D(bitmap, uv);
|
|
} |