basic checkerboard shader
This commit is contained in:
@@ -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)])))
|
20
src/kiss_flixel/shaders/CheckerBoard.frag
Normal file
20
src/kiss_flixel/shaders/CheckerBoard.frag
Normal 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;
|
||||||
|
}
|
Reference in New Issue
Block a user