示例#1
0
 private static bool PrepareRenderPipeline(IRenderPipelineAsset pipe)
 {
     if (s_CurrentPipelineAsset != pipe)
     {
         if (s_CurrentPipelineAsset != null)
         {
             CleanupRenderPipeline();
         }
         s_CurrentPipelineAsset = pipe;
     }
     if (s_CurrentPipelineAsset != null && (currentPipeline == null || currentPipeline.disposed))
     {
         currentPipeline = s_CurrentPipelineAsset.CreatePipeline();
     }
     return(s_CurrentPipelineAsset != null);
 }
示例#2
0
        private static void PrepareRenderPipeline(IRenderPipelineAsset pipe)
        {
            // UnityObject overloads operator == and treats destroyed objects and null as equals
            // However here is needed to differentiate them in other to bookkeep RenderPipeline lifecycle
            if ((object)s_CurrentPipelineAsset != (object)pipe)
            {
                if (s_CurrentPipelineAsset != null)
                {
                    // Required because when switching to a RenderPipeline asset for the first time
                    // it will call OnValidate on the new asset before cleaning up the old one. Thus we
                    // reset the rebuild in order to cleanup properly.
                    CleanupRenderPipeline();
                }

                s_CurrentPipelineAsset = pipe;
            }

            if (s_CurrentPipelineAsset != null &&
                (currentPipeline == null || currentPipeline.disposed))
            {
                currentPipeline = s_CurrentPipelineAsset.CreatePipeline();
            }
        }