internal static void CleanupRenderPipeline() { if (s_CurrentPipelineAsset != null) { s_CurrentPipelineAsset.DestroyCreatedInstances(); } s_CurrentPipelineAsset = null; currentPipeline = null; }
private static void DoRenderLoop_Internal(IRenderPipelineAsset pipe, Camera[] cameras, IntPtr loopPtr) { RenderPipelineManager.PrepareRenderPipeline(pipe); if (RenderPipelineManager.currentPipeline != null) { ScriptableRenderContext renderContext = new ScriptableRenderContext(loopPtr); RenderPipelineManager.currentPipeline.Render(renderContext, cameras); } }
internal static void CleanupRenderPipeline() { if (RenderPipelineManager.s_CurrentPipelineAsset != null) { RenderPipelineManager.s_CurrentPipelineAsset.DestroyCreatedInstances(); } RenderPipelineManager.s_CurrentPipelineAsset = null; RenderPipelineManager.currentPipeline = null; }
internal static void CleanupRenderPipeline() { if (s_CurrentPipelineAsset != null) { s_CurrentPipelineAsset.DestroyCreatedInstances(); s_CurrentPipelineAsset = null; currentPipeline = null; SupportedRenderingFeatures.active = new SupportedRenderingFeatures(); } }
private static void DoRenderLoop_Internal(IRenderPipelineAsset pipe, Camera[] cameras, IntPtr loopPtr) { PrepareRenderPipeline(pipe); if (currentPipeline == null) { return; } ScriptableRenderContext loop = new ScriptableRenderContext(loopPtr); currentPipeline.Render(loop, cameras); }
private static bool DoRenderLoop_Internal(IRenderPipelineAsset pipe, Camera[] cameras, IntPtr loopPtr) { if (!PrepareRenderPipeline(pipe)) { return(false); } ScriptableRenderContext renderContext = default(ScriptableRenderContext); renderContext.Initialize(loopPtr); currentPipeline.Render(renderContext, cameras); return(true); }
private static void PrepareRenderPipeline(IRenderPipelineAsset pipe) { if (RenderPipelineManager.s_CurrentPipelineAsset != pipe) { if (RenderPipelineManager.s_CurrentPipelineAsset != null) { RenderPipelineManager.CleanupRenderPipeline(); } RenderPipelineManager.s_CurrentPipelineAsset = pipe; } if (RenderPipelineManager.s_CurrentPipelineAsset != null && (RenderPipelineManager.currentPipeline == null || RenderPipelineManager.currentPipeline.disposed)) { RenderPipelineManager.currentPipeline = RenderPipelineManager.s_CurrentPipelineAsset.CreatePipeline(); } }
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 bool DoRenderLoop_Internal(IRenderPipelineAsset pipe, Camera[] cameras, IntPtr loopPtr) { bool result; if (!RenderPipelineManager.PrepareRenderPipeline(pipe)) { result = false; } else { ScriptableRenderContext renderContext = default(ScriptableRenderContext); renderContext.Initialize(loopPtr); RenderPipelineManager.currentPipeline.Render(renderContext, cameras); result = true; } return(result); }
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(); } }