using System;
namespace UnityEngine.Rendering
{
/// Class for tracking resources used by the GPUResidentDrawer
[Serializable]
[SupportedOnRenderPipeline]
[Categorization.CategoryInfo(Name = "R: GPU Resident Drawers", Order = 1000), HideInInspector]
class GPUResidentDrawerResources : IRenderPipelineResources
{
public enum Version
{
Initial,
Count,
Latest = Count - 1
}
[SerializeField, HideInInspector] Version m_Version = Version.Latest;
int IRenderPipelineGraphicsSettings.version => (int)m_Version;
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceDataBufferCopyKernels.compute")]
ComputeShader m_InstanceDataBufferCopyKernels;
/// InstanceDataBufferCopyKernels compute shader reference
public ComputeShader instanceDataBufferCopyKernels
{
get => m_InstanceDataBufferCopyKernels;
set => this.SetValueAndNotify(ref m_InstanceDataBufferCopyKernels, value, nameof(m_InstanceDataBufferCopyKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceDataBufferUploadKernels.compute")]
ComputeShader m_InstanceDataBufferUploadKernels;
/// InstanceDataBufferUploadKernels compute shader reference
public ComputeShader instanceDataBufferUploadKernels
{
get => m_InstanceDataBufferUploadKernels;
set => this.SetValueAndNotify(ref m_InstanceDataBufferUploadKernels, value, nameof(m_InstanceDataBufferUploadKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceTransformUpdateKernels.compute")]
ComputeShader m_TransformUpdaterKernels;
/// TransformUpdaterKernels compute shader reference
public ComputeShader transformUpdaterKernels
{
get => m_TransformUpdaterKernels;
set => this.SetValueAndNotify(ref m_TransformUpdaterKernels, value, nameof(m_TransformUpdaterKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceWindDataUpdateKernels.compute")]
public ComputeShader m_WindDataUpdaterKernels;
///
/// InstanceWindDataUpdateKernels compute shader reference
///
public ComputeShader windDataUpdaterKernels
{
get => m_WindDataUpdaterKernels;
set => this.SetValueAndNotify(ref m_WindDataUpdaterKernels, value, nameof(m_WindDataUpdaterKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/OccluderDepthPyramidKernels.compute")]
ComputeShader m_OccluderDepthPyramidKernels;
///
/// OccluderDepthPyramidKernels compute shader reference
///
public ComputeShader occluderDepthPyramidKernels
{
get => m_OccluderDepthPyramidKernels;
set => this.SetValueAndNotify(ref m_OccluderDepthPyramidKernels, value, nameof(m_OccluderDepthPyramidKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceOcclusionCullingKernels.compute")]
ComputeShader m_InstanceOcclusionCullingKernels;
///
/// InstanceOcclusionCullingKernels compute shader reference
///
public ComputeShader instanceOcclusionCullingKernels
{
get => m_InstanceOcclusionCullingKernels;
set => this.SetValueAndNotify(ref m_InstanceOcclusionCullingKernels, value, nameof(m_InstanceOcclusionCullingKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/OcclusionCullingDebug.compute")]
ComputeShader m_OcclusionCullingDebugKernels;
///
/// OcclusionCullingDebugKernels compute shader reference
///
public ComputeShader occlusionCullingDebugKernels
{
get => m_OcclusionCullingDebugKernels;
set => this.SetValueAndNotify(ref m_OcclusionCullingDebugKernels, value, nameof(m_OcclusionCullingDebugKernels));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/DebugOcclusionTest.shader")]
Shader m_DebugOcclusionTestPS;
///
/// DebugOcclusionTestPS pixel shader reference
///
public Shader debugOcclusionTestPS
{
get => m_DebugOcclusionTestPS;
set => this.SetValueAndNotify(ref m_DebugOcclusionTestPS, value, nameof(m_DebugOcclusionTestPS));
}
[SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/DebugOccluder.shader")]
Shader m_DebugOccluderPS;
///
/// DebugOccluderPS pixel shader reference
///
public Shader debugOccluderPS
{
get => m_DebugOccluderPS;
set => this.SetValueAndNotify(ref m_DebugOccluderPS, value, nameof(m_DebugOccluderPS));
}
}
}