using System;
namespace UnityEngine.Rendering
{
///
/// Class that stores the Variable Rate Shading common global resources
///
[Serializable]
[SupportedOnRenderPipeline]
[Categorization.CategoryInfo(Name = "R: VRS - Runtime Resources", Order = 1000), HideInInspector]
public sealed class VrsRenderPipelineRuntimeResources : IRenderPipelineResources
{
///
/// Version of the Vrs Resources
///
public int version => 0;
bool IRenderPipelineGraphicsSettings.isAvailableInPlayerBuild => true;
[SerializeField]
[ResourcePath("Runtime/Vrs/Shaders/VrsTexture.compute")]
ComputeShader m_TextureComputeShader;
///
/// General Vrs compute shader.
///
public ComputeShader textureComputeShader
{
get => m_TextureComputeShader;
set => this.SetValueAndNotify(ref m_TextureComputeShader, value, nameof(m_TextureComputeShader));
}
[SerializeField]
[ResourcePath("Runtime/Vrs/Shaders/VrsVisualization.shader")]
Shader m_VisualizationShader;
///
/// Show resource shader.
///
public Shader visualizationShader
{
get => m_VisualizationShader;
set => this.SetValueAndNotify(ref m_VisualizationShader, value, nameof(m_VisualizationShader));
}
[SerializeField]
[Tooltip("Colors to visualize the shading rates")]
VrsLut m_VisualizationLookupTable = VrsLut.CreateDefault();
///
/// Shading rate visualization lookup table.
///
public VrsLut visualizationLookupTable
{
get => m_VisualizationLookupTable;
set => this.SetValueAndNotify(ref m_VisualizationLookupTable, value, nameof(m_VisualizationLookupTable));
}
[SerializeField]
[Tooltip("Colors to convert between shading rates and textures")]
VrsLut m_ConversionLookupTable = VrsLut.CreateDefault();
///
/// texture to/from Shading rate conversion lookup table.
///
public VrsLut conversionLookupTable
{
get => m_ConversionLookupTable;
set => this.SetValueAndNotify(ref m_ConversionLookupTable, value, nameof(m_ConversionLookupTable));
}
}
}