This commit is contained in:
SamGondelman 2017-12-20 14:18:01 -08:00
parent bd06dc6443
commit 2ba3e337db
4 changed files with 24 additions and 22 deletions

View file

@ -209,9 +209,9 @@ void CauterizedModel::updateRenderItems() {
}
data.updateTransformForCauterizedMesh(renderTransform);
data.setKey(data.evalKey(isVisible, isLayeredInFront, isLayeredInHUD));
data.setLayer(data.evalLayer(isLayeredInFront, isLayeredInHUD));
data.setShapeKey(invalidatePayloadShapeKey ? render::ShapeKey::Builder::invalid() : data.evalShapeKey(isWireframe));
data.setKey(isVisible, isLayeredInFront || isLayeredInHUD);
data.setLayer(isLayeredInFront, isLayeredInHUD);
data.setShapeKey(invalidatePayloadShapeKey, isWireframe);
});
}

View file

@ -386,7 +386,7 @@ void ModelMeshPartPayload::updateTransformForSkinnedMesh(const Transform& render
_worldBound.transform(boundTransform);
}
render::ItemKey ModelMeshPartPayload::evalKey(bool isVisible, bool isLayeredInFront, bool isLayeredInHUD) const {
void ModelMeshPartPayload::setKey(bool isVisible, bool isLayered) {
ItemKey::Builder builder;
builder.withTypeShape();
@ -394,7 +394,7 @@ render::ItemKey ModelMeshPartPayload::evalKey(bool isVisible, bool isLayeredInFr
builder.withInvisible();
}
if (isLayeredInFront || isLayeredInHUD) {
if (isLayered) {
builder.withLayered();
}
@ -409,20 +409,20 @@ render::ItemKey ModelMeshPartPayload::evalKey(bool isVisible, bool isLayeredInFr
}
}
return builder.build();
_itemKey = builder.build();
}
ItemKey ModelMeshPartPayload::getKey() const {
return _itemKey;
}
int ModelMeshPartPayload::evalLayer(bool isLayeredInFront, bool isLayeredInHUD) const {
void ModelMeshPartPayload::setLayer(bool isLayeredInFront, bool isLayeredInHUD) {
if (isLayeredInFront) {
return Item::LAYER_3D_FRONT;
_layer = Item::LAYER_3D_FRONT;
} else if (isLayeredInHUD) {
return Item::LAYER_3D_HUD;
_layer = Item::LAYER_3D_HUD;
} else {
return Item::LAYER_3D;
_layer = Item::LAYER_3D;
}
}
@ -430,7 +430,12 @@ int ModelMeshPartPayload::getLayer() const {
return _layer;
}
ShapeKey ModelMeshPartPayload::evalShapeKey(bool isWireframe) const {
void ModelMeshPartPayload::setShapeKey(bool invalidateShapeKey, bool isWireframe) {
if (invalidateShapeKey) {
_shapeKey = ShapeKey::Builder::invalid();
return;
}
model::MaterialKey drawMaterialKey;
if (_drawMaterial) {
drawMaterialKey = _drawMaterial->getKey();
@ -472,7 +477,7 @@ ShapeKey ModelMeshPartPayload::evalShapeKey(bool isWireframe) const {
if (isWireframe) {
builder.withWireframe();
}
return builder.build();
_shapeKey = builder.build();
}
ShapeKey ModelMeshPartPayload::getShapeKey() const {

View file

@ -96,12 +96,9 @@ public:
render::ShapeKey getShapeKey() const override; // shape interface
void render(RenderArgs* args) override;
render::ItemKey evalKey(bool isVisible, bool isLayeredInFront, bool isLayeredInHUD) const;
void setKey(const render::ItemKey& itemKey) { _itemKey = itemKey; }
int evalLayer(bool isLayeredInFront, bool isLayeredInHUD) const;
void setLayer(int layer) { _layer = layer; }
render::ShapeKey evalShapeKey(bool isWireframe) const;
void setShapeKey(const render::ShapeKey& shapeKey) { _shapeKey = shapeKey; };
void setKey(bool isVisible, bool isLayered);
void setLayer(bool isLayeredInFront, bool isLayeredInHUD);
void setShapeKey(bool invalidateShapeKey, bool isWireframe);
// ModelMeshPartPayload functions to perform render
void bindMesh(gpu::Batch& batch) override;
@ -123,8 +120,8 @@ private:
void initCache(const ModelPointer& model);
render::ItemKey _itemKey { render::ItemKey::Builder::opaqueShape().build() };
int _layer { render::Item::LAYER_3D };
render::ShapeKey _shapeKey { render::ShapeKey::Builder::invalid() };
int _layer { render::Item::LAYER_3D };
};
namespace render {

View file

@ -278,9 +278,9 @@ void Model::updateRenderItems() {
}
data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
data.setKey(data.evalKey(isVisible, isLayeredInFront, isLayeredInHUD));
data.setLayer(data.evalLayer(isLayeredInFront, isLayeredInHUD));
data.setShapeKey(invalidatePayloadShapeKey ? render::ShapeKey::Builder::invalid() : data.evalShapeKey(isWireframe));
data.setKey(isVisible, isLayeredInFront || isLayeredInHUD);
data.setLayer(isLayeredInFront, isLayeredInHUD);
data.setShapeKey(invalidatePayloadShapeKey, isWireframe);
});
}