Adding the change notifications

This commit is contained in:
Sam Cake 2017-05-05 00:11:22 -07:00
parent df2c5b8c23
commit db3d634840
3 changed files with 18 additions and 20 deletions

View file

@ -13,6 +13,8 @@
#include <gpu/Batch.h>
#include <model/Stage.h>
#include <AbstractViewStateInterface.h>
#include <DependencyManager.h>
#include <GeometryCache.h>
@ -69,8 +71,8 @@ bool RenderableZoneEntityItem::setProperties(const EntityItemProperties& propert
void RenderableZoneEntityItem::somethingChangedNotification() {
DependencyManager::get<EntityTreeRenderer>()->updateZone(_id);
// A new way:
if (_keyLightPropertiesChanged || _backgroundPropertiesChanged) {
// If graphics elements are changed, we need to update the render items
if (_keyLightPropertiesChanged || _backgroundPropertiesChanged || _stagePropertiesChanged || _skyboxPropertiesChanged) {
notifyChangedRenderItem();
}
@ -337,15 +339,7 @@ void RenderableZoneEntityItem::updateKeyLightItemFromEntity(KeyLightPayload& key
light->setAmbientIntensity(this->getKeyLightProperties().getAmbientIntensity());
light->setDirection(this->getKeyLightProperties().getDirection());
// light->setColor(toGlm(entity->getXColor()));
// float intensity = entity->getIntensity();//* entity->getFadingRatio();
// light->setIntensity(intensity);
light->setType(model::Light::SUN);
}
void RenderableZoneEntityItem::sceneUpdateRenderItemFromEntity(render::Transaction& transaction) {

View file

@ -91,7 +91,7 @@ bool ZoneEntityItem::setSubClassProperties(const EntityItemProperties& propertie
_keyLightPropertiesChanged = _keyLightProperties.setProperties(properties);
bool somethingChangedInStage = _stageProperties.setProperties(properties);
_stagePropertiesChanged = _stageProperties.setProperties(properties);
SET_ENTITY_PROPERTY_FROM_PROPERTIES(shapeType, setShapeType);
SET_ENTITY_PROPERTY_FROM_PROPERTIES(compoundShapeURL, setCompoundShapeURL);
@ -101,9 +101,9 @@ bool ZoneEntityItem::setSubClassProperties(const EntityItemProperties& propertie
SET_ENTITY_PROPERTY_FROM_PROPERTIES(ghostingAllowed, setGhostingAllowed);
SET_ENTITY_PROPERTY_FROM_PROPERTIES(filterURL, setFilterURL);
bool somethingChangedInSkybox = _skyboxProperties.setProperties(properties);
_skyboxPropertiesChanged = _skyboxProperties.setProperties(properties);
somethingChanged = somethingChanged || _keyLightPropertiesChanged || somethingChangedInStage || somethingChangedInSkybox;
somethingChanged = somethingChanged || _keyLightPropertiesChanged || _stagePropertiesChanged || _skyboxPropertiesChanged;
return somethingChanged;
@ -117,14 +117,14 @@ int ZoneEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data,
const unsigned char* dataAt = data;
int bytesFromKeylight = _keyLightProperties.readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args,
propertyFlags, overwriteLocalData, somethingChanged);
propertyFlags, overwriteLocalData, _keyLightPropertiesChanged);
somethingChanged = somethingChanged || _keyLightPropertiesChanged;
bytesRead += bytesFromKeylight;
dataAt += bytesFromKeylight;
int bytesFromStage = _stageProperties.readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args,
propertyFlags, overwriteLocalData, somethingChanged);
propertyFlags, overwriteLocalData, _stagePropertiesChanged);
somethingChanged = somethingChanged || _stagePropertiesChanged;
bytesRead += bytesFromStage;
dataAt += bytesFromStage;
@ -133,7 +133,8 @@ int ZoneEntityItem::readEntitySubclassDataFromBuffer(const unsigned char* data,
READ_ENTITY_PROPERTY(PROP_BACKGROUND_MODE, BackgroundMode, setBackgroundMode);
int bytesFromSkybox = _skyboxProperties.readEntitySubclassDataFromBuffer(dataAt, (bytesLeftToRead - bytesRead), args,
propertyFlags, overwriteLocalData, somethingChanged);
propertyFlags, overwriteLocalData, _skyboxPropertiesChanged);
somethingChanged = somethingChanged || _skyboxPropertiesChanged;
bytesRead += bytesFromSkybox;
dataAt += bytesFromSkybox;
@ -198,6 +199,8 @@ void ZoneEntityItem::somethingChangedNotification() {
withWriteLock([&] {
_keyLightPropertiesChanged = false;
_backgroundPropertiesChanged = false;
_stagePropertiesChanged = false;
_skyboxPropertiesChanged = false;
});
}

View file

@ -70,7 +70,7 @@ public:
const KeyLightPropertyGroup& getKeyLightProperties() const { return _keyLightProperties; }
void setBackgroundMode(BackgroundMode value) { _backgroundMode = value; }
void setBackgroundMode(BackgroundMode value) { _backgroundMode = value; _backgroundPropertiesChanged = true; }
BackgroundMode getBackgroundMode() const { return _backgroundMode; }
const SkyboxPropertyGroup& getSkyboxProperties() const { return _skyboxProperties; }
@ -117,7 +117,8 @@ protected:
// Which is called after a setProperties() or a readEntitySubClassFromBUfferCall on the entity.
bool _keyLightPropertiesChanged { false };
bool _backgroundPropertiesChanged { false };
bool _skyboxPropertiesChanged { false };
bool _stagePropertiesChanged { false };
static bool _drawZoneBoundaries;
static bool _zonesArePickable;