48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <XCEngine/Rendering/Execution/FrameStageRenderRequest.h>
|
|
#include <XCEngine/Rendering/Planning/FinalColorSettings.h>
|
|
#include <XCEngine/Rendering/RenderContext.h>
|
|
#include <XCEngine/Rendering/Shadow/DirectionalShadowData.h>
|
|
|
|
#include <cstdint>
|
|
|
|
namespace XCEngine {
|
|
namespace Components {
|
|
class CameraComponent;
|
|
class Scene;
|
|
} // namespace Components
|
|
|
|
namespace Rendering {
|
|
|
|
struct CameraRenderRequest {
|
|
const Components::Scene* scene = nullptr;
|
|
Components::CameraComponent* camera = nullptr;
|
|
RenderContext context;
|
|
RenderSurface surface;
|
|
DepthOnlyRenderRequest depthOnly;
|
|
ShadowCasterRenderRequest shadowCaster;
|
|
DirectionalShadowRenderPlan directionalShadow;
|
|
PostProcessRenderRequest postProcess;
|
|
FinalOutputRenderRequest finalOutput;
|
|
ResolvedFinalColorPolicy finalColorPolicy = {};
|
|
ObjectIdRenderRequest objectId;
|
|
float cameraDepth = 0.0f;
|
|
uint8_t cameraStackOrder = 0;
|
|
RenderClearFlags clearFlags = RenderClearFlags::All;
|
|
bool hasClearColorOverride = false;
|
|
Math::Color clearColorOverride = Math::Color::Black();
|
|
RenderPassSequence* preScenePasses = nullptr;
|
|
RenderPassSequence* postScenePasses = nullptr;
|
|
RenderPassSequence* overlayPasses = nullptr;
|
|
|
|
bool IsValid() const {
|
|
return scene != nullptr &&
|
|
camera != nullptr &&
|
|
context.IsValid();
|
|
}
|
|
};
|
|
|
|
} // namespace Rendering
|
|
} // namespace XCEngine
|