void ZoneEntityRenderer::updateKeyBackgroundFromEntity(const TypedEntityPointer& entity) { setSkyboxMode((ComponentMode)entity->getSkyboxMode()); editBackground(); setSkyboxColor(toGlm(_skyboxProperties.getColor())); setProceduralUserData(entity->getUserData()); setSkyboxURL(_skyboxProperties.getURL()); }
void ZoneEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& scene, Transaction& transaction, const TypedEntityPointer& entity) { DependencyManager::get<EntityTreeRenderer>()->updateZone(entity->getID()); // FIXME one of the bools here could become true between being fetched and being reset, // resulting in a lost update bool keyLightChanged = entity->keyLightPropertiesChanged(); bool ambientLightChanged = entity->ambientLightPropertiesChanged(); bool skyboxChanged = entity->skyboxPropertiesChanged(); bool hazeChanged = entity->hazePropertiesChanged(); bool bloomChanged = entity->bloomPropertiesChanged(); entity->resetRenderingPropertiesChanged(); _lastPosition = entity->getWorldPosition(); _lastRotation = entity->getWorldOrientation(); _lastDimensions = entity->getScaledDimensions(); _keyLightProperties = entity->getKeyLightProperties(); _ambientLightProperties = entity->getAmbientLightProperties(); _skyboxProperties = entity->getSkyboxProperties(); _hazeProperties = entity->getHazeProperties(); _bloomProperties = entity->getBloomProperties(); #if 0 if (_lastShapeURL != _typedEntity->getCompoundShapeURL()) { _lastShapeURL = _typedEntity->getCompoundShapeURL(); _model.reset(); _model = std::make_shared<Model>(); _model->setIsWireframe(true); _model->init(); _model->setURL(_lastShapeURL); } if (_model && _model->isActive()) { _model->setScaleToFit(true, _lastDimensions); _model->setSnapModelToRegistrationPoint(true, _entity->getRegistrationPoint()); _model->setRotation(_lastRotation); _model->setTranslation(_lastPosition); _model->simulate(0.0f); } #endif updateKeyZoneItemFromEntity(entity); if (keyLightChanged) { updateKeySunFromEntity(entity); } if (ambientLightChanged) { updateAmbientLightFromEntity(entity); } if (skyboxChanged || _proceduralUserData != entity->getUserData()) { updateKeyBackgroundFromEntity(entity); } if (hazeChanged) { updateHazeFromEntity(entity); } bool visuallyReady = true; uint32_t skyboxMode = entity->getSkyboxMode(); if (skyboxMode == COMPONENT_MODE_ENABLED && !_skyboxTextureURL.isEmpty()) { bool skyboxLoadedOrFailed = (_skyboxTexture && (_skyboxTexture->isLoaded() || _skyboxTexture->isFailed())); visuallyReady = skyboxLoadedOrFailed; } entity->setVisuallyReady(visuallyReady); if (bloomChanged) { updateBloomFromEntity(entity); } }