瀏覽代碼

Adding PassBegin in ScreenShaderGraph.hx

clementlandrin 8 月之前
父節點
當前提交
982390502f
共有 1 個文件被更改,包括 14 次插入1 次删除
  1. 14 1
      hrt/prefab/rfx/ScreenShaderGraph.hx

+ 14 - 1
hrt/prefab/rfx/ScreenShaderGraph.hx

@@ -34,13 +34,14 @@ class ScreenShaderGraph extends RendererFX {
 	@:s public var renderMode : ScreenShaderGraphMode;
 	@:s public var renderMode : ScreenShaderGraphMode;
 	@:s public var blend : h3d.mat.PbrMaterial.PbrBlend = None;
 	@:s public var blend : h3d.mat.PbrMaterial.PbrBlend = None;
 	@:s public var usePrevTarget : Bool = false;
 	@:s public var usePrevTarget : Bool = false;
+	@:s public var passBegin : Bool = false;
 
 
 	function new(parent, shared: ContextShared) {
 	function new(parent, shared: ContextShared) {
 		super(parent, shared);
 		super(parent, shared);
 		renderMode = AfterTonemapping;
 		renderMode = AfterTonemapping;
 	}
 	}
 
 
-	override function end(r:h3d.scene.Renderer, step:h3d.impl.RendererFX.Step) {
+	function execute(r : h3d.scene.Renderer, step : h3d.impl.RendererFX.Step) {
 		if( !checkEnabled() ) return;
 		if( !checkEnabled() ) return;
 		syncShaderVars();
 		syncShaderVars();
 
 
@@ -97,6 +98,17 @@ class ScreenShaderGraph extends RendererFX {
 		}
 		}
 	}
 	}
 
 
+	override function begin(r:h3d.scene.Renderer, step:h3d.impl.RendererFX.Step) {
+		if ( passBegin )
+			execute(r, step);
+	}
+
+
+	override function end(r:h3d.scene.Renderer, step:h3d.impl.RendererFX.Step) {
+		if ( !passBegin )
+			execute(r, step);
+	}
+
 	public function loadShaderDef() {
 	public function loadShaderDef() {
 		if (shaderGraph == null)
 		if (shaderGraph == null)
 			resolveRef();
 			resolveRef();
@@ -257,6 +269,7 @@ class ScreenShaderGraph extends RendererFX {
 				</dd>
 				</dd>
 				<dt>Reference</dt><dd><input type="fileselect" extensions="shgraph" field="source"/></dd>
 				<dt>Reference</dt><dd><input type="fileselect" extensions="shgraph" field="source"/></dd>
 				<dt>Prev target as input</dt><dd><input type="checkbox" field="usePrevTarget"/></dd>
 				<dt>Prev target as input</dt><dd><input type="checkbox" field="usePrevTarget"/></dd>
+				<dt>Pass begin</dt><dd><input type="checkbox" field="passBegin"/></dd>
 			</dl>
 			</dl>
 			</div>');
 			</div>');