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