Cleaned up some code
This commit is contained in:
@@ -6,28 +6,28 @@ import hscript.IHScriptCustomBehaviour;
|
||||
|
||||
/**
|
||||
* Class for custom shaders.
|
||||
*
|
||||
*
|
||||
* To create one, create a `shaders` folder in your assets/mod folder, then add a file named `my-shader.frag` or/and `my-shader.vert`.
|
||||
*
|
||||
*
|
||||
* Non-existent shaders will only load the default one, and throw a warning in the console.
|
||||
*
|
||||
*
|
||||
* To access the shader's uniform variables, use `shader.variable`
|
||||
*/
|
||||
class CustomShader extends FunkinShader {
|
||||
/**
|
||||
* Creates a new custom shader
|
||||
* @param name Name of the frag and vert files.
|
||||
* @param glslVersion GLSL version to use. Defaults to `120`.
|
||||
*/
|
||||
public function new(name:String, glslVersion:String = "120") {
|
||||
var fragShaderPath = Paths.fragShader(name);
|
||||
var vertShaderPath = Paths.vertShader(name);
|
||||
var fragCode = Assets.exists(fragShaderPath) ? Assets.getText(fragShaderPath) : null;
|
||||
var vertCode = Assets.exists(vertShaderPath) ? Assets.getText(vertShaderPath) : null;
|
||||
/**
|
||||
* Creates a new custom shader
|
||||
* @param name Name of the frag and vert files.
|
||||
* @param glslVersion GLSL version to use. Defaults to `120`.
|
||||
*/
|
||||
public function new(name:String, glslVersion:String = "120") {
|
||||
var fragShaderPath = Paths.fragShader(name);
|
||||
var vertShaderPath = Paths.vertShader(name);
|
||||
var fragCode = Assets.exists(fragShaderPath) ? Assets.getText(fragShaderPath) : null;
|
||||
var vertCode = Assets.exists(vertShaderPath) ? Assets.getText(vertShaderPath) : null;
|
||||
|
||||
if (fragCode == null && vertCode == null)
|
||||
Logs.trace('Shader "$name" couldn\'t be found.', ERROR);
|
||||
|
||||
super(fragCode, vertCode, glslVersion);
|
||||
}
|
||||
if (fragCode == null && vertCode == null)
|
||||
Logs.trace('Shader "$name" couldn\'t be found.', ERROR);
|
||||
|
||||
super(fragCode, vertCode, glslVersion);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,27 +5,27 @@ import flixel.system.FlxAssets.FlxShader;
|
||||
class OverlayShader extends FlxShader
|
||||
{
|
||||
@:glFragmentSource('
|
||||
#pragma header
|
||||
uniform vec4 uBlendColor;
|
||||
#pragma header
|
||||
uniform vec4 uBlendColor;
|
||||
|
||||
vec3 blendLighten(base:Vec3, blend:Vec3) : Vec3 {
|
||||
return mix(
|
||||
1.0 - 2.0 * (1.0 - base) * (1.0 - blend),
|
||||
2.0 * base * blend,
|
||||
step( base, vec3(0.5) )
|
||||
);
|
||||
}
|
||||
vec3 blendLighten(base:Vec3, blend:Vec3) : Vec3 {
|
||||
return mix(
|
||||
1.0 - 2.0 * (1.0 - base) * (1.0 - blend),
|
||||
2.0 * base * blend,
|
||||
step( base, vec3(0.5) )
|
||||
);
|
||||
}
|
||||
|
||||
vec4 blendLighten(vec4 base, vec4 blend, float opacity)
|
||||
{
|
||||
return (blendLighten(base, blend) * opacity + base * (1.0 - opacity));
|
||||
}
|
||||
vec4 blendLighten(vec4 base, vec4 blend, float opacity)
|
||||
{
|
||||
return (blendLighten(base, blend) * opacity + base * (1.0 - opacity));
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 base = texture2D(bitmap, openfl_TextureCoordv);
|
||||
gl_FragColor = blendLighten(base, uBlendColor, uBlendColor.a);
|
||||
}')
|
||||
void main()
|
||||
{
|
||||
vec4 base = texture2D(bitmap, openfl_TextureCoordv);
|
||||
gl_FragColor = blendLighten(base, uBlendColor, uBlendColor.a);
|
||||
}')
|
||||
public function new()
|
||||
{
|
||||
super();
|
||||
|
||||
@@ -62,70 +62,70 @@ class WiggleEffect
|
||||
class WiggleShader extends FlxShader
|
||||
{
|
||||
@:glFragmentSource('
|
||||
#pragma header
|
||||
//uniform float tx, ty; // x,y waves phase
|
||||
uniform float uTime;
|
||||
|
||||
const int EFFECT_TYPE_DREAMY = 0;
|
||||
const int EFFECT_TYPE_WAVY = 1;
|
||||
const int EFFECT_TYPE_HEAT_WAVE_HORIZONTAL = 2;
|
||||
const int EFFECT_TYPE_HEAT_WAVE_VERTICAL = 3;
|
||||
const int EFFECT_TYPE_FLAG = 4;
|
||||
|
||||
uniform int effectType;
|
||||
|
||||
/**
|
||||
* How fast the waves move over time
|
||||
*/
|
||||
uniform float uSpeed;
|
||||
|
||||
/**
|
||||
* Number of waves over time
|
||||
*/
|
||||
uniform float uFrequency;
|
||||
|
||||
/**
|
||||
* How much the pixels are going to stretch over the waves
|
||||
*/
|
||||
uniform float uWaveAmplitude;
|
||||
#pragma header
|
||||
//uniform float tx, ty; // x,y waves phase
|
||||
uniform float uTime;
|
||||
|
||||
vec2 sineWave(vec2 pt)
|
||||
{
|
||||
float x = 0.0;
|
||||
float y = 0.0;
|
||||
|
||||
if (effectType == EFFECT_TYPE_DREAMY)
|
||||
{
|
||||
float offsetX = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
pt.x += offsetX; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_WAVY)
|
||||
{
|
||||
float offsetY = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
pt.y += offsetY; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_HEAT_WAVE_HORIZONTAL)
|
||||
{
|
||||
x = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_HEAT_WAVE_VERTICAL)
|
||||
{
|
||||
y = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_FLAG)
|
||||
{
|
||||
y = sin(pt.y * uFrequency + 10.0 * pt.x + uTime * uSpeed) * uWaveAmplitude;
|
||||
x = sin(pt.x * uFrequency + 5.0 * pt.y + uTime * uSpeed) * uWaveAmplitude;
|
||||
}
|
||||
|
||||
return vec2(pt.x + x, pt.y + y);
|
||||
}
|
||||
const int EFFECT_TYPE_DREAMY = 0;
|
||||
const int EFFECT_TYPE_WAVY = 1;
|
||||
const int EFFECT_TYPE_HEAT_WAVE_HORIZONTAL = 2;
|
||||
const int EFFECT_TYPE_HEAT_WAVE_VERTICAL = 3;
|
||||
const int EFFECT_TYPE_FLAG = 4;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = sineWave(openfl_TextureCoordv);
|
||||
gl_FragColor = texture2D(bitmap, uv);
|
||||
}')
|
||||
uniform int effectType;
|
||||
|
||||
/**
|
||||
* How fast the waves move over time
|
||||
*/
|
||||
uniform float uSpeed;
|
||||
|
||||
/**
|
||||
* Number of waves over time
|
||||
*/
|
||||
uniform float uFrequency;
|
||||
|
||||
/**
|
||||
* How much the pixels are going to stretch over the waves
|
||||
*/
|
||||
uniform float uWaveAmplitude;
|
||||
|
||||
vec2 sineWave(vec2 pt)
|
||||
{
|
||||
float x = 0.0;
|
||||
float y = 0.0;
|
||||
|
||||
if (effectType == EFFECT_TYPE_DREAMY)
|
||||
{
|
||||
float offsetX = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
pt.x += offsetX; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_WAVY)
|
||||
{
|
||||
float offsetY = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
pt.y += offsetY; // * (pt.y - 1.0); // <- Uncomment to stop bottom part of the screen from moving
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_HEAT_WAVE_HORIZONTAL)
|
||||
{
|
||||
x = sin(pt.x * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_HEAT_WAVE_VERTICAL)
|
||||
{
|
||||
y = sin(pt.y * uFrequency + uTime * uSpeed) * uWaveAmplitude;
|
||||
}
|
||||
else if (effectType == EFFECT_TYPE_FLAG)
|
||||
{
|
||||
y = sin(pt.y * uFrequency + 10.0 * pt.x + uTime * uSpeed) * uWaveAmplitude;
|
||||
x = sin(pt.x * uFrequency + 5.0 * pt.y + uTime * uSpeed) * uWaveAmplitude;
|
||||
}
|
||||
|
||||
return vec2(pt.x + x, pt.y + y);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 uv = sineWave(openfl_TextureCoordv);
|
||||
gl_FragColor = texture2D(bitmap, uv);
|
||||
}')
|
||||
public function new()
|
||||
{
|
||||
super();
|
||||
|
||||
Reference in New Issue
Block a user