/// <summary> /// Clears all the priority groups within this group. /// </summary> public void Clear() { // loop through each priority group and clear it's items. We don't wanna clear the group // list because it probably won't change frame by frame. for (int i = 0; i < priorityGroups.Count; i++) { RenderPriorityGroup group = (RenderPriorityGroup)priorityGroups[i]; // clear the RenderPriorityGroup group.Clear(); } }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="priority"></param> public void AddRenderable(IRenderable item, ushort priority) { RenderPriorityGroup group = null; // see if there is a current queue group for this group id if (!priorityGroups.ContainsKey(priority)) { // create a new queue group for this group id group = new RenderPriorityGroup(splitPassesByLightingType, splitNoShadowPasses, splitPassesByLightingType); // add the new group to cached render group priorityGroups.Add(priority, group); } else { // retreive the existing queue group group = (RenderPriorityGroup)priorityGroups.GetByKey(priority); } // add the renderable to the appropriate group group.AddRenderable(item); }
/// <summary> /// </summary> public void AddRenderable( IRenderable item, Technique technique, ushort priority ) { RenderPriorityGroup group = null; // see if there is a current queue group for this group id if ( !PriorityGroups.ContainsKey( priority ) ) { // create a new queue group for this group id group = new RenderPriorityGroup( this, this.splitPassesByLightingType, this.splitNoShadowPasses, this.splitPassesByLightingType ); // add the new group to cached render group PriorityGroups.Add( priority, group ); } else { // retreive the existing queue group group = PriorityGroups[ priority ]; } // add the renderable to the appropriate group group.AddRenderable( item, technique ); }