Cleaned up some code

This commit is contained in:
NeeEoo
2023-03-20 20:34:50 +01:00
parent 7c091445c2
commit c95c1e2975
28 changed files with 1390 additions and 1361 deletions
+2 -1
View File
@@ -2,5 +2,6 @@ export/
dump/
latest/windows/obj/
latest/windows/haxe/
.vscode/
.vscode/*
!.vscode/settings.json
.haxelib/
+4
View File
@@ -0,0 +1,4 @@
{
"editor.detectIndentation": false,
"editor.insertSpaces": false
}
-1
View File
@@ -40,7 +40,6 @@ class Flx3DCamera extends FlxCamera {
super(X, Y, Width, Height, DefaultZoom);
__cur3DStageID = __3DIDS++;
view = new View3D();
view.width = this.width;
view.height = this.height;
-1
View File
@@ -92,7 +92,6 @@ class Highscore
}
}
typedef SongScore = {
@:optional var score:Int;
@:optional var accuracy:Float;
+96 -72
View File
@@ -18,6 +18,10 @@ import openfl.display.ShaderParameter;
import openfl.display.BitmapData;
import openfl.display.ShaderInput;
@:access(openfl.display3D.Context3D)
@:access(openfl.display3D.Program3D)
@:access(openfl.display.ShaderInput)
@:access(openfl.display.ShaderParameter)
class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
private static var __instanceFields = Type.getInstanceFields(FunkinShader);
@@ -33,13 +37,35 @@ class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
public override function new(frag:String, vert:String, glslVer:String = "120") {
if (frag == null) frag = ShaderTemplates.defaultFragmentSource;
if (vert == null) vert = ShaderTemplates.defaultVertexSource;
this.glFragmentSource = frag.replace("#pragma header", ShaderTemplates.fragHeader).replace("#pragma body", ShaderTemplates.fragBody);
this.glVertexSource = vert.replace("#pragma header", ShaderTemplates.vertHeader).replace("#pragma body", ShaderTemplates.vertBody);
this.glFragmentSource = frag;
this.glVertexSource = vert;
this.glslVer = glslVer;
super();
}
@:noCompletion override private function set_glFragmentSource(value:String):String
{
value = value.replace("#pragma header", ShaderTemplates.fragHeader).replace("#pragma body", ShaderTemplates.fragBody);
if (value != __glFragmentSource)
{
__glSourceDirty = true;
}
return __glFragmentSource = value;
}
@:noCompletion override private function set_glVertexSource(value:String):String
{
value = value.replace("#pragma header", ShaderTemplates.vertHeader).replace("#pragma body", ShaderTemplates.vertBody);
if (value != __glVertexSource)
{
__glSourceDirty = true;
}
return __glVertexSource = value;
}
@:noCompletion private override function __initGL():Void
{
if (__glSourceDirty || __paramBool == null)
@@ -61,7 +87,7 @@ class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
{
var prefix = '#version ${glslVer}\n';
@:privateAccess var gl = __context.gl;
var gl = __context.gl;
prefix += "#ifdef GL_ES
"
@@ -78,82 +104,82 @@ class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
var fragment = prefix + glFragmentSource;
var id = vertex + fragment;
@:privateAccess
if (__context.__programs.exists(id))
{
@:privateAccess program = __context.__programs.get(id);
program = __context.__programs.get(id);
}
else
{
program = __context.createProgram(GLSL);
@:privateAccess program.__glProgram = __createGLProgram(vertex, fragment);
program.__glProgram = __createGLProgram(vertex, fragment);
@:privateAccess __context.__programs.set(id, program);
__context.__programs.set(id, program);
}
if (program != null)
{
@:privateAccess glProgram = program.__glProgram;
glProgram = program.__glProgram;
for (input in __inputBitmapData)
{
@:privateAccess
if (input.__isUniform)
{
@:privateAccess input.index = gl.getUniformLocation(glProgram, input.name);
input.index = gl.getUniformLocation(glProgram, input.name);
}
else
{
@:privateAccess input.index = gl.getAttribLocation(glProgram, input.name);
input.index = gl.getAttribLocation(glProgram, input.name);
}
}
for (parameter in __paramBool)
{
@:privateAccess
if (parameter.__isUniform)
{
@:privateAccess parameter.index = gl.getUniformLocation(glProgram, parameter.name);
parameter.index = gl.getUniformLocation(glProgram, parameter.name);
}
else
{
@:privateAccess parameter.index = gl.getAttribLocation(glProgram, parameter.name);
parameter.index = gl.getAttribLocation(glProgram, parameter.name);
}
}
for (parameter in __paramFloat)
{
@:privateAccess
if (parameter.__isUniform)
{
@:privateAccess parameter.index = gl.getUniformLocation(glProgram, parameter.name);
parameter.index = gl.getUniformLocation(glProgram, parameter.name);
}
else
{
@:privateAccess parameter.index = gl.getAttribLocation(glProgram, parameter.name);
parameter.index = gl.getAttribLocation(glProgram, parameter.name);
}
}
for (parameter in __paramInt)
{
@:privateAccess
if (parameter.__isUniform)
{
@:privateAccess
parameter.index = gl.getUniformLocation(glProgram, parameter.name);
}
else
{
@:privateAccess
parameter.index = gl.getAttribLocation(glProgram, parameter.name);
}
}
}
// initInstance(vertex, fragment); // btw make sure to disable the prefixes for ._isInstance
}
}
@:noCompletion private override function __processGLData(source:String, storageType:String):Void
{
var lastMatch = 0, position, regex, name, type;
@@ -332,8 +358,6 @@ class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
}
}
public function hget(v:String):Dynamic {
if (__instanceFields.contains(v) || __instanceFields.contains('get_${v}')) {
return Reflect.getProperty(this, v);
@@ -411,19 +435,19 @@ class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
class ShaderTemplates {
public static final fragHeader:String = "varying float openfl_Alphav;
varying vec4 openfl_ColorMultiplierv;
varying vec4 openfl_ColorOffsetv;
varying vec2 openfl_TextureCoordv;
varying vec4 openfl_ColorMultiplierv;
varying vec4 openfl_ColorOffsetv;
varying vec2 openfl_TextureCoordv;
uniform bool openfl_HasColorTransform;
uniform vec2 openfl_TextureSize;
uniform sampler2D bitmap;
uniform bool openfl_HasColorTransform;
uniform vec2 openfl_TextureSize;
uniform sampler2D bitmap;
uniform bool hasTransform;
uniform bool hasColorTransform;
uniform bool hasTransform;
uniform bool hasColorTransform;
vec4 flixel_texture2D(sampler2D bitmap, vec2 coord)
{
vec4 flixel_texture2D(sampler2D bitmap, vec2 coord)
{
vec4 color = texture2D(bitmap, coord);
if (!hasTransform)
{
@@ -455,33 +479,33 @@ class ShaderTemplates {
return vec4(color.rgb * color.a * openfl_Alphav, color.a * openfl_Alphav);
}
return vec4(0.0, 0.0, 0.0, 0.0);
}
}
uniform vec4 _camSize;
uniform vec4 _camSize;
float map(float value, float min1, float max1, float min2, float max2) {
float map(float value, float min1, float max1, float min2, float max2) {
return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
}
}
vec2 getCamPos(vec2 pos) {
vec2 getCamPos(vec2 pos) {
vec4 size = _camSize / vec4(openfl_TextureSize, openfl_TextureSize);
return vec2(map(pos.x, size.x, size.x + size.z, 0.0, 1.0), map(pos.y, size.y, size.y + size.w, 0.0, 1.0));
}
vec2 camToOg(vec2 pos) {
}
vec2 camToOg(vec2 pos) {
vec4 size = _camSize / vec4(openfl_TextureSize, openfl_TextureSize);
return vec2(map(pos.x, 0.0, 1.0, size.x, size.x + size.z), map(pos.y, 0.0, 1.0, size.y, size.y + size.w));
}
vec4 textureCam(sampler2D bitmap, vec2 pos) {
}
vec4 textureCam(sampler2D bitmap, vec2 pos) {
return flixel_texture2D(bitmap, camToOg(pos));
}";
}";
public static final fragBody:String = "vec4 color = texture2D (bitmap, openfl_TextureCoordv);
if (color.a == 0.0) {
if (color.a == 0.0) {
gl_FragColor = vec4 (0.0, 0.0, 0.0, 0.0);
} else if (openfl_HasColorTransform) {
} else if (openfl_HasColorTransform) {
color = vec4 (color.rgb / color.a, color.a);
@@ -503,48 +527,48 @@ class ShaderTemplates {
}
} else {
} else {
gl_FragColor = color * openfl_Alphav;
}";
}";
public static final vertHeader:String = "attribute float openfl_Alpha;
attribute vec4 openfl_ColorMultiplier;
attribute vec4 openfl_ColorOffset;
attribute vec4 openfl_Position;
attribute vec2 openfl_TextureCoord;
attribute vec4 openfl_ColorMultiplier;
attribute vec4 openfl_ColorOffset;
attribute vec4 openfl_Position;
attribute vec2 openfl_TextureCoord;
varying float openfl_Alphav;
varying vec4 openfl_ColorMultiplierv;
varying vec4 openfl_ColorOffsetv;
varying vec2 openfl_TextureCoordv;
varying float openfl_Alphav;
varying vec4 openfl_ColorMultiplierv;
varying vec4 openfl_ColorOffsetv;
varying vec2 openfl_TextureCoordv;
uniform mat4 openfl_Matrix;
uniform bool openfl_HasColorTransform;
uniform vec2 openfl_TextureSize;";
uniform mat4 openfl_Matrix;
uniform bool openfl_HasColorTransform;
uniform vec2 openfl_TextureSize;";
public static final vertBody:String = "openfl_Alphav = openfl_Alpha;
openfl_TextureCoordv = openfl_TextureCoord;
openfl_TextureCoordv = openfl_TextureCoord;
if (openfl_HasColorTransform) {
if (openfl_HasColorTransform) {
openfl_ColorMultiplierv = openfl_ColorMultiplier;
openfl_ColorOffsetv = openfl_ColorOffset / 255.0;
}
}
gl_Position = openfl_Matrix * openfl_Position;";
gl_Position = openfl_Matrix * openfl_Position;";
public static final defaultVertexSource:String = "#pragma header
attribute float alpha;
attribute vec4 colorMultiplier;
attribute vec4 colorOffset;
uniform bool hasColorTransform;
attribute float alpha;
attribute vec4 colorMultiplier;
attribute vec4 colorOffset;
uniform bool hasColorTransform;
void main(void)
{
void main(void)
{
#pragma body
openfl_Alphav = openfl_Alpha * alpha;
@@ -554,16 +578,16 @@ class ShaderTemplates {
openfl_ColorOffsetv = colorOffset / 255.0;
openfl_ColorMultiplierv = colorMultiplier;
}
}";
}";
// TODO: camera stuff
public static final defaultFragmentSource:String = "#pragma header
void main(void)
{
void main(void)
{
gl_FragColor = flixel_texture2D(bitmap, openfl_TextureCoordv);
}";
}";
}
class ShaderTypeException extends Exception {
+10 -10
View File
@@ -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 {
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)
{
vec4 blendLighten(vec4 base, vec4 blend, float opacity)
{
return (blendLighten(base, blend) * opacity + base * (1.0 - opacity));
}
}
void main()
{
void main()
{
vec4 base = texture2D(bitmap, openfl_TextureCoordv);
gl_FragColor = blendLighten(base, uBlendColor, uBlendColor.a);
}')
}')
public function new()
{
super();
+21 -21
View File
@@ -62,35 +62,35 @@ class WiggleEffect
class WiggleShader extends FlxShader
{
@:glFragmentSource('
#pragma header
//uniform float tx, ty; // x,y waves phase
uniform float uTime;
#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;
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;
uniform int effectType;
/**
/**
* How fast the waves move over time
*/
uniform float uSpeed;
uniform float uSpeed;
/**
/**
* Number of waves over time
*/
uniform float uFrequency;
uniform float uFrequency;
/**
/**
* How much the pixels are going to stretch over the waves
*/
uniform float uWaveAmplitude;
uniform float uWaveAmplitude;
vec2 sineWave(vec2 pt)
{
vec2 sineWave(vec2 pt)
{
float x = 0.0;
float y = 0.0;
@@ -119,13 +119,13 @@ class WiggleShader extends FlxShader
}
return vec2(pt.x + x, pt.y + y);
}
}
void main()
{
void main()
{
vec2 uv = sineWave(openfl_TextureCoordv);
gl_FragColor = texture2D(bitmap, uv);
}')
}')
public function new()
{
super();
+2
View File
@@ -107,6 +107,8 @@ class Main extends Sprite
// addChild(new FramerateField(10, 3, 0xFFFFFF));
addChild(new funkin.system.framerate.Framerate());
#end
trace("Hello", "World");
}
@:dox(hide)