From b8874f8e0cb4b777b9cfc8e20bdf17de487833ef Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 27 Jan 2024 15:24:39 -0700 Subject: [PATCH] add an example uniform var in shader-test --- shader-test/source/CShader.f.glsl | 4 +++- shader-test/source/PlayState.kiss | 11 +++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/shader-test/source/CShader.f.glsl b/shader-test/source/CShader.f.glsl index 7ad6aad..a0cd622 100644 --- a/shader-test/source/CShader.f.glsl +++ b/shader-test/source/CShader.f.glsl @@ -1,7 +1,9 @@ #pragma header +uniform bool invert = true; + void main() { vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv); - gl_FragColor = vec4((1.0 - color.r) * color.a, (1.0 - color.g) * color.a, (1.0 - color.b) * color.a, color.a); + gl_FragColor = invert ? vec4((1.0 - color.r) * color.a, (1.0 - color.g) * color.a, (1.0 - color.b) * color.a, color.a) : color; } \ No newline at end of file diff --git a/shader-test/source/PlayState.kiss b/shader-test/source/PlayState.kiss index bbf87a7..82666d8 100644 --- a/shader-test/source/PlayState.kiss +++ b/shader-test/source/PlayState.kiss @@ -6,15 +6,22 @@ (extends FlxState) +(prop &mut shader null) + (method &override :Void create [] (super.create) (let [bg (new FlxSprite 0 0 "assets/images/apTestRoomEdited.jpg")] (bg.setGraphicSize FlxG.width FlxG.height) (bg.screenCenter) (add bg)) - (let [:BitmapFilter filter (new ShaderFilter (new CShader)) + (set shader (new CShader)) + (set shader.data.invert.value [true]) + (let [:BitmapFilter filter (new ShaderFilter shader) :Array filters [filter]] (FlxG.camera.setFilters filters))) (method &override :Void update [:Float elapsed] - (super.update elapsed)) \ No newline at end of file + (super.update elapsed) + + (when FlxG.keys.justPressed.SPACE + (set shader.data.invert.value [!(first shader.data.invert.value)]))) \ No newline at end of file