11 #ifndef hifi_RenderableImageEntityItem_h
12 #define hifi_RenderableImageEntityItem_h
14 #include "RenderableEntityItem.h"
16 #include <ImageEntityItem.h>
18 #include <GeometryCache.h>
19 #include <procedural/Procedural.h>
21 namespace render {
namespace entities {
23 class ImageEntityRenderer :
public TypedEntityRenderer<ImageEntityItem> {
24 using Parent = TypedEntityRenderer<ImageEntityItem>;
25 using Pointer = std::shared_ptr<ImageEntityRenderer>;
27 ImageEntityRenderer(
const EntityItemPointer& entity);
28 ~ImageEntityRenderer();
30 gpu::TexturePointer getTexture()
override {
return _texture ? _texture->getGPUTexture() :
nullptr; }
33 Item::Bound getBound(RenderArgs* args)
override;
34 ShapeKey getShapeKey()
override;
36 bool isTransparent()
const override;
39 virtual bool needsRenderUpdate()
const override;
40 virtual void doRenderUpdateSynchronousTyped(
const ScenePointer& scene, Transaction& transaction,
const TypedEntityPointer& entity)
override;
41 virtual void doRenderUpdateAsynchronousTyped(
const TypedEntityPointer& entity)
override;
42 virtual void doRender(RenderArgs* args)
override;
45 NetworkTexturePointer _texture;
46 bool _textureIsLoaded {
false };
48 bool _emissive {
false };
49 bool _keepAspectRatio {
false };
52 std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };
53 glm::vec3 _color { NAN };
56 PulsePropertyGroup _pulseProperties;
58 FadeBuffers _fadeBuffers;
60 int _geometryId { 0 };