Files
XCEngine/managed/XCEngine.ScriptCore/RenderingData.cs

90 lines
2.8 KiB
C#

namespace XCEngine
{
public sealed class RenderingData
{
internal RenderingData(CameraFrameStage stage)
: this(
stage,
CameraData.Default,
LightingData.Default,
ShadowData.Default,
EnvironmentData.Default,
FinalColorData.Default,
StageColorData.Default)
{
}
internal RenderingData(ScriptableRenderContext context)
: this(
context != null
? context.stage
: CameraFrameStage.MainScene,
context != null
? context.cameraData
: CameraData.Default,
context != null
? context.lightingData
: LightingData.Default,
context != null
? context.shadowData
: ShadowData.Default,
context != null
? context.environmentData
: EnvironmentData.Default,
context != null
? context.finalColorData
: FinalColorData.Default,
context != null
? context.stageColorData
: StageColorData.Default)
{
}
private RenderingData(
CameraFrameStage stage,
CameraData cameraData,
LightingData lightingData,
ShadowData shadowData,
EnvironmentData environmentData,
FinalColorData finalColorData,
StageColorData stageColorData)
{
this.stage = stage;
this.cameraData = cameraData ?? CameraData.Default;
this.lightingData =
lightingData ?? LightingData.Default;
this.shadowData =
shadowData ?? ShadowData.Default;
this.environmentData =
environmentData ?? EnvironmentData.Default;
this.finalColorData =
finalColorData ?? FinalColorData.Default;
this.stageColorData =
stageColorData ?? StageColorData.Default;
}
public CameraFrameStage stage { get; }
public CameraData cameraData { get; }
public LightingData lightingData { get; }
public ShadowData shadowData { get; }
public EnvironmentData environmentData { get; }
public FinalColorData finalColorData { get; }
public StageColorData stageColorData { get; }
public bool isMainSceneStage =>
stage == CameraFrameStage.MainScene;
public bool isPostProcessStage =>
stage == CameraFrameStage.PostProcess;
public bool isFinalOutputStage =>
stage == CameraFrameStage.FinalOutput;
}
}