shader resize fix
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user