add an example uniform var in shader-test
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
#pragma header
|
#pragma header
|
||||||
|
|
||||||
|
uniform bool invert = true;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);
|
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;
|
||||||
}
|
}
|
@@ -6,15 +6,22 @@
|
|||||||
|
|
||||||
(extends FlxState)
|
(extends FlxState)
|
||||||
|
|
||||||
|
(prop &mut shader null)
|
||||||
|
|
||||||
(method &override :Void create []
|
(method &override :Void create []
|
||||||
(super.create)
|
(super.create)
|
||||||
(let [bg (new FlxSprite 0 0 "assets/images/apTestRoomEdited.jpg")]
|
(let [bg (new FlxSprite 0 0 "assets/images/apTestRoomEdited.jpg")]
|
||||||
(bg.setGraphicSize FlxG.width FlxG.height)
|
(bg.setGraphicSize FlxG.width FlxG.height)
|
||||||
(bg.screenCenter)
|
(bg.screenCenter)
|
||||||
(add bg))
|
(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<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)
|
||||||
|
|
||||||
|
(when FlxG.keys.justPressed.SPACE
|
||||||
|
(set shader.data.invert.value [!(first shader.data.invert.value)])))
|
Reference in New Issue
Block a user