basic checkerboard shader

This commit is contained in:
2024-02-04 14:47:42 -07:00
parent 45c1afc066
commit a77471ae98
2 changed files with 26 additions and 2 deletions

View File

@@ -14,14 +14,18 @@
(bg.setGraphicSize FlxG.width FlxG.height) (bg.setGraphicSize FlxG.width FlxG.height)
(bg.screenCenter) (bg.screenCenter)
(add bg)) (add bg))
(set shader (new CShader)) (set shader (new kiss_flixel.shaders.CheckerBoard))
(set shader.data.invert.value [true]) // (set shader.data.invert.value [true])
(set shader.data.color1.value [1.0 1.0 1.0 1.0])
(set shader.data.color2.value [0.0 0.0 0.0 1.0])
(set shader.data.checkSize.value [64.0])
(let [:BitmapFilter filter (new ShaderFilter shader) (let [:BitmapFilter filter (new ShaderFilter shader)
:Array<BitmapFilter> filters [filter]] :Array<BitmapFilter> filters [filter]]
(FlxG.camera.setFilters filters))) (FlxG.camera.setFilters filters)))
(method &override :Void update [:Float elapsed] (method &override :Void update [:Float elapsed]
(super.update elapsed) (super.update elapsed)
(+= FlxG.camera.scroll.x 1)
(when FlxG.keys.justPressed.SPACE (when FlxG.keys.justPressed.SPACE
(set shader.data.invert.value [!(first shader.data.invert.value)]))) (set shader.data.invert.value [!(first shader.data.invert.value)])))

View File

@@ -0,0 +1,20 @@
#pragma header
uniform vec4 color1 = vec4(1.0, 1.0, 1.0, 1.0);
uniform vec4 color2 = vec4(0.0, 0.0, 0.0, 1.0);
uniform float checkSize = 64;
void main()
{
vec2 position = openfl_TextureCoordv * iResolution;
float row = floor(position.y / checkSize);
float col = floor(position.x / checkSize);
bool oddRow = mod(row, 2) == 1;
bool oddCol = mod(col, 2) == 1;
vec4 oddColor = oddRow ? color1 : color2;
vec4 evenColor = oddRow ? color2 : color1;
gl_FragColor = oddCol ? oddColor: evenColor;
}