Making it work maybe

This commit is contained in:
samcake 2018-01-25 16:57:35 -08:00
parent ae6a95ec0d
commit 2f4e61888f
6 changed files with 15 additions and 19 deletions

View file

@ -106,7 +106,7 @@ private:
bool _jointMappingCompleted { false }; bool _jointMappingCompleted { false };
QVector<int> _jointMapping; // domain is index into model-joints, range is index into animation-joints QVector<int> _jointMapping; // domain is index into model-joints, range is index into animation-joints
bool _visibleDirty { false }; bool _visibleDirty { true };
bool _drawInFrontDirty { false }; bool _drawInFrontDirty { false };
bool _drawInHUDDirty { false }; bool _drawInHUDDirty { false };

View file

@ -46,9 +46,9 @@ namespace render {
} }
if (overlay->getVisible()) { if (overlay->getVisible()) {
builder.withViewVisibilityMask(render::ItemKey::VISIBLE_MASK_0); // don't draw overlays in mirror builder.withVisibilityMask(render::ItemKey::VISIBLE_MASK_0); // don't draw overlays in mirror
} else { } else {
builder.withViewVisibilityMask(render::ItemKey::VISIBLE_MASK_NONE); builder.withVisibilityMask(render::ItemKey::VISIBLE_MASK_NONE);
} }
return builder.build(); return builder.build();

View file

@ -1334,8 +1334,8 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
entity->stopModelOverrideIfNoParent(); entity->stopModelOverrideIfNoParent();
uint32_t viewVisiblityMask = _cauterized ? uint32_t viewVisiblityMask = _cauterized ?
render::ItemKey::VISIBLE_MASK_0 : // draw in every view except the main one (view zero) render::ItemKey::VISIBLE_MASK_1 : // draw in every view except the main one (view zero)
render::ItemKey::VISIBLE_MASK_NONE; // draw in all views render::ItemKey::VISIBLE_MASK_ALL; // draw in all views
if (model->isVisible() != _visible || model->getViewVisibilityMask() != viewVisiblityMask) { if (model->isVisible() != _visible || model->getViewVisibilityMask() != viewVisiblityMask) {
// FIXME: this seems like it could be optimized if we tracked our last known visible state in // FIXME: this seems like it could be optimized if we tracked our last known visible state in

View file

@ -247,7 +247,7 @@ void CauterizedModel::updateRenderItems() {
data.updateTransformForCauterizedMesh(renderTransform); data.updateTransformForCauterizedMesh(renderTransform);
data.setEnableCauterization(enableCauterization); data.setEnableCauterization(enableCauterization);
data.setKey(isVisible, isLayeredInFront || isLayeredInHUD, render::ItemKey::VISIBLE_MASK_NONE); data.setKey(isVisible, isLayeredInFront || isLayeredInHUD, render::ItemKey::VISIBLE_MASK_ALL);
data.setLayer(isLayeredInFront, isLayeredInHUD); data.setLayer(isLayeredInFront, isLayeredInHUD);
data.setShapeKey(invalidatePayloadShapeKey, isWireframe); data.setShapeKey(invalidatePayloadShapeKey, isWireframe);
}); });

View file

@ -396,7 +396,7 @@ void ModelMeshPartPayload::setKey(bool isVisible, bool isLayered, uint8_t viewVi
if (!isVisible) { if (!isVisible) {
builder.withInvisible(); builder.withInvisible();
} else { } else {
builder.withViewVisibilityMask(viewVisiblityMask); builder.withVisibilityMask(viewVisiblityMask);
} }
if (isLayered) { if (isLayered) {

View file

@ -119,18 +119,14 @@ public:
} }
return (*this); return (*this);
} }
Builder& withViewVisibilityMask(uint8_t mask) { Builder& withVisibilityMask(uint8_t mask) {
if (mask & render::ItemKey::VISIBLE_MASK_0) { for (int i = 0; i < ItemKey::NUM_VISIBLE_MASK_INDICES; i++) {
_flags.reset(INVISIBLE0); if ((1 << i) & mask) {
withVisible(i);
} }
if (mask & render::ItemKey::VISIBLE_MASK_1) { else {
_flags.reset(INVISIBLE1); withInvisible(i);
} }
if (mask & render::ItemKey::VISIBLE_MASK_2) {
_flags.reset(INVISIBLE2);
}
if (mask & render::ItemKey::VISIBLE_MASK_3) {
_flags.reset(INVISIBLE3);
} }
return (*this); return (*this);
} }