1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2024-09-20 17:18:55 +00:00
Funkin/source/funkin/graphics/shaders/RuntimePostEffectShader.hx

52 lines
1.3 KiB
Haxe
Raw Normal View History

2023-09-11 15:10:08 +00:00
package funkin.shaderslmfao;
import flixel.FlxG;
import flixel.addons.display.FlxRuntimeShader;
import flixel.system.FlxAssets.FlxShader;
import haxe.CallStack;
import lime.graphics.opengl.GLProgram;
import lime.utils.Log;
class RuntimePostEffectShader extends FlxRuntimeShader
{
@:glVertexHeader("
varying vec2 fragCoord; // normalized texture coord
varying vec2 screenPos; // y: always between 0 and 1, x: between 0 and (width/height)
uniform vec2 screenResolution;
", true)
@:glVertexBody("
fragCoord = vec2(
openfl_TextureCoord.x > 0.0 ? 1.0 : 0.0,
openfl_TextureCoord.y > 0.0 ? 1.0 : 0.0
);
screenPos = fragCoord * vec2(screenResolution.x / screenResolution.y, 1.0);
")
@:glFragmentHeader("
varying vec2 fragCoord;
varying vec2 screenPos;
vec2 texCoordSize() { // hack
return openfl_TextureCoordv / fragCoord;
}
", true)
public function new(fragmentSource:String = null, glVersion:String = null)
{
super(fragmentSource, null, glVersion);
screenResolution.value = [FlxG.width, FlxG.height];
}
override function __createGLProgram(vertexSource:String, fragmentSource:String):GLProgram
{
try
{
final res = super.__createGLProgram(vertexSource, fragmentSource);
return res;
}
catch (error)
{
Log.warn(error);
return null;
}
}
}