9 #ifndef hifi_AssembleLightingStageTask_h
10 #define hifi_AssembleLightingStageTask_h
12 #include <render/RenderFetchCullSortTask.h>
13 #include "LightingModel.h"
15 #include "LightStage.h"
16 #include "BackgroundStage.h"
17 #include "HazeStage.h"
18 #include "BloomStage.h"
19 #include "TonemappingStage.h"
20 #include "AmbientOcclusionStage.h"
21 #include "NormalMapAttenuationStage.h"
23 #include "ZoneRenderer.h"
26 class FetchCurrentFrames {
28 using Output = render::VaryingSet7<LightStage::FramePointer, BackgroundStage::FramePointer, HazeStage::FramePointer,
29 BloomStage::FramePointer, TonemappingStage::FramePointer, AmbientOcclusionStage::FramePointer, NormalMapAttenuationStage::FramePointer>;
30 using JobModel = render::Job::ModelO<FetchCurrentFrames, Output>;
32 FetchCurrentFrames() {}
34 void run(
const render::RenderContextPointer& renderContext, Output& output);
37 class AssembleLightingStageTask {
39 using Input = RenderFetchCullSortTask::Output;
40 using Output = render::VaryingSet2<FetchCurrentFrames::Output, ZoneRendererTask::Output>;
41 using JobModel = render::Task::ModelIO<AssembleLightingStageTask, Input, Output, render::Task::Config>;
43 AssembleLightingStageTask() {}
45 void build(JobModel& task,
const render::Varying& input, render::Varying& output);