X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcanvas-view%2Fcanvas-view-impl.cpp;h=282ebb44763bef3d246358ef7aed2ea90d589ab0;hp=bc31ae5125622524c578834ea582a603702c01b3;hb=HEAD;hpb=d35e038c4532d856414c8eeee96613a5162b6ee8 diff --git a/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp b/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp index bc31ae5..282ebb4 100644 --- a/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp +++ b/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp @@ -46,6 +46,7 @@ BaseHandle Create() // Setup properties, signals and actions using the type-registry. DALI_TYPE_REGISTRATION_BEGIN(Toolkit::CanvasView, Toolkit::Control, Create); DALI_PROPERTY_REGISTRATION(Toolkit, CanvasView, "viewBox", VECTOR2, VIEW_BOX) +DALI_PROPERTY_REGISTRATION(Toolkit, CanvasView, "synchronousLoading", BOOLEAN, SYNCHRONOUS_LOADING) DALI_TYPE_REGISTRATION_END() } // anonymous namespace @@ -56,7 +57,8 @@ CanvasView::CanvasView(const Vector2& viewBox) mCanvasRenderer(CanvasRenderer::New(viewBox)), mTexture(), mTextureSet(), - mSize(viewBox) + mSize(viewBox), + mIsSynchronous(true) { } @@ -136,6 +138,15 @@ void CanvasView::SetProperty(BaseObject* object, Property::Index propertyIndex, } break; } + case Toolkit::CanvasView::Property::SYNCHRONOUS_LOADING: + { + bool isSynchronous; + if(value.Get(isSynchronous)) + { + canvasViewImpl.SetSynchronous(isSynchronous); + } + break; + } } } } @@ -157,6 +168,11 @@ Property::Value CanvasView::GetProperty(BaseObject* object, Property::Index prop value = canvasViewImpl.GetViewBox(); break; } + case Toolkit::CanvasView::Property::SYNCHRONOUS_LOADING: + { + value = canvasViewImpl.IsSynchronous(); + break; + } } } return value; @@ -176,7 +192,16 @@ void CanvasView::AddRasterizationTask() if(mCanvasRenderer.Commit()) { - AsyncTaskManager::Get().AddTask(mRasterizingTask); + if(mIsSynchronous) + { + mRasterizingTask->Process(); + ApplyRasterizedImage(mRasterizingTask); + mRasterizingTask.Reset(); // We don't need it anymore. + } + else + { + AsyncTaskManager::Get().AddTask(mRasterizingTask); + } } } @@ -208,7 +233,7 @@ void CanvasView::ApplyRasterizedImage(CanvasRendererRasterizingTaskPtr task) mRasterizingTask.Reset(); // We don't need it anymore //If there are accumulated changes to CanvasRenderer during Rasterize, Rasterize once again. - if(mCanvasRenderer && mCanvasRenderer.IsCanvasChanged()) + if(!mIsSynchronous && mCanvasRenderer && mCanvasRenderer.IsCanvasChanged()) { AddRasterizationTask(); } @@ -258,6 +283,17 @@ const Vector2& CanvasView::GetViewBox() } return Vector2::ZERO; } + +void CanvasView::SetSynchronous(const bool isSynchronous) +{ + mIsSynchronous = isSynchronous; +} + +const bool CanvasView::IsSynchronous() +{ + return mIsSynchronous; +} + } // namespace Internal } // namespace Toolkit } // namespace Dali