Browse Source

Fix LoadingScene render target

TothBenoit 1 year ago
parent
commit
4c5d21dada
1 changed files with 17 additions and 1 deletions
  1. 17 1
      h2d/LoadingScene.hx

+ 17 - 1
h2d/LoadingScene.hx

@@ -1,11 +1,12 @@
 package h2d;
 package h2d;
 
 
 class LoadingScene extends h2d.Scene {
 class LoadingScene extends h2d.Scene {
-
+	var renderTarget : h3d.mat.Texture;
 	var presentCooldown : Float;
 	var presentCooldown : Float;
 	public function new(presentCooldown : Float) {
 	public function new(presentCooldown : Float) {
 		super();
 		super();
 		this.presentCooldown = presentCooldown;
 		this.presentCooldown = presentCooldown;
+		renderTarget = new h3d.mat.Texture(width, height, [Target]);
 	}
 	}
 
 
 	var lastPresentTime : Float = 0.0;
 	var lastPresentTime : Float = 0.0;
@@ -22,7 +23,22 @@ class LoadingScene extends h2d.Scene {
 	#elseif hlsdl
 	#elseif hlsdl
 		sdl.Sdl.processEvents(@:privateAccess hxd.Window.inst.onEvent);
 		sdl.Sdl.processEvents(@:privateAccess hxd.Window.inst.onEvent);
 	#end
 	#end
+
+		if ( renderTarget.width != engine.width || renderTarget.height != engine.height) {
+			renderTarget.dispose();
+			renderTarget = new h3d.mat.Texture(engine.width, engine.height, [Target]);
+		}
+
+		engine.pushTarget(renderTarget);
 		super.render(engine);
 		super.render(engine);
+		engine.popTarget();
+		h3d.pass.Copy.run(renderTarget, null);
 		engine.driver.present();
 		engine.driver.present();
 	}
 	}
+
+	override function onRemove() {
+		super.onRemove();
+		if ( renderTarget != null )
+			renderTarget.dispose();
+	} 
 }
 }