Fix FrameBuffer sync issue, etc. 61/207561/15
authorJiyun Yang <ji.yang@samsung.com>
Fri, 7 Jun 2019 06:56:38 +0000 (15:56 +0900)
committerJiyun Yang <ji.yang@samsung.com>
Fri, 21 Jun 2019 04:35:06 +0000 (13:35 +0900)
(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>

No differences found