Skip to content

Game filters: wrong size? #2258

@filipp8

Description

@filipp8

Code snippet reproducing the issue:
PlayState.hx

package;

import flixel.text.FlxText;
import flixel.system.FlxAssets.FlxShader;
import openfl.filters.ShaderFilter;
import flixel.FlxG;
import flixel.FlxState;

class PlayState extends FlxState
{
	override public function create():Void
	{
		super.create();
		FlxG.game.setFilters([new ShaderFilter(new BorderShader())]);
		FlxG.game.filtersEnabled = true;

		var text = new FlxText();
		text.text = "Hello World!";
		text.screenCenter();
		add(text);
	}

	override public function update(elapsed:Float):Void
	{
		super.update(elapsed);
		if (FlxG.mouse.pressed) FlxG.camera.shake(0.01, 0.1);
		if (FlxG.keys.anyJustPressed([ONE])) FlxG.game.filtersEnabled = !FlxG.game.filtersEnabled;
	}
}



class BorderShader extends FlxShader 
{
	
	@:glFragmentSource("
        #pragma header
		
		void main()
		{
			vec2 uv = openfl_TextureCoordv;
			vec3 col = texture2D(bitmap, vec2(uv)).rgb;
			
			if ((uv.x > 0.0 && uv.x < 0.2) || (uv.x < 1.0 && uv.x > 0.8) || (uv.y > 0.0 && uv.y < 0.2) || (uv.y < 1.0 && uv.y > 0.8)) {
				gl_FragColor = vec4(1., 0., 0., 1.);
				return;
			}
			gl_FragColor = vec4(col, 1.);
		}
	")
	
	public function new() 
	{
        super();
	}
}

Observed behavior:
Game filters appear to detect wrong game size.
GameFilter 15_06_2020 17_48_07
This is filter applied to whole game

GameFilter 15_06_2020 17_48_26
This is filter applied to whole game after a camera shake

GameFilter 15_06_2020 17_48_49
This is filter applied to camera

Expected behavior:
Game filter to look like camera filter

In last image bottom border != top border because screenshot cut lowest part to keep window toolbar (dunno why).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions