12 #ifndef hifi_ZoneRenderer_h
13 #define hifi_ZoneRenderer_h
15 #include "render/Engine.h"
17 #include "DeferredFrameTransform.h"
19 #include "LightStage.h"
20 #include "BackgroundStage.h"
24 using Input = render::ItemBounds;
25 using JobModel = render::Job::ModelI<SetupZones, Input>;
29 void run(
const render::RenderContextPointer& context,
const Input& input);
32 class ZoneRendererConfig :
public render::Task::Config {
34 Q_PROPERTY(
int maxDrawn MEMBER maxDrawn NOTIFY dirty)
37 ZoneRendererConfig() : render::Task::Config(
48 class ZoneRendererTask {
51 static const render::Selection::Name ZONES_SELECTION;
54 using Input = render::ItemBounds;
55 using Output = render::ItemBounds;
56 using Config = ZoneRendererConfig;
57 using JobModel = render::Task::ModelIO<ZoneRendererTask, Input, Output, Config>;
61 void build(JobModel& task,
const render::Varying& input, render::Varying& output);
63 void configure(
const Config& config) { _maxDrawn = config.maxDrawn; }
69 class DebugZoneLighting {
71 class Config :
public render::JobConfig {
73 Config(
bool enabled =
false) : JobConfig(enabled) {}
76 using Inputs = render::VaryingSet3<DeferredFrameTransformPointer, LightStage::FramePointer, BackgroundStage::FramePointer>;
77 using JobModel = render::Job::ModelI<DebugZoneLighting, Inputs, Config>;
79 DebugZoneLighting() {}
81 void configure(
const Config& configuration) {}
82 void run(
const render::RenderContextPointer& context,
const Inputs& inputs);
86 gpu::PipelinePointer _keyLightPipeline;
87 gpu::PipelinePointer _ambientPipeline;
88 gpu::PipelinePointer _backgroundPipeline;
90 const gpu::PipelinePointer& getKeyLightPipeline();
91 const gpu::PipelinePointer& getAmbientPipeline();
92 const gpu::PipelinePointer& getBackgroundPipeline();