Overte C++ Documentation
FadeEffect.h
1 //
2 // FadeEffect.h
3 
4 // Created by Olivier Prat on 17/07/2017.
5 // Copyright 2017 High Fidelity, Inc.
6 //
7 // Distributed under the Apache License, Version 2.0.
8 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
9 //
10 
11 #ifndef hifi_render_utils_FadeEffect_h
12 #define hifi_render_utils_FadeEffect_h
13 
14 #include <DependencyManager.h>
15 #include <render/Engine.h>
16 
17 class FadeEffect : public Dependency {
18  SINGLETON_DEPENDENCY;
19 
20 public:
21 
22  void build(render::Task::TaskConcept& task, const task::Varying& editableItems);
23 
24  render::ShapePipeline::BatchSetter getBatchSetter() const;
25  render::ShapePipeline::ItemSetter getItemUniformSetter() const;
26  render::ShapePipeline::ItemSetter getItemStoredSetter();
27 
28  int getLastCategory() const { return _lastCategory; }
29  float getLastThreshold() const { return _lastThreshold; }
30  const glm::vec3& getLastNoiseOffset() const { return _lastNoiseOffset; }
31  const glm::vec3& getLastBaseOffset() const { return _lastBaseOffset; }
32  const glm::vec3& getLastBaseInvSize() const { return _lastBaseInvSize; }
33 
34  static void packToAttributes(const int category, const float threshold, const glm::vec3& noiseOffset,
35  const glm::vec3& baseOffset, const glm::vec3& baseInvSize,
36  glm::vec4& packedData1, glm::vec4& packedData2, glm::vec4& packedData3);
37 
38 private:
39 
40  gpu::BufferView _configurations;
41  gpu::TexturePointer _maskMap;
42 
43  // The last fade set through the stored item setter
44  int _lastCategory { 0 };
45  float _lastThreshold { 0.f };
46  glm::vec3 _lastNoiseOffset { 0.f, 0.f, 0.f };
47  glm::vec3 _lastBaseOffset { 0.f, 0.f, 0.f };
48  glm::vec3 _lastBaseInvSize { 1.f, 1.f, 1.f };
49 
50  explicit FadeEffect();
51  virtual ~FadeEffect() { }
52 
53 };
54 #endif // hifi_render_utils_FadeEffect_h