This commit is contained in:
lunarcleint
2023-08-19 11:54:03 -07:00
12 changed files with 66 additions and 63 deletions
+3 -3
View File
@@ -11,10 +11,10 @@ float uBrightness = 0.6;
vec4 getColor(vec2 pos) {
vec2 ps = (pos);
if (ps.x < 0) ps.x = 0;
if (ps.x < 0.0) ps.x = 0.0;
//else if (ps.x > 1.0 - (1.0 / iResolution.x)) ps.x = 1.0 - (1.0 / iResolution.x);
else if (ps.x > 1.0) return vec4(0.0);
if (ps.y < 0) ps.y = 0;
if (ps.y < 0.0) ps.y = 0.0;
//else if (ps.y > 1.0 - (1.0 / iResolution.y)) return ps.y = 1.0 - (1.0 / iResolution.y);
else if (ps.y > 1.0) return vec4(0.0);
return flixel_texture2D(bitmap, (ps));
@@ -42,7 +42,7 @@ vec2 random(vec2 p) {
void main() {
vec2 camPos = (openfl_TextureCoordv);
//vec2 camPos = openfl_TextureCoordv;
if (camPos.x < 0 || camPos.x > 1 || camPos.y < 0 || camPos.y > 1)
if (camPos.x < 0.0 || camPos.x > 1.0 || camPos.y < 0.0 || camPos.y > 1.0)
return;
//vec4 color = getColor(camPos);
+4 -3
View File
@@ -111,8 +111,9 @@
<!-- Comment this out to disable updates !-->
<!-- <define name="UPDATE_CHECKING" unless="web || hl || neko"/> -->
<!-- Fixes thing with hl -->
<!-- Fixes thing with macros -->
<define name="HL" if="hl"/>
<define name="SYS" if="desktop"/>
<!-- Comment this out to disable Discord RPC !-->
<define name="DISCORD_RPC" unless="web || hl || neko"/>
@@ -144,10 +145,10 @@
<haxedef name="SOFTCODED_STATES" />
<!-- Comment this out to use the default OpenFL assets system for the assets/ folder. !-->
<haxedef name="USE_ADAPTED_ASSETS" />
<haxedef name="USE_ADAPTED_ASSETS" unless="web" />
<!-- Comment this out to disable support for custom ndlls. !-->
<haxedef name="NDLLS_SUPPORTED" />
<haxedef name="NDLLS_SUPPORTED" unless="web" />
<!-- Comment this out to disable support for custom extended classes (data/classes). !-->
<define name="SOFTCODED_CLASSES" />
@@ -2,6 +2,7 @@ package funkin.backend.assets;
import lime.utils.AssetLibrary;
#if sys
/**
* Used to prevent crashes
*/
@@ -36,4 +37,5 @@ class ModdableAssetsFolder extends ModsFolderLibrary {
_parsedAsset = asset.substr(prefix.length);
return true;
}
}
}
#end
@@ -1,7 +1,7 @@
package funkin.backend.system;
import sys.FileSystem;
#if sys
import sys.FileSystem;
class CommandLineHandler {
public static function parseCommandLine(cmd:Array<String>) {
var i:Int = 0;
+1 -1
View File
@@ -67,7 +67,7 @@ class Conductor
/**
* Offset of the song
*/
public static var songOffset:Float = 0;
public static var songOffset:Float = 0;
/**
* Current step
+1 -1
View File
@@ -71,7 +71,7 @@ class Main extends Sprite
addChild(game = new FunkinGame(gameWidth, gameHeight, MainState, Options.framerate, Options.framerate, skipSplash, startFullscreen));
#if !mobile
#if (!mobile && !web)
addChild(framerateSprite = new funkin.backend.system.framerate.Framerate());
framerateSprite.scaleX = framerateSprite.scaleY = stage.window.scale;
SystemInfo.init();
@@ -20,7 +20,6 @@ class ScriptsMacro {
"flixel.addons.plugin", "flixel.addons.text", "flixel.addons.tile", "flixel.addons.transition",
"flixel.addons.util",
// OTHER LIBRARIES & STUFF
"funkin",
"away3d", "flx3d",
#if VIDEO_CUTSCENES "hxcodec.flixel", "hxcodec.openfl", "hxcodec.lime", #end
// BASE HAXE
@@ -28,7 +27,7 @@ class ScriptsMacro {
])
Compiler.include(inc);
for(inc in [#if sys "sys", #end "openfl.net", "funkin.backend.system.net"]) {
for(inc in [#if SYS "sys", "openfl.net", "funkin.backend.system.net" #end]) {
#if !HL
Compiler.include(inc);
#else
@@ -37,6 +36,8 @@ class ScriptsMacro {
#end
}
Compiler.include("funkin", #if !UPDATE_CHECKING ['funkin.backend.system.updating'] #end);
// FOR ABSTRACTS
Compiler.addGlobalMetadata('haxe.xml', '@:build(hscript.UsingHandler.build())');
Compiler.addGlobalMetadata('haxe.CallStack', '@:build(hscript.UsingHandler.build())');
@@ -0,0 +1,39 @@
package funkin.backend.system.macros;
#if macro
import haxe.macro.Expr.ExprDef;
#end
class Utils {
macro public static function generateReflectionLike(totalArguments:Int, funcName:String, argsName:String) {
#if macro
totalArguments++;
var funcCalls = [];
for(i in 0...totalArguments) {
var args = [
for(d in 0...i) macro $i{argsName}[$v{d}]
];
funcCalls.push(macro $i{funcName}($a{args}));
}
var expr = {
pos: Context.currentPos(),
expr: ESwitch(
macro ($i{argsName}.length),
[
for(i in 0...totalArguments) {
values: [macro $v{i}],
expr: funcCalls[i],
guard: null,
}
],
macro throw "Too many arguments"
)
}
return expr;
#end
}
}
+2
View File
@@ -62,12 +62,14 @@ class NativeAPI {
var bg = cast(backgroundColor, Int);
Windows.setConsoleColors((bg * 16) + fg);
#else
#if sys
Sys.print("\x1b[0m");
if(foregroundColor != NONE)
Sys.print("\x1b[" + Std.int(consoleColorToANSI(foregroundColor)) + "m");
if(backgroundColor != NONE)
Sys.print("\x1b[" + Std.int(consoleColorToANSI(backgroundColor) + 10) + "m");
#end
#end
}
public static function consoleColorToANSI(color:ConsoleColor) {
+5 -49
View File
@@ -26,7 +26,7 @@ class NdllUtil {
/**
* Returns an function from a Haxe NDLL.
* Limited to 20 argument due to a limitation
* Limited to 25 argument due to a limitation
*
* @param ndll Name of the NDLL.
* @param name Name of the function.
@@ -36,54 +36,10 @@ class NdllUtil {
#if NDLLS_SUPPORTED
var func:Dynamic = getFunctionFromPath(Paths.ndll('$ndll-$os'), name, args);
// I hate this code below, at least it wasnt 390625 switch cases, but like reflect.callmethod doesnt work with c++ functions
return Reflect.makeVarArgs(function(_args:Array<Dynamic>) {
var arg0:Dynamic = _args.length > 0 ? _args[0] : null;
var arg1:Dynamic = _args.length > 1 ? _args[1] : null;
var arg2:Dynamic = _args.length > 2 ? _args[2] : null;
var arg3:Dynamic = _args.length > 3 ? _args[3] : null;
var arg4:Dynamic = _args.length > 4 ? _args[4] : null;
var arg5:Dynamic = _args.length > 5 ? _args[5] : null;
var arg6:Dynamic = _args.length > 6 ? _args[6] : null;
var arg7:Dynamic = _args.length > 7 ? _args[7] : null;
var arg8:Dynamic = _args.length > 8 ? _args[8] : null;
var arg9:Dynamic = _args.length > 9 ? _args[9] : null;
var arg10:Dynamic = _args.length > 10 ? _args[10] : null;
var arg11:Dynamic = _args.length > 11 ? _args[11] : null;
var arg12:Dynamic = _args.length > 12 ? _args[12] : null;
var arg13:Dynamic = _args.length > 13 ? _args[13] : null;
var arg14:Dynamic = _args.length > 14 ? _args[14] : null;
var arg15:Dynamic = _args.length > 15 ? _args[15] : null;
var arg16:Dynamic = _args.length > 16 ? _args[16] : null;
var arg17:Dynamic = _args.length > 17 ? _args[17] : null;
var arg18:Dynamic = _args.length > 18 ? _args[18] : null;
var arg19:Dynamic = _args.length > 19 ? _args[19] : null;
return switch(_args.length) {
case 0: func();
case 1: func(arg0);
case 2: func(arg0, arg1);
case 3: func(arg0, arg1, arg2);
case 4: func(arg0, arg1, arg2, arg3);
case 5: func(arg0, arg1, arg2, arg3, arg4);
case 6: func(arg0, arg1, arg2, arg3, arg4, arg5);
case 7: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
case 8: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
case 9: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
case 10: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
case 11: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
case 12: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
case 13: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
case 14: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
case 15: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
case 16: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
case 17: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
case 18: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17);
case 19: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18);
case 20: func(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19);
default: throw "Too many arguments";
};
//return Reflect.callMethod(null, func, _args);
return Reflect.makeVarArgs(function(a:Array<Dynamic>) {
// This generates horrific code
return funkin.backend.system.macros.Utils.generateReflectionLike(25, "func", "a");
//return Reflect.callMethod(null, func, a); // wouldnt work for some reason, maybe cause like c++ functions doesnt have reflection enabled
});
#else
Logs.trace('NDLLs are not supported on this platform.', WARNING);
@@ -8,7 +8,6 @@ import funkin.backend.chart.Chart;
import funkin.options.type.TextOption;
import funkin.options.type.IconOption;
import funkin.options.OptionsScreen;
import sys.FileSystem;
class CharacterSelection extends EditorTreeMenu
{
+4 -1
View File
@@ -34,7 +34,10 @@ class Options
public static var hitWindow:Float = 250;
public static var songOffset:Float = 0;
public static var framerate:Int = 120;
public static var gpuOnlyBitmaps:Bool = #if mac false #else true #end; // causes issues on mac
public static var gpuOnlyBitmaps:Bool =
#if mac false
#elseif !web false
#else true #end; // causes issues on mac
public static var lastLoadedMod:String = null;