Browse Source

added Renderer.debugging

Nicolas Cannasse 4 years ago
parent
commit
43a62528e2
3 changed files with 9 additions and 5 deletions
  1. 4 0
      h2d/domkit/Style.hx
  2. 1 0
      h3d/scene/Renderer.hx
  3. 4 5
      h3d/scene/pbr/Renderer.hx

+ 4 - 0
h2d/domkit/Style.hx

@@ -10,6 +10,7 @@ class Style extends domkit.CssStyle {
 	public var allowInspect(default, set) = false;
 	public var inspectKeyCode : Int = 0;
 	public var inspectDetailsKeyCode : Int = hxd.Key.CTRL;
+	public var s3d : h3d.scene.Scene;
 
 	public function new() {
 		super();
@@ -158,6 +159,9 @@ class Style extends domkit.CssStyle {
 					inspectModeDetailsRight = -1;
 				}
 
+				if( inspectModeActive && s3d != null && @:privateAccess s3d.renderer.debugging )
+					inspectModeActive = false;
+
 				if( inspectModeActive )
 					updatePreview(e);
 				else {

+ 1 - 0
h3d/scene/Renderer.hx

@@ -28,6 +28,7 @@ class Renderer extends hxd.impl.AnyProps {
 	var hasSetTarget = false;
 	var frontToBack : h3d.pass.PassList -> Void;
 	var backToFront : h3d.pass.PassList -> Void;
+	var debugging = false;
 
 	public var effects : Array<h3d.impl.RendererFX> = [];
 

+ 4 - 5
h3d/scene/pbr/Renderer.hx

@@ -63,7 +63,6 @@ class Renderer extends h3d.scene.Renderer {
 	var pbrIndirect = new h3d.shader.pbr.Lighting.Indirect();
 	var pbrDirect = new h3d.shader.pbr.Lighting.Direct();
 	var pbrProps = new h3d.shader.pbr.PropsImport();
-	var hasDebugEvent = false;
 	var enableFXAA = true;
 	var currentStep : h3d.impl.RendererFX.Step;
 
@@ -540,13 +539,13 @@ class Renderer extends h3d.scene.Renderer {
 			slides.shader.shadowMapChannel = R;
 			pbrProps.isScreen = true;
 			slides.render();
-			if( !hasDebugEvent ) {
-				hasDebugEvent = true;
+			if( !debugging ) {
+				debugging = true;
 				hxd.Window.getInstance().addEventTarget(onEvent);
 			}
 		}
-		if( hasDebugEvent && displayMode != Debug ) {
-			hasDebugEvent = false;
+		if( debugging && displayMode != Debug ) {
+			debugging = false;
 			hxd.Window.getInstance().removeEventTarget(onEvent);
 		}
 		mark("vsync");