# endContextRendering

> Delegate that you can use to invoke custom code at the end of RenderPipeline.Render.

## Definition

* **Type:** Event
* **Namespace:** [UnityEngine.Rendering](/engine/6000.6/script-reference/unityengine/rendering.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static event Action<ScriptableRenderContext, List<Camera>> endContextRendering
```

### Remarks

When Unity calls [RenderPipeline.EndContextRendering](/engine/6000.6/script-reference/unityengine/rendering/renderpipeline/endcontextrendering.md) at the end of [RenderPipeline.Render](/engine/6000.6/script-reference/unityengine/rendering/renderpipeline/render.md), it executes the methods in this delegate's invocation list.

In the Universal Render Pipeline (URP) and the High Definition Render Pipeline (HDRP), Unity calls [RenderPipeline.EndContextRendering](/engine/6000.6/script-reference/unityengine/rendering/renderpipeline/endcontextrendering.md) automatically. If you are writing a custom Scriptable Render Pipeline, you must call the method yourself. This functionality is not compatible with the Built-in Render Pipeline.

This delegate works in the same way as [RenderPipelineManager.endFrameRendering](/engine/6000.6/script-reference/unityengine/rendering/renderpipelinemanager/endframerendering.md), except that this version does not cause heap allocations.

The following code example demonstrates how to add a method to this delegate's invocation list, and later remove it.

```csharp
using UnityEngine;
using UnityEngine.Rendering;
using System.Collections.Generic;

public class ExampleClass : MonoBehaviour
{
    void Start()
    {
        RenderPipelineManager.endContextRendering += OnEndContextRendering;
    }

    void OnEndContextRendering(ScriptableRenderContext context, List<Camera> cameras)
    {
        // Put the code that you want to execute at the end of RenderPipeline.Render here
    }

    void OnDestroy()
    {
        RenderPipelineManager.endContextRendering -= OnEndContextRendering;
    }
}
```

Additional Resources: [RenderPipeline.EndContextRendering](/engine/6000.6/script-reference/unityengine/rendering/renderpipeline/endcontextrendering.md), [RenderPipelineManager.beginContextRendering](/engine/6000.6/script-reference/unityengine/rendering/renderpipelinemanager/begincontextrendering.md), [RenderPipeline.BeginContextRendering](/engine/6000.6/script-reference/unityengine/rendering/renderpipeline/begincontextrendering.md), Unity Manual: Scriptable Render Pipeline.
