CanvasRenderer: Refactoring tvgObject management 36/258536/8
authorJunsuChoi <jsuya.choi@samsung.com>
Tue, 18 May 2021 08:08:45 +0000 (17:08 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Fri, 4 Jun 2021 08:26:33 +0000 (17:26 +0900)
commit949195d82375ddb310c2971a3360f224795e1391
tree997e2034bbcc17f3fa139b1ad4891fbdc5138b84
parent3ed9b6b187f4f90069a75ecba46775163c7c72d1
CanvasRenderer: Refactoring tvgObject management

Thorvg is designed for immediate rendering, tvg objects use unique ptr.
However, CanvasRenderer, Shape, Drawable, and DrawableGroup inherit BaseHandle
and work according to the lifecycle of Dali objects.
CanvasRenderer classes unnecessarily checks whether tvgObject is deleted.
So we don't push each in each AddDrawable method. Just before drawing,
we clear the canvas and push all the objects managed by the list directly.

The memory of the pushed object is managed in the canvas.
Each Drawable class only needs to manage its own tvg object.

Change-Id: I373fbe4a34c8b8a3a72d222744226f84075575d7
18 files changed:
dali/internal/canvas-renderer/common/drawable-group-impl.cpp
dali/internal/canvas-renderer/common/drawable-group-impl.h
dali/internal/canvas-renderer/common/drawable-impl.cpp
dali/internal/canvas-renderer/common/drawable-impl.h
dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp
dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.h
dali/internal/canvas-renderer/tizen/drawable-group-impl-tizen.cpp
dali/internal/canvas-renderer/tizen/drawable-group-impl-tizen.h
dali/internal/canvas-renderer/tizen/drawable-impl-tizen.cpp
dali/internal/canvas-renderer/tizen/drawable-impl-tizen.h
dali/internal/canvas-renderer/tizen/shape-impl-tizen.cpp
dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp
dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.h
dali/internal/canvas-renderer/ubuntu/drawable-group-impl-ubuntu.cpp
dali/internal/canvas-renderer/ubuntu/drawable-group-impl-ubuntu.h
dali/internal/canvas-renderer/ubuntu/drawable-impl-ubuntu.cpp
dali/internal/canvas-renderer/ubuntu/drawable-impl-ubuntu.h
dali/internal/canvas-renderer/ubuntu/shape-impl-ubuntu.cpp