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)
commit4cae98e2aac832b5643eeb8d12f1b810d9865d46
tree3da68d4c15cee434e51c7f0c01ee54365cd6dfac
parent9782dbc189818145d565164c78c09269348c0e77
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