fix tablet not disappearing

This commit is contained in:
SamGondelman 2018-06-07 16:35:22 -07:00
parent 1646f543cd
commit c7007c089f

View file

@ -100,24 +100,32 @@ void ModelOverlay::update(float deltatime) {
processMaterials(); processMaterials();
emit DependencyManager::get<scriptable::ModelProviderFactory>()->modelAddedToScene(getID(), NestableType::Overlay, _model); emit DependencyManager::get<scriptable::ModelProviderFactory>()->modelAddedToScene(getID(), NestableType::Overlay, _model);
} }
bool metaDirty = false;
if (_visibleDirty) { if (_visibleDirty) {
_visibleDirty = false; _visibleDirty = false;
// don't show overlays in mirrors or spectator-cam unless _isVisibleInSecondaryCamera is true // don't show overlays in mirrors or spectator-cam unless _isVisibleInSecondaryCamera is true
uint8_t modelRenderTagMask = (_isVisibleInSecondaryCamera ? render::hifi::TAG_ALL_VIEWS : render::hifi::TAG_MAIN_VIEW); uint8_t modelRenderTagMask = (_isVisibleInSecondaryCamera ? render::hifi::TAG_ALL_VIEWS : render::hifi::TAG_MAIN_VIEW);
_model->setTagMask(modelRenderTagMask, scene); _model->setTagMask(modelRenderTagMask, scene);
_model->setVisibleInScene(getVisible(), scene); _model->setVisibleInScene(getVisible(), scene);
metaDirty = true;
} }
if (_drawInFrontDirty) { if (_drawInFrontDirty) {
_drawInFrontDirty = false; _drawInFrontDirty = false;
_model->setLayeredInFront(getDrawInFront(), scene); _model->setLayeredInFront(getDrawInFront(), scene);
metaDirty = true;
} }
if (_drawInHUDDirty) { if (_drawInHUDDirty) {
_drawInHUDDirty = false; _drawInHUDDirty = false;
_model->setLayeredInHUD(getDrawHUDLayer(), scene); _model->setLayeredInHUD(getDrawHUDLayer(), scene);
metaDirty = true;
} }
if (_groupCulledDirty) { if (_groupCulledDirty) {
_groupCulledDirty = false; _groupCulledDirty = false;
_model->setGroupCulled(_isGroupCulled); _model->setGroupCulled(_isGroupCulled, scene);
metaDirty = true;
}
if (metaDirty) {
transaction.updateItem<Overlay>(getRenderItemID(), [](Overlay& data) {});
} }
scene->enqueueTransaction(transaction); scene->enqueueTransaction(transaction);