/// <summary> /// Internal method for adding a solid renderable /// </summary> /// <param name="technique">Technique to use for this renderable.</param> /// <param name="renderable">Renderable to add to the queue.</param> /// <param name="noShadows">True to add to the no shadow group, false otherwise.</param> protected void AddSolidRenderable(Technique technique, IRenderable renderable, bool noShadows) { SortedList passMap = null; if (noShadows) { passMap = this.solidPassesNoShadow; } else { passMap = this.solidPasses; } for (var i = 0; i < technique.PassCount; i++) { var pass = technique.GetPass(i); if (passMap[pass] == null) { // add a new list to hold renderables for this pass passMap.Add(pass, new RenderableList()); } // add to solid list for this pass var solidList = (RenderableList)passMap[pass]; solidList.Add(renderable); } }
/// <summary> /// Internal method for adding a transparent renderable. /// </summary> /// <param name="technique">Technique to use for this renderable.</param> /// <param name="renderable">Renderable to add to the queue.</param> protected void AddTransparentRenderable(Technique technique, IRenderable renderable) { for (var i = 0; i < technique.PassCount; i++) { // add to transparent list this.transparentPasses.Add(new RenderablePass(renderable, technique.GetPass(i))); } }
/// <summary> /// Internal method for adding a transparent renderable. /// </summary> /// <param name="technique">Technique to use for this renderable.</param> /// <param name="renderable">Renderable to add to the queue.</param> protected void AddTransparentRenderable(Technique technique, IRenderable renderable) { for (int i = 0; i < technique.NumPasses; i++) { // add to transparent list transparentPasses.Add(new RenderablePass(renderable, technique.GetPass(i))); } }
public override void Execute(SceneManager sm, RenderSystem rs) { // Fire listener instance.FireNotifyMaterialRender(pass_id, mat); // Queue passes from mat for (int i = 0; i < technique.NumPasses; i++) { Pass pass = technique.GetPass(i); sm.InjectRenderWithPass(pass, CompositorManager.Instance.GetTexturedRectangle2D(), false // don't allow replacement of shadow passes ); } }
/// <summary> /// Internal method for adding a transparent renderable. /// </summary> /// <param name="technique">Technique to use for this renderable.</param> /// <param name="renderable">Renderable to add to the queue.</param> protected void AddTransparentRenderable(Technique technique, IRenderable renderable) { for(int i = 0; i < technique.NumPasses; i++) { // add to transparent list transparentPasses.Add(new RenderablePass(renderable, technique.GetPass(i))); } }
/// <summary> /// Internal method for adding a solid renderable /// </summary> /// <param name="technique">Technique to use for this renderable.</param> /// <param name="renderable">Renderable to add to the queue.</param> /// <param name="noShadows">True to add to the no shadow group, false otherwise.</param> protected void AddSolidRenderable(Technique technique, IRenderable renderable, bool noShadows) { SortedList passMap = null; if(noShadows) { passMap = solidPassesNoShadow; } else { passMap = solidPasses; } for(int i = 0; i < technique.NumPasses; i++) { Pass pass = technique.GetPass(i); if(passMap[pass] == null) { // add a new list to hold renderables for this pass passMap.Add(pass, new RenderableList()); } // add to solid list for this pass RenderableList solidList = (RenderableList)passMap[pass]; solidList.Add(renderable); } }