Overte C++ Documentation
AssembleLightingStageTask.h
1 //
2 // Created by Samuel Gateau on 2018/12/06
3 // Copyright 2013-2018 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 
9 #ifndef hifi_AssembleLightingStageTask_h
10 #define hifi_AssembleLightingStageTask_h
11 
12 #include <render/RenderFetchCullSortTask.h>
13 #include "LightingModel.h"
14 
15 #include "LightStage.h"
16 #include "BackgroundStage.h"
17 #include "HazeStage.h"
18 #include "BloomStage.h"
19 
20 #include "ZoneRenderer.h"
21 
22 
23 class FetchCurrentFrames {
24 public:
25  using Output = render::VaryingSet4<LightStage::FramePointer, BackgroundStage::FramePointer, HazeStage::FramePointer, BloomStage::FramePointer>;
26  using JobModel = render::Job::ModelO<FetchCurrentFrames, Output>;
27 
28  FetchCurrentFrames() {}
29 
30  void run(const render::RenderContextPointer& renderContext, Output& output);
31 };
32 
33 class AssembleLightingStageTask {
34 public:
35  using Input = RenderFetchCullSortTask::Output;
36  using Output = render::VaryingSet2<FetchCurrentFrames::Output, ZoneRendererTask::Output>;
37  using JobModel = render::Task::ModelIO<AssembleLightingStageTask, Input, Output, render::Task::Config>;
38 
39  AssembleLightingStageTask() {}
40 
41  void build(JobModel& task, const render::Varying& input, render::Varying& output);
42 };
43 
44 #endif