bool RenderableZoneEntityItem::addToScene(EntityItemPointer self, std::shared_ptr<render::Scene> scene, render::PendingChanges& pendingChanges) { _myMetaItem = scene->allocateID(); auto renderData = std::make_shared<RenderableZoneEntityItemMeta>(self); auto renderPayload = std::make_shared<RenderableZoneEntityItemMeta::Payload>(renderData); render::Item::Status::Getters statusGetters; makeEntityItemStatusGetters(getThisPointer(), statusGetters); renderPayload->addStatusGetters(statusGetters); pendingChanges.resetItem(_myMetaItem, renderPayload); return true; }
bool RenderableLightEntityItem::addToScene(const EntityItemPointer& self, const render::ScenePointer& scene, render::Transaction& transaction) { _myItem = scene->allocateID(); auto renderItem = std::make_shared<LightPayload>(); updateRenderItemFromEntity((*renderItem)); auto renderPayload = std::make_shared<LightPayload::Payload>(renderItem); render::Item::Status::Getters statusGetters; makeEntityItemStatusGetters(self, statusGetters); renderPayload->addStatusGetters(statusGetters); transaction.resetItem(_myItem, renderPayload); return true; }
bool RenderableZoneEntityItem::addToScene(const EntityItemPointer& self, const render::ScenePointer& scene, render::Transaction& transaction) { _myMetaItem = scene->allocateID(); auto renderData = std::make_shared<RenderableZoneEntityItemMeta>(self); auto renderPayload = std::make_shared<RenderableZoneEntityItemMeta::Payload>(renderData); updateKeyZoneItemFromEntity((*renderData)); updateKeySunFromEntity((*renderData)); updateKeyAmbientFromEntity((*renderData)); updateKeyBackgroundFromEntity((*renderData)); render::Item::Status::Getters statusGetters; makeEntityItemStatusGetters(getThisPointer(), statusGetters); renderPayload->addStatusGetters(statusGetters); transaction.resetItem(_myMetaItem, renderPayload); return true; }