From 06f4efc3ce3a8868ffa0eea0fb0e46a3170fffce Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 7 Jan 2025 21:12:20 +0100 Subject: [PATCH] Cache max texture size value --- flixel/FlxGame.hx | 6 ++++++ flixel/system/frontEnds/BitmapFrontEnd.hx | 10 ++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/flixel/FlxGame.hx b/flixel/FlxGame.hx index 3dd97089d1..e15c74fd29 100644 --- a/flixel/FlxGame.hx +++ b/flixel/FlxGame.hx @@ -334,6 +334,12 @@ class FlxGame extends Sprite addChild(postProcessLayer); #end + // We have to call this after a stage is created + // otherwise it will fail and cause a crash + #if FLX_OPENGL_AVAILABLE + FlxG.bitmap.setMaxTextureSize(); + #end + // Creating the debugger overlay #if FLX_DEBUG debugger = new FlxDebugger(FlxG.stage.stageWidth, FlxG.stage.stageHeight); diff --git a/flixel/system/frontEnds/BitmapFrontEnd.hx b/flixel/system/frontEnds/BitmapFrontEnd.hx index f81c4957f3..ff2bfccc5f 100644 --- a/flixel/system/frontEnds/BitmapFrontEnd.hx +++ b/flixel/system/frontEnds/BitmapFrontEnd.hx @@ -27,7 +27,7 @@ class BitmapFrontEnd * * @see https://opengl.gpuinfo.org/displaycapability.php?name=GL_MAX_TEXTURE_SIZE */ - public var maxTextureSize(get, never):Int; + public var maxTextureSize(default, null):Int; #end /** @@ -393,12 +393,10 @@ class BitmapFrontEnd } #if FLX_OPENGL_AVAILABLE - function get_maxTextureSize():Int + @:allow(flixel.FlxGame) + function setMaxTextureSize():Void { - if (FlxG.stage.window.context.attributes.hardware) - return cast GL.getParameter(GL.MAX_TEXTURE_SIZE); - - return -1; + maxTextureSize = FlxG.stage.window.context.attributes.hardware ? cast GL.getParameter(GL.MAX_TEXTURE_SIZE) : -1; } #end