diff --git a/shader-test/haxe_libraries/kiss.hxml b/shader-test/haxe_libraries/kiss.hxml index d62b7a7..9090b41 100644 --- a/shader-test/haxe_libraries/kiss.hxml +++ b/shader-test/haxe_libraries/kiss.hxml @@ -1,12 +1,12 @@ -# @install: lix --silent download "gh://github.com/kiss-lang/kiss#d72e4ee20ae96eb727cd7d7517a3a458bb7cdc82" into kiss/0.0.1/github/d72e4ee20ae96eb727cd7d7517a3a458bb7cdc82 -# @run: haxelib run-dir kiss "${HAXE_LIBCACHE}/kiss/0.0.1/github/d72e4ee20ae96eb727cd7d7517a3a458bb7cdc82" +# @install: lix --silent download "gh://github.com/kiss-lang/kiss#e3f1997409ed0e9f6109f3075eaa50e36ab9e5b1" into kiss/0.0.1/github/e3f1997409ed0e9f6109f3075eaa50e36ab9e5b1 +# @run: haxelib run-dir kiss "${HAXE_LIBCACHE}/kiss/0.0.1/github/e3f1997409ed0e9f6109f3075eaa50e36ab9e5b1" -lib haxe-strings -lib hscript -lib tink_json -lib tink_macro -lib tink_syntaxhub -lib uuid --cp ${HAXE_LIBCACHE}/kiss/0.0.1/github/d72e4ee20ae96eb727cd7d7517a3a458bb7cdc82/src +-cp ${HAXE_LIBCACHE}/kiss/0.0.1/github/e3f1997409ed0e9f6109f3075eaa50e36ab9e5b1/src -D kiss=0.0.1 -w -WUnusedPattern --macro kiss.KissFrontend.use() \ No newline at end of file diff --git a/shader-test/source/CheckerBoardState.kiss b/shader-test/source/CheckerBoardState.kiss new file mode 100644 index 0000000..d1d9e14 --- /dev/null +++ b/shader-test/source/CheckerBoardState.kiss @@ -0,0 +1,25 @@ +(import flixel.FlxState) +(import flixel.FlxG) +(import flixel.FlxSprite) +(import flixel.util.FlxColor) +(import openfl.filters.BitmapFilter) +(import openfl.filters.ShaderFilter) +(import flixel.system.FlxAssets.FlxShader) + +(extends FlxState) + +(prop &mut shader null) + +(method &override :Void create [] + (super.create) + (set shader (new kiss_flixel.shaders.CheckerBoard)) + (set shader.data.color1FlxColor FlxColor.WHITE) + (set shader.data.color2FlxColor FlxColor.BLACK) + (set shader.checkSizeFloat 64.0) + (set FlxG.camera.bgColor FlxColor.TRANSPARENT) + (kiss_flixel.CameraTools.addShaderFilter FlxG.camera (array FlxShader shader))) + +(method &override :Void update [:Float elapsed] + (super.update elapsed) + (+= FlxG.camera.scroll.x 0.05) + (+= FlxG.camera.scroll.y 0.05)) \ No newline at end of file diff --git a/shader-test/source/InvertState.kiss b/shader-test/source/InvertState.kiss new file mode 100644 index 0000000..9a099cb --- /dev/null +++ b/shader-test/source/InvertState.kiss @@ -0,0 +1,27 @@ +(import flixel.FlxState) +(import flixel.FlxG) +(import flixel.FlxSprite) +(import flixel.util.FlxColor) +(import openfl.filters.BitmapFilter) +(import openfl.filters.ShaderFilter) +(import flixel.system.FlxAssets.FlxShader) + +(extends FlxState) + +(prop &mut shader null) + +(method &override :Void create [] + (super.create) + (let [bg (new FlxSprite 0 0 "assets/images/apTestRoomEdited.jpg")] + (bg.setGraphicSize (iHalf FlxG.width) (iHalf FlxG.height)) + (bg.screenCenter) + (set bg.alpha 0.5) + (add bg)) + (set shader (new kiss_flixel.shaders.Invert)) + (kiss_flixel.CameraTools.addShaderFilter FlxG.camera (array FlxShader shader))) + +(method &override :Void update [:Float elapsed] + (super.update elapsed) + + (when FlxG.keys.justPressed.SPACE + (set shader.invertBool !shader.invertBool))) \ No newline at end of file diff --git a/shader-test/source/Main.hx b/shader-test/source/Main.hx index efa0e2d..254859b 100644 --- a/shader-test/source/Main.hx +++ b/shader-test/source/Main.hx @@ -8,6 +8,6 @@ class Main extends Sprite public function new() { super(); - addChild(new FlxGame(0, 0, PlayState)); + addChild(new FlxGame(0, 0, MenuState)); } } diff --git a/shader-test/source/MenuState.kiss b/shader-test/source/MenuState.kiss new file mode 100644 index 0000000..d57fdc4 --- /dev/null +++ b/shader-test/source/MenuState.kiss @@ -0,0 +1,23 @@ +(import flixel.FlxState) +(import flixel.FlxG) +(import flixel.FlxSprite) +(import flixel.util.FlxColor) +(import openfl.filters.BitmapFilter) +(import openfl.filters.ShaderFilter) +(import flixel.system.FlxAssets.FlxShader) + +(extends FlxState) + +(method &override :Void create [] + (super.create)) + +(method &override :Void update [:Float elapsed] + (super.update elapsed) + (oncePerInstance + (kiss_flixel.SimpleWindow.promptForChoice "Test which shader?" + (array Class + CheckerBoardState + InvertState + MirroredOrnamentState) + + ->choice (FlxG.switchState (Type.createInstance choice []))))) \ No newline at end of file diff --git a/shader-test/source/PlayState.kiss b/shader-test/source/MirroredOrnamentState.kiss similarity index 56% rename from shader-test/source/PlayState.kiss rename to shader-test/source/MirroredOrnamentState.kiss index fc46dab..4f1c88b 100644 --- a/shader-test/source/PlayState.kiss +++ b/shader-test/source/MirroredOrnamentState.kiss @@ -18,18 +18,8 @@ (bg.screenCenter) (set bg.alpha 0.5) (add bg)) - (kiss_flixel.CameraTools.addBackgroundShaders (array FlxShader (new kiss_flixel.shaders.MirroredOrnament))) - // (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.checkSizeFloat 64.0) - **(let [:BitmapFilter filter (new ShaderFilter shader) - :Array filters [filter]] - (FlxG.camera.setFilters filters))) + (kiss_flixel.CameraTools.addBackgroundShaders (array FlxShader (new kiss_flixel.shaders.MirroredOrnament)))) (method &override :Void update [:Float elapsed] (super.update elapsed) - (+= FlxG.camera.zoom 0.01) - - **(when FlxG.keys.justPressed.SPACE - (set shader.data.invert.value [!(first shader.data.invert.value)]))) \ No newline at end of file + (+= FlxG.camera.zoom 0.01)) \ No newline at end of file diff --git a/shader-test/source/CShader.f.glsl b/src/kiss_flixel/shaders/Invert.frag similarity index 100% rename from shader-test/source/CShader.f.glsl rename to src/kiss_flixel/shaders/Invert.frag