public CompositionPass(CompositionTargetPass parent) : this(OgrePINVOKE.new_CompositionPass(CompositionTargetPass.getCPtr(parent)), true) { if (OgrePINVOKE.SWIGPendingException.Pending) { throw OgrePINVOKE.SWIGPendingException.Retrieve(); } }
public CompositionTargetPass getOutputTargetPass() { global::System.IntPtr cPtr = OgrePINVOKE.CompositionTechnique_getOutputTargetPass(swigCPtr); CompositionTargetPass ret = (cPtr == global::System.IntPtr.Zero) ? null : new CompositionTargetPass(cPtr, false); if (OgrePINVOKE.SWIGPendingException.Pending) { throw OgrePINVOKE.SWIGPendingException.Retrieve(); } return(ret); }
protected void createEffectHeatVision() { /// Heat vision effect CompositorPtr comp4 = new CompositorPtr(ResourcePtr.getCPtr(CompositorManager.Instance.GetAsResourceManager().Create( "Heat Vision", ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME)).Handle, false); CompositionTechnique t = comp4.Get().createTechnique(); { CTTextureDefinition def = t.CreateTextureDefinition("scene"); def.setWidth(256); def.setHeight(256); def.setFormat(OgreDotNet.PixelFormat.PF_R8G8B8); } { CTTextureDefinition def = t.CreateTextureDefinition("temp"); def.setWidth(256); def.setHeight(256); def.setFormat(OgreDotNet.PixelFormat.PF_R8G8B8); } /// Render scene { CompositionTargetPass tp = t.createTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_PREVIOUS); tp.SetOutputName("scene"); } /// Light to heat pass { CompositionTargetPass tp = t.createTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_NONE); tp.SetOutputName("temp"); { CompositionPass pass = tp.createPass(); pass.setType(CompositionPass.PassType.PT_RENDERQUAD); pass.setIdentifier(0xDEADBABE); /// Identify pass for use in listener pass.setMaterialName("Fury/HeatVision/LightToHeat"); pass.setInput(0, "scene"); } } /// Display result { CompositionTargetPass tp = t.getOutputTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_NONE); { CompositionPass pass = tp.createPass(); pass.setType(CompositionPass.PassType.PT_RENDERQUAD); pass.setMaterialName("Fury/HeatVision/Blur"); pass.setInput(0, "temp"); } } }
/// <see cref="Translator.Translate"/> public override void Translate(ScriptCompiler compiler, AbstractNode node) { var obj = (ObjectAbstractNode)node; var technique = (CompositionTechnique)obj.Parent.Context; if (obj.Id == (uint)Keywords.ID_TARGET) { this._Target = technique.CreateTargetPass(); if (!string.IsNullOrEmpty(obj.Name)) { this._Target.OutputName = obj.Name; } } else if (obj.Id == (uint)Keywords.ID_TARGET_OUTPUT) { this._Target = technique.OutputTarget; } obj.Context = this._Target; foreach (var i in obj.Children) { if (i is ObjectAbstractNode) { processNode(compiler, i); } else if (i is PropertyAbstractNode) { var prop = (PropertyAbstractNode)i; switch ((Keywords)prop.Id) { #region ID_INPUT case Keywords.ID_INPUT: if (prop.Values.Count == 0) { compiler.AddError(CompileErrorCode.StringExpected, prop.File, prop.Line); return; } else if (prop.Values.Count > 1) { compiler.AddError(CompileErrorCode.FewerParametersExpected, prop.File, prop.Line); return; } else { if (prop.Values[0] is AtomAbstractNode) { var atom = (AtomAbstractNode)prop.Values[0]; switch ((Keywords)atom.Id) { case Keywords.ID_NONE: this._Target.InputMode = CompositorInputMode.None; break; case Keywords.ID_PREVIOUS: this._Target.InputMode = CompositorInputMode.Previous; break; default: compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); break; } } else { compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); } } break; #endregion ID_INPUT #region ID_ONLY_INITIAL case Keywords.ID_ONLY_INITIAL: if (prop.Values.Count == 0) { compiler.AddError(CompileErrorCode.StringExpected, prop.File, prop.Line); return; } else if (prop.Values.Count > 1) { compiler.AddError(CompileErrorCode.FewerParametersExpected, prop.File, prop.Line); return; } else { var val = false; if (getBoolean(prop.Values[0], out val)) { this._Target.OnlyInitial = val; } else { compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); } } break; #endregion ID_ONLY_INITIAL #region ID_VISIBILITY_MASK case Keywords.ID_VISIBILITY_MASK: if (prop.Values.Count == 0) { compiler.AddError(CompileErrorCode.StringExpected, prop.File, prop.Line); return; } else if (prop.Values.Count > 1) { compiler.AddError(CompileErrorCode.FewerParametersExpected, prop.File, prop.Line); return; } else { uint val; if (getUInt(prop.Values[0], out val)) { this._Target.VisibilityMask = val; } else { compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); } } break; #endregion ID_VISIBILITY_MASK #region ID_LOD_BIAS case Keywords.ID_LOD_BIAS: if (prop.Values.Count == 0) { compiler.AddError(CompileErrorCode.StringExpected, prop.File, prop.Line); return; } else if (prop.Values.Count > 1) { compiler.AddError(CompileErrorCode.FewerParametersExpected, prop.File, prop.Line); return; } else { float val; if (getFloat(prop.Values[0], out val)) { this._Target.LodBias = val; } else { compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); } } break; #endregion ID_LOD_BIAS #region ID_MATERIAL_SCHEME case Keywords.ID_MATERIAL_SCHEME: if (prop.Values.Count == 0) { compiler.AddError(CompileErrorCode.StringExpected, prop.File, prop.Line); return; } else if (prop.Values.Count > 1) { compiler.AddError(CompileErrorCode.FewerParametersExpected, prop.File, prop.Line); return; } else { string val; if (getString(prop.Values[0], out val)) { this._Target.MaterialScheme = val; } else { compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); } } break; #endregion ID_MATERIAL_SCHEME #region ID_SHADOWS_ENABLED case Keywords.ID_SHADOWS_ENABLED: if (prop.Values.Count == 0) { compiler.AddError(CompileErrorCode.StringExpected, prop.File, prop.Line); return; } else if (prop.Values.Count > 1) { compiler.AddError(CompileErrorCode.FewerParametersExpected, prop.File, prop.Line); return; } else { bool val; if (getBoolean(prop.Values[0], out val)) { this._Target.ShadowsEnabled = val; } else { compiler.AddError(CompileErrorCode.InvalidParameters, prop.File, prop.Line); } } break; #endregion ID_SHADOWS_ENABLED default: compiler.AddError(CompileErrorCode.UnexpectedToken, prop.File, prop.Line, "token \"" + prop.Name + "\" is not recognized"); break; } } } }
public CompositionTargetPassTranslator() : base() { this._Target = null; }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CompositionTargetPass obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }
protected void createEffectMotionBlur() { /// Motion blur effect CompositorPtr comp3 = new CompositorPtr(ResourcePtr.getCPtr(CompositorManager.Instance.GetAsResourceManager().Create( "Motion Blur", ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME)).Handle, false); CompositionTechnique t = comp3.Get().createTechnique(); { CTTextureDefinition def = t.CreateTextureDefinition("scene"); def.setWidth(0); def.setHeight(0); def.setFormat(PixelFormat.PF_R8G8B8); } { CTTextureDefinition def = t.CreateTextureDefinition("sum"); def.setWidth(0); def.setHeight(0); def.setFormat(PixelFormat.PF_R8G8B8); } { CTTextureDefinition def = t.CreateTextureDefinition("temp"); def.setWidth(0); def.setHeight(0); def.setFormat(PixelFormat.PF_R8G8B8); } /// Render scene { CompositionTargetPass tp = t.createTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_PREVIOUS); tp.SetOutputName("scene"); } /// Initialisation pass for sum texture { CompositionTargetPass tp = t.createTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_PREVIOUS); tp.SetOutputName("sum"); tp.setOnlyInitial(true); } /// Do the motion blur { CompositionTargetPass tp = t.createTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_NONE); tp.SetOutputName("temp"); { CompositionPass pass = tp.createPass(); pass.setType(CompositionPass.PassType.PT_RENDERQUAD); pass.setMaterialName("Ogre/Compositor/Combine"); pass.setInput(0, "scene"); pass.setInput(1, "sum"); } } /// Copy back sum texture { CompositionTargetPass tp = t.createTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_NONE); tp.SetOutputName("sum"); { CompositionPass pass = tp.createPass(); pass.setType(CompositionPass.PassType.PT_RENDERQUAD); pass.setMaterialName("Ogre/Compositor/Copyback"); pass.setInput(0, "temp"); } } /// Display result { CompositionTargetPass tp = t.getOutputTargetPass(); tp.setInputMode(CompositionTargetPass.InputMode.IM_NONE); { CompositionPass pass = tp.createPass(); pass.setType(CompositionPass.PassType.PT_RENDERQUAD); pass.setMaterialName("Ogre/Compositor/MotionBlur"); pass.setInput(0, "sum"); } } }