X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fmanager%2Fupdate-manager.cpp;h=f8e81466e3dc81d5846fbbea67004120fe6398af;hb=3d95d69c92f1c9294479bf14ffaa66b8da840356;hp=c96b6ca47a24dff1de261507db40ddc3b2a01cbb;hpb=2a2a3b8527d01273a0f53ca6270e3ed08ed383c6;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/manager/update-manager.cpp b/dali/internal/update/manager/update-manager.cpp index c96b6ca..f8e8146 100644 --- a/dali/internal/update/manager/update-manager.cpp +++ b/dali/internal/update/manager/update-manager.cpp @@ -482,6 +482,9 @@ void UpdateManager::AddScene(OwnerPointer& scene) { mImpl->scenes.back()->scene = scene.Release(); + // Set root to the Scene + mImpl->scenes.back()->scene->SetRoot(mImpl->scenes.back()->root); + // Initialize the context from render manager typedef MessageValue1 DerivedType; @@ -895,7 +898,8 @@ uint32_t UpdateManager::Update(float elapsedSeconds, uint32_t lastVSyncTimeMilliseconds, uint32_t nextVSyncTimeMilliseconds, bool renderToFboEnabled, - bool isRenderingToFbo) + bool isRenderingToFbo, + bool uploadOnly) { const BufferIndex bufferIndex = mSceneGraphBuffers.GetUpdateBufferIndex(); @@ -1043,36 +1047,39 @@ uint32_t UpdateManager::Update(float elapsedSeconds, } } - for(auto&& scene : mImpl->scenes) + if(!uploadOnly) { - if(scene && scene->root && scene->taskList) + for(auto&& scene : mImpl->scenes) { - RenderTaskList::RenderTaskContainer& tasks = scene->taskList->GetTasks(); - - // check the countdown and notify - bool doRenderOnceNotify = false; - mImpl->renderTaskWaiting = false; - for(auto&& renderTask : tasks) + if(scene && scene->root && scene->taskList) { - renderTask->UpdateState(); + RenderTaskList::RenderTaskContainer& tasks = scene->taskList->GetTasks(); - if(renderTask->IsWaitingToRender() && - renderTask->ReadyToRender(bufferIndex) /*avoid updating forever when source actor is off-stage*/) + // check the countdown and notify + bool doRenderOnceNotify = false; + mImpl->renderTaskWaiting = false; + for(auto&& renderTask : tasks) { - mImpl->renderTaskWaiting = true; // keep update/render threads alive + renderTask->UpdateState(); + + if(renderTask->IsWaitingToRender() && + renderTask->ReadyToRender(bufferIndex) /*avoid updating forever when source actor is off-stage*/) + { + mImpl->renderTaskWaiting = true; // keep update/render threads alive + } + + if(renderTask->HasRendered()) + { + doRenderOnceNotify = true; + } } - if(renderTask->HasRendered()) + if(doRenderOnceNotify) { - doRenderOnceNotify = true; + DALI_LOG_INFO(gRenderTaskLogFilter, Debug::General, "Notify a render task has finished\n"); + mImpl->notificationManager.QueueCompleteNotification(scene->taskList->GetCompleteNotificationInterface()); } } - - if(doRenderOnceNotify) - { - DALI_LOG_INFO(gRenderTaskLogFilter, Debug::General, "Notify a render task has finished\n"); - mImpl->notificationManager.QueueCompleteNotification(scene->taskList->GetCompleteNotificationInterface()); - } } }