Overte C++ Documentation
RenderableLightEntityItem.h
1 //
2 // RenderableLightEntityItem.h
3 // interface/src/entities
4 //
5 // Created by Brad Hefta-Gaub on 8/6/14.
6 // Copyright 2014 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef hifi_RenderableLightEntityItem_h
13 #define hifi_RenderableLightEntityItem_h
14 
15 #include "RenderableEntityItem.h"
16 #include <LightEntityItem.h>
17 #include <LightPayload.h>
18 
19 namespace render { namespace entities {
20 
21 class LightEntityRenderer final : public TypedEntityRenderer<LightEntityItem> {
22  using Parent = TypedEntityRenderer<LightEntityItem>;
23  friend class EntityRenderer;
24 
25 public:
26  LightEntityRenderer(const EntityItemPointer& entity) : Parent(entity) { }
27 
28 protected:
29  virtual void doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) override;
30 
31  virtual ItemKey getKey() override;
32  virtual Item::Bound getBound(RenderArgs* args) override;
33  virtual void doRender(RenderArgs* args) override;
34 
35 private:
36  const LightPayload::Pointer _lightPayload{ std::make_shared<LightPayload>() };
37 };
38 
39 } } // namespace
40 
41 #endif // hifi_RenderableLightEntityItem_h