3
0
Fork 0
mirror of https://github.com/JulianGro/overte.git synced 2025-04-13 01:42:44 +02:00

Reuse procedurals on entities

This commit is contained in:
Zach Pomerantz 2016-03-09 17:33:07 -08:00
parent 2b576e86f0
commit 40fbe2d1e5
2 changed files with 7 additions and 4 deletions

View file

@ -31,7 +31,9 @@ EntityItemPointer RenderableBoxEntityItem::factory(const EntityItemID& entityID,
void RenderableBoxEntityItem::setUserData(const QString& value) {
if (value != getUserData()) {
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(args->_batch);
if (!_procedural) {
_procedural.reset(new Procedural(this->getUserData()));
_procedural->_vertexSource = simple_vert;
@ -62,7 +63,7 @@ void RenderableBoxEntityItem::render(RenderArgs* args) {
}
batch.setModelTransform(transToCenter); // we want to include the scale as well
if (_procedural && _procedural->ready()) {
if (_procedural->ready()) {
_procedural->prepare(batch, getPosition(), getDimensions());
auto color = _procedural->getColor(cubeColor);
batch._glColor4f(color.r, color.g, color.b, color.a);

View file

@ -36,7 +36,9 @@ EntityItemPointer RenderableSphereEntityItem::factory(const EntityItemID& entity
void RenderableSphereEntityItem::setUserData(const QString& value) {
if (value != getUserData()) {
SphereEntityItem::setUserData(value);
_procedural.reset();
if (_procedural) {
_procedural->parse(value);
}
}
}