mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 17:39:26 +02:00
show network and physics status on boxes and spheres
This commit is contained in:
parent
31ebe5dba1
commit
f07d5d9d3f
6 changed files with 13 additions and 9 deletions
|
@ -41,7 +41,7 @@ namespace render {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void makeEntityItemStatusGetters(EntityItem* entity, render::Item::Status::Getters& statusGetters) {
|
void makeEntityItemStatusGetters(EntityItemPointer entity, render::Item::Status::Getters& statusGetters) {
|
||||||
statusGetters.push_back([entity] () -> render::Item::Status::Value {
|
statusGetters.push_back([entity] () -> render::Item::Status::Value {
|
||||||
quint64 delta = usecTimestampNow() - entity->getLastEditedFromRemote();
|
quint64 delta = usecTimestampNow() - entity->getLastEditedFromRemote();
|
||||||
const float WAIT_THRESHOLD_INV = 1.0f / (0.2f * USECS_PER_SECOND);
|
const float WAIT_THRESHOLD_INV = 1.0f / (0.2f * USECS_PER_SECOND);
|
||||||
|
|
|
@ -25,6 +25,8 @@ enum class RenderItemStatusIcon {
|
||||||
NONE = 255
|
NONE = 255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void makeEntityItemStatusGetters(EntityItemPointer entity, render::Item::Status::Getters& statusGetters);
|
||||||
|
|
||||||
|
|
||||||
class RenderableEntityItemProxy {
|
class RenderableEntityItemProxy {
|
||||||
public:
|
public:
|
||||||
|
@ -50,6 +52,10 @@ public:
|
||||||
auto renderData = std::make_shared<RenderableEntityItemProxy>(self);
|
auto renderData = std::make_shared<RenderableEntityItemProxy>(self);
|
||||||
auto renderPayload = std::make_shared<RenderableEntityItemProxy::Payload>(renderData);
|
auto renderPayload = std::make_shared<RenderableEntityItemProxy::Payload>(renderData);
|
||||||
|
|
||||||
|
render::Item::Status::Getters statusGetters;
|
||||||
|
makeEntityItemStatusGetters(self, statusGetters);
|
||||||
|
renderPayload->addStatusGetters(statusGetters);
|
||||||
|
|
||||||
pendingChanges.resetItem(_myItem, renderPayload);
|
pendingChanges.resetItem(_myItem, renderPayload);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -72,6 +78,4 @@ private: \
|
||||||
SimpleRenderableEntityItem _renderHelper;
|
SimpleRenderableEntityItem _renderHelper;
|
||||||
|
|
||||||
|
|
||||||
void makeEntityItemStatusGetters(EntityItem* entity, render::Item::Status::Getters& statusGetters);
|
|
||||||
|
|
||||||
#endif // hifi_RenderableEntityItem_h
|
#endif // hifi_RenderableEntityItem_h
|
||||||
|
|
|
@ -192,7 +192,7 @@ bool RenderableModelEntityItem::addToScene(EntityItemPointer self, std::shared_p
|
||||||
|
|
||||||
if (_model) {
|
if (_model) {
|
||||||
render::Item::Status::Getters statusGetters;
|
render::Item::Status::Getters statusGetters;
|
||||||
makeEntityItemStatusGetters(this, statusGetters);
|
makeEntityItemStatusGetters(shared_from_this(), statusGetters);
|
||||||
|
|
||||||
// note: we don't care if the model fails to add items, we always added our meta item and therefore we return
|
// note: we don't care if the model fails to add items, we always added our meta item and therefore we return
|
||||||
// true so that the system knows our meta item is in the scene!
|
// true so that the system knows our meta item is in the scene!
|
||||||
|
@ -236,7 +236,7 @@ void RenderableModelEntityItem::render(RenderArgs* args) {
|
||||||
_model->removeFromScene(scene, pendingChanges);
|
_model->removeFromScene(scene, pendingChanges);
|
||||||
|
|
||||||
render::Item::Status::Getters statusGetters;
|
render::Item::Status::Getters statusGetters;
|
||||||
makeEntityItemStatusGetters(this, statusGetters);
|
makeEntityItemStatusGetters(shared_from_this(), statusGetters);
|
||||||
_model->addToScene(scene, pendingChanges, statusGetters, _showCollisionHull);
|
_model->addToScene(scene, pendingChanges, statusGetters, _showCollisionHull);
|
||||||
|
|
||||||
scene->enqueuePendingChanges(pendingChanges);
|
scene->enqueuePendingChanges(pendingChanges);
|
||||||
|
|
|
@ -140,7 +140,7 @@ bool RenderableParticleEffectEntityItem::addToScene(EntityItemPointer self,
|
||||||
auto renderData = ParticlePayload::Pointer(particlePayload);
|
auto renderData = ParticlePayload::Pointer(particlePayload);
|
||||||
auto renderPayload = render::PayloadPointer(new ParticlePayload::Payload(renderData));
|
auto renderPayload = render::PayloadPointer(new ParticlePayload::Payload(renderData));
|
||||||
render::Item::Status::Getters statusGetters;
|
render::Item::Status::Getters statusGetters;
|
||||||
makeEntityItemStatusGetters(this, statusGetters);
|
makeEntityItemStatusGetters(shared_from_this(), statusGetters);
|
||||||
renderPayload->addStatusGetters(statusGetters);
|
renderPayload->addStatusGetters(statusGetters);
|
||||||
pendingChanges.resetItem(_renderItemId, renderPayload);
|
pendingChanges.resetItem(_renderItemId, renderPayload);
|
||||||
_scene = scene;
|
_scene = scene;
|
||||||
|
|
|
@ -550,7 +550,7 @@ bool RenderablePolyVoxEntityItem::addToScene(EntityItemPointer self,
|
||||||
auto renderPayload = std::make_shared<PolyVoxPayload::Payload>(renderData);
|
auto renderPayload = std::make_shared<PolyVoxPayload::Payload>(renderData);
|
||||||
|
|
||||||
render::Item::Status::Getters statusGetters;
|
render::Item::Status::Getters statusGetters;
|
||||||
makeEntityItemStatusGetters(this, statusGetters);
|
makeEntityItemStatusGetters(shared_from_this(), statusGetters);
|
||||||
renderPayload->addStatusGetters(statusGetters);
|
renderPayload->addStatusGetters(statusGetters);
|
||||||
|
|
||||||
pendingChanges.resetItem(_myItem, renderPayload);
|
pendingChanges.resetItem(_myItem, renderPayload);
|
||||||
|
|
|
@ -115,7 +115,7 @@ void RenderableZoneEntityItem::render(RenderArgs* args) {
|
||||||
render::PendingChanges pendingChanges;
|
render::PendingChanges pendingChanges;
|
||||||
_model->removeFromScene(scene, pendingChanges);
|
_model->removeFromScene(scene, pendingChanges);
|
||||||
render::Item::Status::Getters statusGetters;
|
render::Item::Status::Getters statusGetters;
|
||||||
makeEntityItemStatusGetters(this, statusGetters);
|
makeEntityItemStatusGetters(shared_from_this(), statusGetters);
|
||||||
_model->addToScene(scene, pendingChanges, false);
|
_model->addToScene(scene, pendingChanges, false);
|
||||||
|
|
||||||
scene->enqueuePendingChanges(pendingChanges);
|
scene->enqueuePendingChanges(pendingChanges);
|
||||||
|
@ -209,7 +209,7 @@ bool RenderableZoneEntityItem::addToScene(EntityItemPointer self, std::shared_pt
|
||||||
auto renderPayload = std::make_shared<RenderableZoneEntityItemMeta::Payload>(renderData);
|
auto renderPayload = std::make_shared<RenderableZoneEntityItemMeta::Payload>(renderData);
|
||||||
|
|
||||||
render::Item::Status::Getters statusGetters;
|
render::Item::Status::Getters statusGetters;
|
||||||
makeEntityItemStatusGetters(this, statusGetters);
|
makeEntityItemStatusGetters(shared_from_this(), statusGetters);
|
||||||
renderPayload->addStatusGetters(statusGetters);
|
renderPayload->addStatusGetters(statusGetters);
|
||||||
|
|
||||||
pendingChanges.resetItem(_myMetaItem, renderPayload);
|
pendingChanges.resetItem(_myMetaItem, renderPayload);
|
||||||
|
|
Loading…
Reference in a new issue