58 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|