Files
CodenameEngine/source/funkin/backend/utils/ShaderResizeFix.hx
T
2023-06-27 17:14:36 -07:00

38 lines
1013 B
Haxe

package funkin.backend.utils;
import openfl.display.Sprite;
class ShaderResizeFix {
public static var doResizeFix:Bool = true;
public static function init() {
FlxG.signals.gameResized.add((w:Int, h:Int) -> {fixSpritesShadersSizes();});
}
public inline static function fixSpritesShadersSizes() {
if (!doResizeFix) return;
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;
}
}
}