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); }
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(); } }