54 lines
1.3 KiB
C#
54 lines
1.3 KiB
C#
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
internal sealed class UniversalNativeSceneFeatureController
|
|
{
|
|
private readonly NativeSceneFeaturePassId m_featurePassId;
|
|
private NativeSceneFeaturePass m_pass;
|
|
|
|
public UniversalNativeSceneFeatureController(
|
|
NativeSceneFeaturePassId featurePassId)
|
|
{
|
|
m_featurePassId =
|
|
featurePassId;
|
|
}
|
|
|
|
public int AppendRuntimeStateHash(
|
|
int hash,
|
|
RenderPassEvent passEvent)
|
|
{
|
|
return RuntimeStateHashUtility.Combine(
|
|
hash,
|
|
(int)passEvent);
|
|
}
|
|
|
|
public void Create(
|
|
RenderPassEvent passEvent)
|
|
{
|
|
if (m_pass == null)
|
|
{
|
|
m_pass = new NativeSceneFeaturePass(
|
|
m_featurePassId,
|
|
passEvent);
|
|
return;
|
|
}
|
|
|
|
m_pass.Configure(passEvent);
|
|
}
|
|
|
|
public void EnqueuePass(
|
|
ScriptableRenderer renderer,
|
|
RenderingData renderingData,
|
|
RenderPassEvent passEvent)
|
|
{
|
|
Create(passEvent);
|
|
UniversalMainSceneFeatureUtility.EnqueuePass(
|
|
renderer,
|
|
renderingData,
|
|
m_pass);
|
|
}
|
|
}
|
|
}
|