mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 02:19:58 +02:00
improvment ?
This commit is contained in:
parent
8d8a902328
commit
bf052162bb
2 changed files with 16 additions and 24 deletions
|
@ -167,6 +167,17 @@ namespace render {
|
|||
}
|
||||
}
|
||||
|
||||
void makeEntityItemStatusGetters(RenderableModelEntityItem* entity, render::Item::Status::Getters& statusGetters) {
|
||||
statusGetters.push_back([entity] () -> render::Item::Status::Value {
|
||||
quint64 delta = usecTimestampNow() - entity->getLastEditedFromRemote();
|
||||
return render::Item::Status::Value((delta / (0.01f * USECS_PER_SECOND)), 1.0f);
|
||||
});
|
||||
statusGetters.push_back([entity] () -> render::Item::Status::Value {
|
||||
quint64 delta = usecTimestampNow() - entity->getLastBroadcast();
|
||||
return render::Item::Status::Value((delta / (0.02f * USECS_PER_SECOND)), 0.5f);
|
||||
});
|
||||
}
|
||||
|
||||
bool RenderableModelEntityItem::addToScene(EntityItemPointer self, std::shared_ptr<render::Scene> scene,
|
||||
render::PendingChanges& pendingChanges) {
|
||||
_myMetaItem = scene->allocateID();
|
||||
|
@ -177,20 +188,9 @@ bool RenderableModelEntityItem::addToScene(EntityItemPointer self, std::shared_p
|
|||
pendingChanges.resetItem(_myMetaItem, renderPayload);
|
||||
|
||||
if (_model) {
|
||||
// return _model->addToScene(scene, pendingChanges);
|
||||
|
||||
render::Item::Status::Getters statusGetters;
|
||||
statusGetters.push_back([this] () -> render::Item::Status::Value {
|
||||
quint64 delta = usecTimestampNow() - this->getLastEditedFromRemote();
|
||||
return render::Item::Status::Value((delta < 0.1f * USECS_PER_SECOND), 1.0f);
|
||||
});
|
||||
statusGetters.push_back([this] () -> render::Item::Status::Value {
|
||||
quint64 delta = usecTimestampNow() - this->getLastBroadcast();
|
||||
return render::Item::Status::Value((delta < 0.2f * USECS_PER_SECOND), 0.5f);
|
||||
});
|
||||
|
||||
makeEntityItemStatusGetters(this, statusGetters);
|
||||
return _model->addToScene(scene, pendingChanges, statusGetters);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -227,17 +227,9 @@ void RenderableModelEntityItem::render(RenderArgs* args) {
|
|||
render::PendingChanges pendingChanges;
|
||||
if (_model->needsFixupInScene()) {
|
||||
_model->removeFromScene(scene, pendingChanges);
|
||||
|
||||
render::Item::Status::Getters statusGetters;
|
||||
statusGetters.push_back([this] () -> render::Item::Status::Value {
|
||||
quint64 delta = usecTimestampNow() - this->getLastEditedFromRemote();
|
||||
return render::Item::Status::Value((delta < 0.1f * USECS_PER_SECOND), 1.0f);
|
||||
});
|
||||
statusGetters.push_back([this] () -> render::Item::Status::Value {
|
||||
quint64 delta = usecTimestampNow() - this->getLastBroadcast();
|
||||
return render::Item::Status::Value((delta < 0.2f * USECS_PER_SECOND), 0.5f);
|
||||
});
|
||||
|
||||
render::Item::Status::Getters statusGetters;
|
||||
makeEntityItemStatusGetters(this, statusGetters);
|
||||
_model->addToScene(scene, pendingChanges, statusGetters);
|
||||
}
|
||||
scene->enqueuePendingChanges(pendingChanges);
|
||||
|
|
|
@ -40,7 +40,7 @@ vec3 paintRainbow(float nv) {
|
|||
return vec3(1.f, 1.f, 1.f);
|
||||
}
|
||||
|
||||
vec2 unpackStatus(uint v) {
|
||||
vec2 unpackStatus(int v) {
|
||||
// return unpackSnorm2x16(uint(packed));
|
||||
return vec2(clamp((float(v & 0xFFFF) - 32727.0) / 32727.0, -1.0, 1.0),
|
||||
clamp((float((v >> 16) & 0xFFFF) - 32727.0) / 32727.0, -1.0, 1.0));
|
||||
|
@ -76,7 +76,7 @@ void main(void) {
|
|||
}
|
||||
|
||||
// unpack to get x and y satus
|
||||
vec2 iconStatus = unpackStatus(uint(inStatus[iconNum]));
|
||||
vec2 iconStatus = unpackStatus(inStatus[iconNum]);
|
||||
|
||||
// Use the status for showing a color
|
||||
varColor = vec4(paintRainbow(abs(iconStatus.y)), 1.0);
|
||||
|
|
Loading…
Reference in a new issue