Files
XCEngine/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/UniversalRenderObjectsFeatureController.cs

58 lines
1.5 KiB
C#

using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Universal
{
internal sealed class UniversalRenderObjectsFeatureController
{
private DrawObjectsPass m_pass;
public int AppendRuntimeStateHash(
int hash,
RenderObjectsFeatureSettings settings)
{
return settings != null
? settings.AppendRuntimeStateHash(hash)
: hash;
}
public void Create(
RenderObjectsFeatureSettings settings)
{
if (settings == null)
{
settings = new RenderObjectsFeatureSettings();
}
if (m_pass == null)
{
m_pass =
new DrawObjectsPass(
settings.passEvent,
settings.scenePhase,
settings.rendererListDesc,
settings.drawingSettings);
return;
}
m_pass.Configure(
settings.passEvent,
settings.scenePhase,
settings.rendererListDesc,
settings.drawingSettings);
}
public void EnqueuePass(
ScriptableRenderer renderer,
RenderingData renderingData,
RenderObjectsFeatureSettings settings)
{
Create(settings);
UniversalMainSceneFeatureUtility.EnqueuePass(
renderer,
renderingData,
m_pass);
}
}
}