bool RenderableParticleEffectEntityItem::addToScene(EntityItemPointer self, render::ScenePointer scene, render::PendingChanges& pendingChanges) { auto particlePayload = std::shared_ptr<ParticlePayload>(new ParticlePayload(shared_from_this())); particlePayload->setPipeline(_untexturedPipeline); _renderItemId = scene->allocateID(); auto renderData = ParticlePayload::Pointer(particlePayload); auto renderPayload = render::PayloadPointer(new ParticlePayload::Payload(renderData)); pendingChanges.resetItem(_renderItemId, renderPayload); _scene = scene; 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; }