# beginContextRendering

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

## Definition

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

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

### Remarks

When Unity calls [RenderPipeline.BeginContextRendering](/engine/6000.5/script-reference/unityengine/rendering/renderpipeline/begincontextrendering.md) at the start of [RenderPipeline.Render](/engine/6000.5/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.BeginContextRendering](/engine/6000.5/script-reference/unityengine/rendering/renderpipeline/begincontextrendering.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.beginFrameRendering](/engine/6000.5/script-reference/unityengine/rendering/renderpipelinemanager/beginframerendering.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.beginContextRendering += OnBeginContextRendering;
    }

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

    void OnDestroy()
    {
        RenderPipelineManager.beginContextRendering -= OnBeginContextRendering;
    }
}
```

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