shader resize fix

This commit is contained in:
lunarcleint
2023-06-27 17:11:19 -07:00
parent 17f94bbf62
commit 231ef1ae4e
2 changed files with 35 additions and 0 deletions
+1
View File
@@ -116,6 +116,7 @@ class Main extends Sprite
#if UPDATE_CHECKING
funkin.backend.system.updating.UpdateUtil.init();
#end
ShaderResizeFix.init();
Logs.init();
Paths.init();
ModsFolder.init();
@@ -0,0 +1,34 @@
package funkin.backend.utils;
import openfl.display.Sprite;
class ShaderResizeFix {
public static function init() {
FlxG.signals.gameResized.add((w:Int, h:Int) -> {fixSpritesShadersSizes();});
}
public inline static function fixSpritesShadersSizes() {
fixSpriteShaderSize(Main.instance);
if (FlxG.game != null) fixSpriteShaderSize(FlxG.game);
if (FlxG.cameras == null) return;
for (cam in FlxG.cameras.list) {
@:privateAccess
if (cam != null && (cam._filters != null || cam._filters != []))
fixSpriteShaderSize(cam.flashSprite);
}
}
public inline static function fixSpriteShaderSize(sprite:Sprite) // Shout out to Ne_Eo for bringing this to my attention
{
if (sprite == null) return;
@:privateAccess {
sprite.__cacheBitmap = null;
sprite.__cacheBitmapData = null;
sprite.__cacheBitmapData2 = null;
sprite.__cacheBitmapData3 = null;
sprite.__cacheBitmapColorTransform = null;
}
}
}