From 9a866a129d4bc1c3298156055e4570e8fa6b7fb2 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Wed, 10 Jul 2019 10:20:27 -0700 Subject: [PATCH 1/2] fix text visibility toggle --- .../src/RenderableEntityItem.cpp | 15 ++++++++++----- .../src/RenderableTextEntityItem.cpp | 15 +-------------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableEntityItem.cpp b/libraries/entities-renderer/src/RenderableEntityItem.cpp index f8bd6f8ce1..4320e72389 100644 --- a/libraries/entities-renderer/src/RenderableEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableEntityItem.cpp @@ -173,16 +173,21 @@ render::hifi::Layer EntityRenderer::getHifiRenderLayer() const { } ItemKey EntityRenderer::getKey() { + ItemKey::Builder builder = ItemKey::Builder().withTypeShape().withTypeMeta().withTagBits(getTagMask()).withLayer(getHifiRenderLayer()); + if (isTransparent()) { - return ItemKey::Builder::transparentShape().withTypeMeta().withTagBits(getTagMask()).withLayer(getHifiRenderLayer()); + builder.withTransparent(); } - // This allows shapes to cast shadows if (_canCastShadow) { - return ItemKey::Builder::opaqueShape().withTypeMeta().withTagBits(getTagMask()).withShadowCaster().withLayer(getHifiRenderLayer()); - } else { - return ItemKey::Builder::opaqueShape().withTypeMeta().withTagBits(getTagMask()).withLayer(getHifiRenderLayer()); + builder.withShadowCaster(); } + + if (!_visible) { + builder.withInvisible(); + } + + return builder; } uint32_t EntityRenderer::metaFetchMetaSubItems(ItemIDs& subItems) const { diff --git a/libraries/entities-renderer/src/RenderableTextEntityItem.cpp b/libraries/entities-renderer/src/RenderableTextEntityItem.cpp index 146b9861dc..0ead1de71a 100644 --- a/libraries/entities-renderer/src/RenderableTextEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableTextEntityItem.cpp @@ -282,20 +282,7 @@ ItemKey entities::TextPayload::getKey() const { auto renderable = entityTreeRenderer->renderableForEntityId(_entityID); if (renderable) { auto textRenderable = std::static_pointer_cast(renderable); - ItemKey::Builder key; - // Similar to EntityRenderer::getKey() - if (textRenderable->isTextTransparent()) { - key = ItemKey::Builder::transparentShape().withSubMetaCulled().withTagBits(textRenderable->getTagMask()).withLayer(textRenderable->getHifiRenderLayer()); - } else if (textRenderable->_canCastShadow) { - key = ItemKey::Builder::opaqueShape().withSubMetaCulled().withTagBits(textRenderable->getTagMask()).withShadowCaster().withLayer(textRenderable->getHifiRenderLayer()); - } else { - key = ItemKey::Builder::opaqueShape().withSubMetaCulled().withTagBits(textRenderable->getTagMask()).withLayer(textRenderable->getHifiRenderLayer()); - } - - if (!textRenderable->_visible) { - key.withInvisible(); - } - return key; + return ItemKey::Builder(textRenderable->getKey()).withoutMetaCullGroup().withSubMetaCulled(); } } return ItemKey::Builder::opaqueShape(); From a64d307bdf086538d6834d77f4146e6f5e8fbf35 Mon Sep 17 00:00:00 2001 From: Sam Gondelman Date: Wed, 10 Jul 2019 14:21:56 -0700 Subject: [PATCH 2/2] make sure we don't have transparent shadow casters --- libraries/entities-renderer/src/RenderableEntityItem.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libraries/entities-renderer/src/RenderableEntityItem.cpp b/libraries/entities-renderer/src/RenderableEntityItem.cpp index 4320e72389..11e369b532 100644 --- a/libraries/entities-renderer/src/RenderableEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableEntityItem.cpp @@ -177,9 +177,7 @@ ItemKey EntityRenderer::getKey() { if (isTransparent()) { builder.withTransparent(); - } - - if (_canCastShadow) { + } else if (_canCastShadow) { builder.withShadowCaster(); }