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

80 lines
2.1 KiB
C#

using System;
using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Universal
{
public class UniversalRendererData : ScriptableRendererData
{
public UniversalMainSceneData mainScene;
public ShadowCasterBlockData shadowCaster;
public DepthPrepassBlockData depthPrepass;
public UniversalRendererData()
: this(true)
{
}
protected UniversalRendererData(
bool initializeDefaultRendererFeatures)
{
mainScene = UniversalMainSceneData.CreateDefault();
shadowCaster = ShadowCasterBlockData.CreateDefault();
depthPrepass = DepthPrepassBlockData.CreateDefault();
if (initializeDefaultRendererFeatures)
{
ResetRendererFeaturesToDefault();
}
}
protected override ScriptableRenderer CreateRenderer()
{
return new UniversalRenderer(this);
}
protected override ScriptableRendererFeature[]
CreateDefaultRendererFeatures()
{
return new ScriptableRendererFeature[]
{
new BuiltinGaussianSplatRendererFeature(),
new BuiltinVolumetricRendererFeature()
};
}
internal UniversalMainSceneData GetMainSceneInstance()
{
if (mainScene == null)
{
mainScene =
UniversalMainSceneData.CreateDefault();
}
return mainScene;
}
internal ShadowCasterBlockData GetShadowCasterBlockInstance()
{
if (shadowCaster == null)
{
shadowCaster =
ShadowCasterBlockData.CreateDefault();
}
return shadowCaster;
}
internal DepthPrepassBlockData GetDepthPrepassBlockInstance()
{
if (depthPrepass == null)
{
depthPrepass =
DepthPrepassBlockData.CreateDefault();
}
return depthPrepass;
}
}
}