fix particle entity

This commit is contained in:
Dante Ruiz 2018-06-20 10:59:19 -07:00
parent 3d4f164a9f
commit f891c37ac8
2 changed files with 13 additions and 1 deletions

View file

@ -125,6 +125,14 @@ void ParticleEffectEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePoi
}); });
} }
} }
void* key = (void*)this;
AbstractViewStateInterface::instance()->pushPostUpdateLambda(key, [this] () {
withWriteLock([&] {
updateModelTransform();
_renderTransform = getModelTransform();
});
});
} }
void ParticleEffectEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) { void ParticleEffectEntityRenderer::doRenderUpdateAsynchronousTyped(const TypedEntityPointer& entity) {
@ -324,7 +332,10 @@ void ParticleEffectEntityRenderer::doRender(RenderArgs* args) {
// In trail mode, the particles are created in world space. // In trail mode, the particles are created in world space.
// so we only set a transform if they're not in trail mode // so we only set a transform if they're not in trail mode
if (!_particleProperties.emission.shouldTrail) { if (!_particleProperties.emission.shouldTrail) {
transform = getModelTransform();
withReadLock([&] {
transform = _renderTransform;
});
transform.setScale(vec3(1)); transform.setScale(vec3(1));
} }
batch.setModelTransform(transform); batch.setModelTransform(transform);

View file

@ -103,6 +103,7 @@ private:
BufferPointer _particleBuffer{ std::make_shared<Buffer>() }; BufferPointer _particleBuffer{ std::make_shared<Buffer>() };
BufferView _uniformBuffer; BufferView _uniformBuffer;
quint64 _lastSimulated { 0 }; quint64 _lastSimulated { 0 };
Transform _renderTransform;
NetworkTexturePointer _networkTexture; NetworkTexturePointer _networkTexture;
ScenePointer _scene; ScenePointer _scene;