# IRenderPipelineResources

> Classes implementing this interface contain the resources required for your graphic features to work.

## Definition

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

```csharp
public interface IRenderPipelineResources : IRenderPipelineGraphicsSettings
```

## Remarks

Classes implementing this interface will contain all the resources that are mandatory for your Render Pipeline to work. There is a mechanism that allows to set up null fields for you based on [ResourcePathAttribute](/engine/6000.3/script-reference/unityengine/rendering/resourcepathattribute.md) attribute. When the resource is created, a loading mechanism is called to make sure your resources are not created with null values. It is only called automatically at creation.

See also ResourceContainerAttribute.

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

[Serializable]
[SupportedOnRenderPipeline(typeof(DummyPipelineAsset))]
class MyResourceForFeatureX : IRenderPipelineResources
{
    enum Version
    {
        Initial,
        ChangedIcon1,
        ChangedShader,

        Count,
        Last = Count - 1
    }
    [SerializeField, HideInInspector] Version m_version = Version.Last;
    public int version => (int)m_version;

    [ResourcePath("ResourceAssets/resourceIcon1.png")]
    public Texture2D icon1;
    [ResourcePath("ResourceAssets/resourceIcon2.png")]
    public Texture2D icon2;
    [ResourcePath("My/Shader/Path", ResourcePathAttribute.SearchType.ShaderName)]
    public Shader shader;
}
```

Here we add a MyResourceForFeatureX that contains various icons and shader for a rendering feature. With the SupportedOn, we only add it for the SRP Universal Render Pipeline. Feel free to replace it by your own pipeline or HDRenderPipelineAsset if you use them.

## Inheritance

**Inherited Members:**

* [IRenderPipelineGraphicsSettings.Reset()](/engine/6000.3/script-reference/unityengine/rendering/irenderpipelinegraphicssettings/reset.md)
* [IRenderPipelineGraphicsSettings.version](/engine/6000.3/script-reference/unityengine/rendering/irenderpipelinegraphicssettings/version.md)
* [IRenderPipelineGraphicsSettings.isAvailableInPlayerBuild](/engine/6000.3/script-reference/unityengine/rendering/irenderpipelinegraphicssettings/isavailableinplayerbuild.md)
