shader test provide options menu
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
#pragma header
|
||||
|
||||
uniform bool invert = true;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);
|
||||
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;
|
||||
}
|
25
shader-test/source/CheckerBoardState.kiss
Normal file
25
shader-test/source/CheckerBoardState.kiss
Normal file
@@ -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))
|
27
shader-test/source/InvertState.kiss
Normal file
27
shader-test/source/InvertState.kiss
Normal file
@@ -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)))
|
@@ -8,6 +8,6 @@ class Main extends Sprite
|
||||
public function new()
|
||||
{
|
||||
super();
|
||||
addChild(new FlxGame(0, 0, PlayState));
|
||||
addChild(new FlxGame(0, 0, MenuState));
|
||||
}
|
||||
}
|
||||
|
23
shader-test/source/MenuState.kiss
Normal file
23
shader-test/source/MenuState.kiss
Normal file
@@ -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<FlxState>
|
||||
CheckerBoardState
|
||||
InvertState
|
||||
MirroredOrnamentState)
|
||||
|
||||
->choice (FlxG.switchState (Type.createInstance choice [])))))
|
@@ -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<BitmapFilter> 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)])))
|
||||
(+= FlxG.camera.zoom 0.01))
|
Reference in New Issue
Block a user