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; }
30 ComponentMode getFadeOutMode()
const override {
return ComponentMode::COMPONENT_MODE_DISABLED; }
33 virtual void doRender(
RenderArgs* args)
override;
34 virtual bool isTransparent()
const override;
36 virtual void doRenderUpdateSynchronousTyped(
const ScenePointer& scene, Transaction& transaction,
const TypedEntityPointer& entity)
override;
37 virtual void doRenderUpdateAsynchronousTyped(
const TypedEntityPointer& entity)
override;
39 Item::Bound getBound(
RenderArgs* args)
override;
40 ShapeKey getShapeKey()
override;
43 gpu::TexturePointer _texture;
44 int _geometryId { 0 };
45 bool _unlit {
false };
46 bool _transparent {
false };
47 PulsePropertyGroup _pulseProperties;
49 std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };