Fix for one-frame lag in the tablet stylus.

This commit is contained in:
Anthony J. Thibault 2017-01-30 15:34:46 -08:00
parent 5a0990fbe4
commit 0962a15a06
4 changed files with 8 additions and 7 deletions

View file

@ -22,6 +22,7 @@ ModelOverlay::ModelOverlay()
_modelTextures(QVariantMap())
{
_model->init();
_model->setSpatiallyNestableOverride(this);
_isLoaded = false;
}
@ -33,6 +34,7 @@ ModelOverlay::ModelOverlay(const ModelOverlay* modelOverlay) :
_updateModel(false)
{
_model->init();
_model->setSpatiallyNestableOverride(this);
if (_url.isValid()) {
_updateModel = true;
_isLoaded = false;

View file

@ -508,7 +508,7 @@ ModelPointer RenderableModelEntityItem::getModel(QSharedPointer<EntityTreeRender
// If we don't have a model, allocate one *immediately*
if (!_model) {
_model = _myRenderer->allocateModel(getModelURL(), renderer->getEntityLoadingPriority(*this));
_model->setSpatiallyNestableOverride(shared_from_this());
_model->setSpatiallyNestableOverride(this);
_needsInitialSimulation = true;
// If we need to change URLs, update it *after rendering* (to avoid access violations)
} else if (QUrl(getModelURL()) != _model->getURL()) {

View file

@ -133,16 +133,15 @@ void Model::setRotation(const glm::quat& rotation) {
updateRenderItems();
}
void Model::setSpatiallyNestableOverride(SpatiallyNestablePointer override) {
void Model::setSpatiallyNestableOverride(SpatiallyNestable* override) {
_spatiallyNestableOverride = override;
updateRenderItems();
}
Transform Model::getTransform() const {
SpatiallyNestablePointer spatiallyNestableOverride = _spatiallyNestableOverride.lock();
if (spatiallyNestableOverride) {
if (_spatiallyNestableOverride) {
bool success;
Transform transform = spatiallyNestableOverride->getTransform(success);
Transform transform = _spatiallyNestableOverride->getTransform(success);
if (success) {
transform.setScale(getScale());
return transform;

View file

@ -205,7 +205,7 @@ public:
void setTranslation(const glm::vec3& translation);
void setRotation(const glm::quat& rotation);
void setSpatiallyNestableOverride(SpatiallyNestablePointer ptr);
void setSpatiallyNestableOverride(SpatiallyNestable* ptr);
const glm::vec3& getTranslation() const { return _translation; }
const glm::quat& getRotation() const { return _rotation; }
@ -297,7 +297,7 @@ protected:
glm::quat _rotation;
glm::vec3 _scale;
SpatiallyNestableWeakPointer _spatiallyNestableOverride;
SpatiallyNestable* _spatiallyNestableOverride { nullptr };
glm::vec3 _offset;