NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Vehicle/TireMark/DrawTireMarkRPF.cs

50 lines
1.5 KiB
C#

using Gameplay.Performance;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
namespace Gameplay.Vehicle.TireMark
{
// ReSharper disable once InconsistentNaming
public class DrawTireMarkRPF : ScriptableRendererFeature
{
private CustomPass _pass;
public override void Create()
{
_pass = new CustomPass();
_pass.renderPassEvent = RenderPassEvent.BeforeRendering;
}
public override void AddRenderPasses(ScriptableRenderer renderer,
ref RenderingData renderingData)
{
renderer.EnqueuePass(_pass);
}
class CustomPass : ScriptableRenderPass
{
public override void Execute(ScriptableRenderContext context,
ref RenderingData renderingData)
{
if (renderingData.cameraData.renderType != CameraRenderType.Base)
{
return;
}
if (TireMarkManager.instance == null) return;
if (TireMarkManager.instance.drawDatas.Count == 0) return;
if (!PerformanceManager.instance.data.enableTireMark) return;
var cmd = CommandBufferPool.Get("DrawTireMark");
// using (new ProfilingScope(cmd, new ProfilingSampler("DrawTireMark")))
{
TireMarkManager.instance.DrawDatas(cmd);
}
context.ExecuteCommandBuffer(cmd);
CommandBufferPool.Release(cmd);
}
}
}
}