diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index 16ce9985bf..2c04614a1c 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -579,6 +579,7 @@ public: signals: void spaceUpdate(std::pair data); + void requestRenderUpdate(); protected: QHash _changeHandlers; @@ -766,6 +767,8 @@ protected: QHash _grabActions; bool _cullWithParent { false }; + + mutable bool _needsRenderUpdate { false }; private: static std::function _getBillboardRotationOperator; diff --git a/libraries/render-utils/src/MeshPartPayload.cpp b/libraries/render-utils/src/MeshPartPayload.cpp index d7983bbe50..e82af5395f 100644 --- a/libraries/render-utils/src/MeshPartPayload.cpp +++ b/libraries/render-utils/src/MeshPartPayload.cpp @@ -189,7 +189,7 @@ void MeshPartPayload::render(RenderArgs* args) { if (!_drawMaterials.empty() && _drawMaterials.top().material && _drawMaterials.top().material->isProcedural() && _drawMaterials.top().material->isReady()) { - if (!(enableMaterialProceduralShaders && ENABLE_MATERIAL_PROCEDURAL_SHADERS)) { + if (!enableMaterialProceduralShaders) { return; } auto procedural = std::static_pointer_cast(_drawMaterials.top().material); diff --git a/libraries/render-utils/src/MeshPartPayload.h b/libraries/render-utils/src/MeshPartPayload.h index e7415c6b8d..ee205bd778 100644 --- a/libraries/render-utils/src/MeshPartPayload.h +++ b/libraries/render-utils/src/MeshPartPayload.h @@ -75,9 +75,12 @@ public: void setCullWithParent(bool value) { _cullWithParent = value; } + static bool enableMaterialProceduralShaders; + protected: render::ItemKey _itemKey{ render::ItemKey::Builder::opaqueShape().build() }; bool _cullWithParent { false }; + uint64_t _created; }; namespace render { diff --git a/libraries/render/src/render/Item.h b/libraries/render/src/render/Item.h index c94732eafe..3383101b5b 100644 --- a/libraries/render/src/render/Item.h +++ b/libraries/render/src/render/Item.h @@ -614,7 +614,7 @@ public: virtual ShapeKey getShapeKey() = 0; virtual Item::Bound getBound() = 0; virtual void render(RenderArgs* args) = 0; - virtual uint32_t metaFetchMetaSubItems(ItemIDs& subItems) = 0; + virtual uint32_t metaFetchMetaSubItems(ItemIDs& subItems) const = 0; }; template <> const ItemKey payloadGetKey(const PayloadProxyInterface::Pointer& payload);