Example #1
0
 public RenderPriorityGroup(RenderQueueGroup parent, bool splitPassesByLightingType, bool splitNoShadowPasses, bool shadowCastersNotReceivers) : this(OgrePINVOKE.new_RenderPriorityGroup(RenderQueueGroup.getCPtr(parent), splitPassesByLightingType, splitNoShadowPasses, shadowCastersNotReceivers), true)
 {
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
 public virtual void invoke(RenderQueueGroup group, SceneManager targetSceneManager)
 {
     OgrePINVOKE.RenderQueueInvocation_invoke(swigCPtr, RenderQueueGroup.getCPtr(group), SceneManager.getCPtr(targetSceneManager));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
 public void merge(RenderQueueGroup rhs)
 {
     OgrePINVOKE.RenderQueueGroup_merge(swigCPtr, RenderQueueGroup.getCPtr(rhs));
     if (OgrePINVOKE.SWIGPendingException.Pending)
     {
         throw OgrePINVOKE.SWIGPendingException.Retrieve();
     }
 }
Example #4
0
        public RenderQueueGroup getQueueGroup(byte qid)
        {
            global::System.IntPtr cPtr = OgrePINVOKE.RenderQueue_getQueueGroup(swigCPtr, qid);
            RenderQueueGroup      ret  = (cPtr == global::System.IntPtr.Zero) ? null : new RenderQueueGroup(cPtr, false);

            if (OgrePINVOKE.SWIGPendingException.Pending)
            {
                throw OgrePINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
        /// <summary>
        /// Renders a group of objects
        /// </summary>
        /// <param name="group">Group of objects to render</param>
        private void RenderGroup(RenderQueueGroup group)
        {
            List<IRenderable> solids = group.SolidList;
            List<IRenderable> transparents = group.TransparentList;
            RenderObjects(solids);
            RenderObjects(transparents);

            IEnumerable<InstanceBatch> instances = _renderer.InstancingManager.GetBatchList(group.Id);
            foreach (InstanceBatch b in instances)
            {
                RenderInstancedObjects(b);
            }
        }
Example #6
0
        /// <summary>
        ///		Render a group rendering only shadow receivers.
        ///		We have our own version here to add some optimizations
        /// </summary>
        /// <param name="group">Render queue group.</param>
        protected override void RenderTextureShadowReceiverQueueGroupObjects(RenderQueueGroup group)
        {
            // Override auto param ambient to force vertex programs to go full-bright
            autoParamDataSource.AmbientLight = ColorEx.White;
            targetRenderSystem.AmbientLight  = ColorEx.White;

            // Iterate through priorities
            for (int i = 0; i < group.NumPriorityGroups; i++)
            {
                RenderPriorityGroup priorityGroup = group.GetPriorityGroup(i);

                // Do solids, override light list in case any vertex programs use them
                RenderShadowReceiverObjects(priorityGroup.SolidPasses, false, nullLightList);

                // Don't render transparents or passes which have shadow receipt disabled
            }// for each priority

            // reset ambient
            autoParamDataSource.AmbientLight = ambientColor;
            targetRenderSystem.AmbientLight  = ambientColor;
        }
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RenderQueueGroup obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }