UnityGame/Library/PackageCache/com.unity.render-pipelines.universal/Runtime/Decal/DecalDrawErrorRenderPass.cs

36 lines
1.3 KiB
C#
Raw Normal View History

2024-10-27 10:53:47 +03:00
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;
}
}