Объявление
protected static void EndContextRendering(Rendering.ScriptableRenderContext context, ListОписание
Вызывает делегаты RenderPipelineManager.endContextRendering и RenderPipelineManager.endFrameRendering.
Используйте делегаты, которые вызывает этот метод, для реализации функций в конце RenderPipeline.Render.
В универсальном конвейере рендеринга (URP) и конвейере рендеринга высокого разрешения (HDRP) Unity автоматически вызывает этот метод в конце RenderPipeline.Render. Если вы пишете собственный Scriptable Render Pipeline, вы можете сами вызвать этот метод в том же месте. Эта функция несовместима со встроенным конвейером рендеринга.
Делегаты, вызываемые этим методом, работают одинаково друг с другом, за исключением того, что RenderPipelineManager.endFrameRendering вызывает выделение кучи и RenderPipelineManager.endContextRendering не работает. Поэтому вам следует использовать RenderPipelineManager.endContextRendering, чтобы избежать ненужного выделения кучи и сборки мусора.
Этот метод заменяет RenderPipeline.EndFrameRendering. Он делает все то же, что и метод, и, кроме того, вызывает делегата RenderPipelineManager.endContextRendering. Если вы пишете собственный конвейер рендеринга с поддержкой сценариев, используйте этот метод вместо RenderPipeline.EndFrameRendering.
В следующем примере кода показано, как вызвать этот метод, если вы создаете собственный конвейер рендеринга с поддержкой сценариев:
using UnityEngine;
using UnityEngine.Rendering;
using System.Collections.Generic;
public class ExampleRenderPipelineInstance : RenderPipeline
{
public ExampleRenderPipelineInstance()
{
}
override protected void Render(ScriptableRenderContext context, List<Camera> cameras)
{
// Put the rest of your Render method code here
// Call the RenderPipelineManager.endContextRendering and RenderPipelineManager.endFrameRendering delegates
EndContextRendering(context, cameras);
}
// Older version of the Render function that can generate garbage, needed for backwards compatibility
override protected void Render(ScriptableRenderContext context, Camera[] cameras)
{
}
}
Смотрите так же: RenderPipelineManager.endContextRendering, RenderPipelineManager.endFrameRendering, RenderPipeline.BeginContextRendering, RenderPipelineManager.beginContextRendering, RenderPipelineManager.beginFrameRendering, Unity Manual: Scriptable Render Pipeline