浏览代码

pass renderer instead of ctx to RendererFX

ncannasse 7 年之前
父节点
当前提交
868b07558d
共有 5 个文件被更改,包括 9 次插入6 次删除
  1. 1 0
      h3d/scene/Renderer.hx
  2. 1 1
      h3d/scene/pbr/Renderer.hx
  3. 3 2
      hxd/prefab/rfx/Bloom.hx
  4. 1 1
      hxd/prefab/rfx/RendererFX.hx
  5. 3 2
      hxd/prefab/rfx/Sao.hx

+ 1 - 0
h3d/scene/Renderer.hx

@@ -17,6 +17,7 @@ enum RenderMode{
 	LightProbe;
 }
 
+@:allow(hxd.prefab.rfx.RendererFX)
 class Renderer extends hxd.impl.AnyProps {
 
 	var defaultPass : h3d.pass.Base;

+ 1 - 1
h3d/scene/pbr/Renderer.hx

@@ -143,7 +143,7 @@ class Renderer extends h3d.scene.Renderer {
 	function apply( step : hxd.prefab.rfx.RendererFX.Step ) {
 		for( f in effects )
 			if( f.enabled )
-				f.apply(ctx, step);
+				f.apply(this, step);
 	}
 
 	override function render() {

+ 3 - 2
hxd/prefab/rfx/Bloom.hx

@@ -24,10 +24,11 @@ class Bloom extends RendererFX {
 		} : BloomProps);
 	}
 
-	override function apply(ctx:h3d.scene.RenderContext, step:hxd.prefab.rfx.RendererFX.Step) {
+	override function apply(r:h3d.scene.Renderer, step:hxd.prefab.rfx.RendererFX.Step) {
 		if( step == AfterHdr ) {
 			var pb : BloomProps = props;
-			var bloom = ctx.textures.allocTargetScale("bloom", pb.size, false, RGBA16F);
+			var bloom = r.allocTarget("bloom", false, pb.size, RGBA16F);
+			var ctx = r.ctx;
 			ctx.engine.pushTarget(bloom);
 			bloomPass.shader.hdr = ctx.getGlobal("hdr");
 			bloomPass.shader.threshold = pb.threshold;

+ 1 - 1
hxd/prefab/rfx/RendererFX.hx

@@ -7,7 +7,7 @@ enum Step {
 
 class RendererFX extends Prefab {
 
-	public function apply( ctx : h3d.scene.RenderContext, step : Step ) {
+	public function apply( r : h3d.scene.Renderer, step : Step ) {
 	}
 
 	override function save() {

+ 3 - 2
hxd/prefab/rfx/Sao.hx

@@ -27,11 +27,12 @@ class Sao extends RendererFX {
 		} : SaoProps);
 	}
 
-	override function apply( ctx : h3d.scene.RenderContext, step : RendererFX.Step ) {
+	override function apply( r : h3d.scene.Renderer, step : RendererFX.Step ) {
 		if( step == BeforeHdr ) {
 			if( sao == null ) sao = new h3d.pass.ScalableAO();
 			var props : SaoProps = props;
-			var saoTex = ctx.textures.allocTargetScale("sao",props.size,false);
+			var ctx = r.ctx;
+			var saoTex = r.allocTarget("sao",false,props.size);
 			var normal : hxsl.ChannelTexture = ctx.getGlobal("normalMap");
 			var depth : hxsl.ChannelTexture = ctx.getGlobal("depthMap");
 			var occlu : hxsl.ChannelTexture = ctx.getGlobal("occlusionMap");