xyi/Library/PackageCache/com.unity.render-pipelines.universal@3696a2e8b4ac/Runtime/Decal/DecalDrawErrorRenderPass.cs
Vladislav 2750530006 1
2025-09-18 15:33:57 +03:00

36 lines
1.3 KiB
C#

using System.Collections.Generic;
using Unity.Collections;
using Unity.Mathematics;
namespace UnityEngine.Rendering.Universal
{
internal class DecalDrawErrorSystem : DecalDrawSystem
{
private DecalTechnique m_Technique;
public DecalDrawErrorSystem(DecalEntityManager entityManager, DecalTechnique technique) : base("DecalDrawErrorSystem.Execute", entityManager)
{
m_Technique = technique;
}
protected override int GetPassIndex(DecalCachedChunk decalCachedChunk)
{
switch (m_Technique)
{
case DecalTechnique.DBuffer:
return ((decalCachedChunk.passIndexDBuffer == -1) && (decalCachedChunk.passIndexEmissive == -1)) ? 0 : -1;
case DecalTechnique.ScreenSpace:
return decalCachedChunk.passIndexScreenSpace == -1 ? 0 : -1;
case DecalTechnique.GBuffer:
return decalCachedChunk.passIndexGBuffer == -1 ? 0 : -1;
case DecalTechnique.Invalid:
return 0;
default:
return 0;
}
}
protected override Material GetMaterial(DecalEntityChunk decalEntityChunk) => m_EntityManager.errorMaterial;
}
}