//// ZoneRenderer.h// render/src/render-utils//// Created by Sam Gateau on 4/4/2017.// Copyright 2017 High Fidelity, Inc.//// Distributed under the Apache License, Version 2.0.// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #ifndef hifi_ZoneRenderer_h#define hifi_ZoneRenderer_h #include "render/Engine.h" #include "DeferredFrameTransform.h" #include "LightStage.h"#include "BackgroundStage.h" class SetupZones {public: using Input = render::ItemBounds; using JobModel = render::Job::ModelI<SetupZones, Input>; SetupZones() {} void run(const render::RenderContextPointer& context, const Input& input);}; class ZoneRendererConfig : public render::Task::Config { Q_OBJECT Q_PROPERTY(int maxDrawn MEMBER maxDrawn NOTIFY dirty)public: ZoneRendererConfig() : render::Task::Config( ) {} int maxDrawn { -1 }; signals: void dirty(); protected:}; class ZoneRendererTask {public: static const render::Selection::Name ZONES_SELECTION; using Input = render::ItemBounds; using Output = render::ItemBounds; using Config = ZoneRendererConfig; using JobModel = render::Task::ModelIO<ZoneRendererTask, Input, Output, Config>; ZoneRendererTask() {} void build(JobModel& task, const render::Varying& input, render::Varying& output); void configure(const Config& config) { _maxDrawn = config.maxDrawn; } protected: int _maxDrawn; // initialized by Config}; class DebugZoneLighting {public: class Config : public render::JobConfig { public: Config(bool enabled = false) : JobConfig(enabled) {} }; using Inputs = render::VaryingSet3<DeferredFrameTransformPointer, LightStage::FramePointer, BackgroundStage::FramePointer>; using JobModel = render::Job::ModelI<DebugZoneLighting, Inputs, Config>; DebugZoneLighting() {} void configure(const Config& configuration) {} void run(const render::RenderContextPointer& context, const Inputs& inputs); protected: static gpu::PipelinePointer _keyLightPipeline; static gpu::PipelinePointer _ambientPipeline; static gpu::PipelinePointer _backgroundPipeline; static const gpu::PipelinePointer& getKeyLightPipeline(); static const gpu::PipelinePointer& getAmbientPipeline(); static const gpu::PipelinePointer& getBackgroundPipeline();}; #endif
//
// ZoneRenderer.h
// render/src/render-utils
//
// Created by Sam Gateau on 4/4/2017.
// Copyright 2017 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#ifndef hifi_ZoneRenderer_h
#define hifi_ZoneRenderer_h
#include "render/Engine.h"
#include "DeferredFrameTransform.h"
#include "LightStage.h"
#include "BackgroundStage.h"
class SetupZones {
public:
using Input = render::ItemBounds;
using JobModel = render::Job::ModelI<SetupZones, Input>;
SetupZones() {}
void run(const render::RenderContextPointer& context, const Input& input);
};
class ZoneRendererConfig : public render::Task::Config {
Q_OBJECT
Q_PROPERTY(int maxDrawn MEMBER maxDrawn NOTIFY dirty)
public:
ZoneRendererConfig() : render::Task::Config(
) {}
int maxDrawn { -1 };
signals:
void dirty();
protected:
};
class ZoneRendererTask {
public:
static const render::Selection::Name ZONES_SELECTION;
using Input = render::ItemBounds;
using Output = render::ItemBounds;
using Config = ZoneRendererConfig;
using JobModel = render::Task::ModelIO<ZoneRendererTask, Input, Output, Config>;
ZoneRendererTask() {}
void build(JobModel& task, const render::Varying& input, render::Varying& output);
void configure(const Config& config) { _maxDrawn = config.maxDrawn; }
protected:
int _maxDrawn; // initialized by Config
};
class DebugZoneLighting {
public:
class Config : public render::JobConfig {
public:
Config(bool enabled = false) : JobConfig(enabled) {}
};
using Inputs = render::VaryingSet3<DeferredFrameTransformPointer, LightStage::FramePointer, BackgroundStage::FramePointer>;
using JobModel = render::Job::ModelI<DebugZoneLighting, Inputs, Config>;
DebugZoneLighting() {}
void configure(const Config& configuration) {}
void run(const render::RenderContextPointer& context, const Inputs& inputs);
protected:
static gpu::PipelinePointer _keyLightPipeline;
static gpu::PipelinePointer _ambientPipeline;
static gpu::PipelinePointer _backgroundPipeline;
static const gpu::PipelinePointer& getKeyLightPipeline();
static const gpu::PipelinePointer& getAmbientPipeline();
static const gpu::PipelinePointer& getBackgroundPipeline();
};
#endif