Overte C++ Documentation
RenderHUDLayerTask.h
1 //
2 // Created by Sam Gateau on 2019/06/14
3 // Copyright 2013-2019 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_RenderHUDLayerTask_h
10 #define hifi_RenderHUDLayerTask_h
11 
12 #include "LightingModel.h"
13 #include "HazeStage.h"
14 
15 class CompositeHUD {
16 public:
17  // IF specified the input Framebuffer is actively set by the batch of this job before calling the HUDOperator.
18  // If not, the current Framebuffer is left unchanged.
19  //using Inputs = gpu::FramebufferPointer;
20  using JobModel = render::Job::ModelI<CompositeHUD, gpu::FramebufferPointer>;
21 
22  void run(const render::RenderContextPointer& renderContext, const gpu::FramebufferPointer& inputs);
23 };
24 
25 class RenderHUDLayerTask {
26 public:
27  // Framebuffer where to draw, lighting model, opaque items, transparent items
28  using Input = render::VaryingSet5<gpu::FramebufferPointer, LightingModelPointer, render::ItemBounds, render::ItemBounds, HazeStage::FramePointer>;
29  using JobModel = render::Task::ModelI<RenderHUDLayerTask, Input>;
30 
31  void build(JobModel& task, const render::Varying& input, render::Varying& output);
32 };
33 
34 #endif // hifi_RenderHUDLayerTask_h