[Tizen] Fix FrameBuffer sync issue, etc. 17/208017/2
authorJiyun Yang <ji.yang@samsung.com>
Fri, 7 Jun 2019 06:56:38 +0000 (15:56 +0900)
committerJiyun Yang <ji.yang@samsung.com>
Mon, 17 Jun 2019 04:47:36 +0000 (13:47 +0900)
commitc163578c36b4a1674b06ab7f1f3cd446b7f840f6
tree15c9aa6262def67cd4cbd0ae24d8dead194cbbcf
parent9f150966836df75cc3af2911a136e9cf95ec5abf
[Tizen] Fix FrameBuffer sync issue, etc.

(1) Fix FrameBuffer sync issue

Render::FrameBuffer has mSurface but the Surface can be modified by main thread.
API such as Render::FrameBuffer::GetWidth() returned mSurface's property to the update+render thread.
This broke FrameBuffer sync between threads.

To fix this, make Render::FrameBuffer no longer use mSurface's width, height and backgroundColor directly.
Instead, it stores those values and update it through messages in the update manager.

(2) Fix Window resize issue

Since multi-window introduced, the update+render thread has not received
the resizing informtion of each window, so it couldn't pass resizing flag properly
to the surface when rendering (PreRender/PostRender).

Since Window::SetSize() can be called anytime even in the middle of updating and rendering,
the update+render thread can not use resizing information in the Surface directly.
-> The core should passes a surface resizement information to the update+render thread by messaging.

After (1), the core gets a method that passes Surface resizement info to the udpate+render thread
and it solves problems.

(3) Move the backgroundColor to Scene from RenderSurface

Change-Id: I385a45a46de681c3c0656cdb4a59a9f8f464d975
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
dali/integration-api/render-surface.h
dali/integration-api/scene.cpp
dali/integration-api/scene.h
dali/internal/common/core-impl.cpp
dali/internal/event/common/scene-impl.cpp
dali/internal/event/common/scene-impl.h
dali/internal/event/rendering/frame-buffer-impl.cpp
dali/internal/event/rendering/frame-buffer-impl.h
dali/internal/render/renderers/render-surface-frame-buffer.cpp
dali/internal/render/renderers/render-surface-frame-buffer.h