10 #ifndef hifi_RenderableCanvasEntityItem_h
11 #define hifi_RenderableCanvasEntityItem_h
13 #include "RenderableEntityItem.h"
14 #include <CanvasEntityItem.h>
15 #include <procedural/Procedural.h>
17 namespace render {
namespace entities {
19 class CanvasEntityRenderer :
public TypedEntityRenderer<CanvasEntityItem> {
21 using Parent = TypedEntityRenderer<CanvasEntityItem>;
22 friend class EntityRenderer;
25 CanvasEntityRenderer(
const EntityItemPointer& entity);
26 ~CanvasEntityRenderer();
28 gpu::TexturePointer getTexture()
override {
return _texture; }
31 virtual void doRender(RenderArgs* args)
override;
32 virtual bool isTransparent()
const override;
34 virtual void doRenderUpdateSynchronousTyped(
const ScenePointer& scene, Transaction& transaction,
const TypedEntityPointer& entity)
override;
35 virtual void doRenderUpdateAsynchronousTyped(
const TypedEntityPointer& entity)
override;
37 Item::Bound getBound(RenderArgs* args)
override;
38 ShapeKey getShapeKey()
override;
41 gpu::TexturePointer _texture;
42 int _geometryId { 0 };
43 bool _unlit {
false };
44 bool _transparent {
false };
45 PulsePropertyGroup _pulseProperties;
47 std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };