DSRenderEngineDaliImpl: Make it to render only when RenderView updated. 28/241828/1
authorJoonbum Ko <joonbum.ko@samsung.com>
Fri, 14 Aug 2020 04:15:15 +0000 (13:15 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 10:11:48 +0000 (19:11 +0900)
commit623fa9e89d071a1b2048b44e2af34fd91ac0f11a
tree1b0273b155d4c71b28016d00d5eedf1611e106c4
parent16c25efa8f85afbde404e556ffc45d67a607fe6f
DSRenderEngineDaliImpl: Make it to render only when RenderView updated.

 - The ecore_evas renderer has a function to check if there is
  an updated evas object.
   Therefore, even if ecore_evas_manual_render is called each idle time,
  it does not actually render if nothing has been updated.
 - On the other hand, if DALi calls RenderOnce whenever idle time,
  there is an overhead of waking up the render thread
  even if there is nothing to draw.

 - Since the RenderEngine does not have a RenderView,
  it is difficult for the RenderEngine to know whether
  the RenderView has been updated.
   Therefore, DSRenderEngineDaliImpl inherits DSObject,
  and it is modified to register BufferChanged callback
  in DSWindow received at the time of makeRenderView call.

 - When BufferChanged callback is called,
  private member __needToRender is made true.
 - Even if renderFrame is called, RenderOnce is called only
  when __needToRender is true,
  and __needToRender is changed to false immediately after that.

 - This modification can be revised back
  if it is possible to change to a better structure.

Change-Id: I5717abee1bd4819abf9629892ccb8843a4f6a209
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
src/DSRender/DSRenderEngineDaliImpl.cpp
src/DSRender/DSRenderEngineDaliImpl.h