mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 22:51:20 +02:00
Reuse procedurals on entities
This commit is contained in:
parent
2b576e86f0
commit
40fbe2d1e5
2 changed files with 7 additions and 4 deletions
|
@ -31,7 +31,9 @@ EntityItemPointer RenderableBoxEntityItem::factory(const EntityItemID& entityID,
|
||||||
void RenderableBoxEntityItem::setUserData(const QString& value) {
|
void RenderableBoxEntityItem::setUserData(const QString& value) {
|
||||||
if (value != getUserData()) {
|
if (value != getUserData()) {
|
||||||
BoxEntityItem::setUserData(value);
|
BoxEntityItem::setUserData(value);
|
||||||
_procedural.reset();
|
if (_procedural) {
|
||||||
|
_procedural->parse(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +42,6 @@ void RenderableBoxEntityItem::render(RenderArgs* args) {
|
||||||
Q_ASSERT(getType() == EntityTypes::Box);
|
Q_ASSERT(getType() == EntityTypes::Box);
|
||||||
Q_ASSERT(args->_batch);
|
Q_ASSERT(args->_batch);
|
||||||
|
|
||||||
|
|
||||||
if (!_procedural) {
|
if (!_procedural) {
|
||||||
_procedural.reset(new Procedural(this->getUserData()));
|
_procedural.reset(new Procedural(this->getUserData()));
|
||||||
_procedural->_vertexSource = simple_vert;
|
_procedural->_vertexSource = simple_vert;
|
||||||
|
@ -62,7 +63,7 @@ void RenderableBoxEntityItem::render(RenderArgs* args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
batch.setModelTransform(transToCenter); // we want to include the scale as well
|
batch.setModelTransform(transToCenter); // we want to include the scale as well
|
||||||
if (_procedural && _procedural->ready()) {
|
if (_procedural->ready()) {
|
||||||
_procedural->prepare(batch, getPosition(), getDimensions());
|
_procedural->prepare(batch, getPosition(), getDimensions());
|
||||||
auto color = _procedural->getColor(cubeColor);
|
auto color = _procedural->getColor(cubeColor);
|
||||||
batch._glColor4f(color.r, color.g, color.b, color.a);
|
batch._glColor4f(color.r, color.g, color.b, color.a);
|
||||||
|
|
|
@ -36,7 +36,9 @@ EntityItemPointer RenderableSphereEntityItem::factory(const EntityItemID& entity
|
||||||
void RenderableSphereEntityItem::setUserData(const QString& value) {
|
void RenderableSphereEntityItem::setUserData(const QString& value) {
|
||||||
if (value != getUserData()) {
|
if (value != getUserData()) {
|
||||||
SphereEntityItem::setUserData(value);
|
SphereEntityItem::setUserData(value);
|
||||||
_procedural.reset();
|
if (_procedural) {
|
||||||
|
_procedural->parse(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue