diff --git a/libraries/entities-renderer/src/RenderableEntityItem.cpp b/libraries/entities-renderer/src/RenderableEntityItem.cpp index a1c5a5b432..ae56a8fc47 100644 --- a/libraries/entities-renderer/src/RenderableEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableEntityItem.cpp @@ -168,12 +168,12 @@ render::hifi::Layer EntityRenderer::getHifiRenderLayer() const { } ItemKey EntityRenderer::getKey() { - auto builder = ItemKey::Builder().withTypeShape().withTypeMeta().withTagBits(getTagMask()).withLayer(getHifiRenderLayer()); + ItemKey::Builder builder = + ItemKey::Builder().withTypeShape().withTypeMeta().withTagBits(getTagMask()).withLayer(getHifiRenderLayer()); + if (isTransparent()) { builder.withTransparent(); - } - - if (_canCastShadow) { + } else if (_canCastShadow) { builder.withShadowCaster(); } @@ -181,7 +181,11 @@ ItemKey EntityRenderer::getKey() { builder.withSubMetaCulled(); } - return builder.build(); + if (!_visible) { + builder.withInvisible(); + } + + return builder; } uint32_t EntityRenderer::metaFetchMetaSubItems(ItemIDs& subItems) const { diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index bbc9ff1991..cc215d3528 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -3030,10 +3030,10 @@ bool EntityItem::getCullWithParent() const { } void EntityItem::setCullWithParent(bool value) { - if (_cullWithParent != value) { + withWriteLock([&] { + _needsRenderUpdate |= _cullWithParent != value; _cullWithParent = value; - emit requestRenderUpdate(); - } + }); } bool EntityItem::isChildOfMyAvatar() const { diff --git a/libraries/entities/src/EntityItem.h b/libraries/entities/src/EntityItem.h index 2c04614a1c..14b8b259cc 100644 --- a/libraries/entities/src/EntityItem.h +++ b/libraries/entities/src/EntityItem.h @@ -579,7 +579,6 @@ public: signals: void spaceUpdate(std::pair data); - void requestRenderUpdate(); protected: QHash _changeHandlers;