12 #ifndef hifi_render_utils_HazeStage_h
13 #define hifi_render_utils_HazeStage_h
15 #include <graphics/Haze.h>
16 #include <render/Stage.h>
17 #include <render/StageSetup.h>
20 class HazeStage :
public render::PointerStage<graphics::Haze, graphics::HazePointer> {};
21 using HazeStagePointer = std::shared_ptr<HazeStage>;
23 class HazeStageSetup :
public render::StageSetup<HazeStage> {
25 using JobModel = render::Job::Model<HazeStageSetup>;
28 class FetchHazeConfig :
public render::Job::Config {
31 Q_PROPERTY(glm::vec3 hazeColor MEMBER hazeColor WRITE setHazeColor NOTIFY dirty);
32 Q_PROPERTY(
float hazeGlareAngle MEMBER hazeGlareAngle WRITE setHazeGlareAngle NOTIFY dirty);
34 Q_PROPERTY(glm::vec3 hazeGlareColor MEMBER hazeGlareColor WRITE setHazeGlareColor NOTIFY dirty);
35 Q_PROPERTY(
float hazeBaseReference MEMBER hazeBaseReference WRITE setHazeBaseReference NOTIFY dirty);
37 Q_PROPERTY(
bool isHazeActive MEMBER isHazeActive WRITE setHazeActive NOTIFY dirty);
38 Q_PROPERTY(
bool isAltitudeBased MEMBER isAltitudeBased WRITE setAltitudeBased NOTIFY dirty);
39 Q_PROPERTY(
bool isHazeAttenuateKeyLight MEMBER isHazeAttenuateKeyLight WRITE setHazeAttenuateKeyLight NOTIFY dirty);
40 Q_PROPERTY(
bool isModulateColorActive MEMBER isModulateColorActive WRITE setModulateColorActive NOTIFY dirty);
41 Q_PROPERTY(
bool isHazeEnableGlare MEMBER isHazeEnableGlare WRITE setHazeEnableGlare NOTIFY dirty);
43 Q_PROPERTY(
float hazeRange MEMBER hazeRange WRITE setHazeRange NOTIFY dirty);
44 Q_PROPERTY(
float hazeHeight MEMBER hazeHeight WRITE setHazeAltitude NOTIFY dirty);
46 Q_PROPERTY(
float hazeKeyLightRange MEMBER hazeKeyLightRange WRITE setHazeKeyLightRange NOTIFY dirty);
47 Q_PROPERTY(
float hazeKeyLightAltitude MEMBER hazeKeyLightAltitude WRITE setHazeKeyLightAltitude NOTIFY dirty);
49 Q_PROPERTY(
float hazeBackgroundBlend MEMBER hazeBackgroundBlend WRITE setHazeBackgroundBlend NOTIFY dirty);
52 FetchHazeConfig() : render::Job::Config() {}
54 glm::vec3 hazeColor{ graphics::Haze::INITIAL_HAZE_COLOR };
55 float hazeGlareAngle{ graphics::Haze::INITIAL_HAZE_GLARE_ANGLE };
57 glm::vec3 hazeGlareColor{ graphics::Haze::INITIAL_HAZE_GLARE_COLOR };
58 float hazeBaseReference{ graphics::Haze::INITIAL_HAZE_BASE_REFERENCE };
60 bool isHazeActive{
false };
61 bool isAltitudeBased{
false };
62 bool isHazeAttenuateKeyLight{
false };
63 bool isModulateColorActive{
false };
64 bool isHazeEnableGlare{
false };
66 float hazeRange{ graphics::Haze::INITIAL_HAZE_RANGE };
67 float hazeHeight{ graphics::Haze::INITIAL_HAZE_HEIGHT };
69 float hazeKeyLightRange{ graphics::Haze::INITIAL_KEY_LIGHT_RANGE };
70 float hazeKeyLightAltitude{ graphics::Haze::INITIAL_KEY_LIGHT_ALTITUDE };
72 float hazeBackgroundBlend{ graphics::Haze::INITIAL_HAZE_BACKGROUND_BLEND };
75 void setHazeColor(
const glm::vec3 value) { hazeColor = value; emit dirty(); }
76 void setHazeGlareAngle(
const float value) { hazeGlareAngle = value; emit dirty(); }
78 void setHazeGlareColor(
const glm::vec3 value) { hazeGlareColor = value; emit dirty(); }
79 void setHazeBaseReference(
const float value) { hazeBaseReference = value; ; emit dirty(); }
81 void setHazeActive(
const bool active) { isHazeActive = active; emit dirty(); }
82 void setAltitudeBased(
const bool active) { isAltitudeBased = active; emit dirty(); }
83 void setHazeAttenuateKeyLight(
const bool active) { isHazeAttenuateKeyLight = active; emit dirty(); }
84 void setModulateColorActive(
const bool active) { isModulateColorActive = active; emit dirty(); }
85 void setHazeEnableGlare(
const bool active) { isHazeEnableGlare = active; emit dirty(); }
87 void setHazeRange(
const float value) { hazeRange = value; emit dirty(); }
88 void setHazeAltitude(
const float value) { hazeHeight = value; emit dirty(); }
90 void setHazeKeyLightRange(
const float value) { hazeKeyLightRange = value; emit dirty(); }
91 void setHazeKeyLightAltitude(
const float value) { hazeKeyLightAltitude = value; emit dirty(); }
93 void setHazeBackgroundBlend(
const float value) { hazeBackgroundBlend = value; ; emit dirty(); }