From: Hermet Park Date: Mon, 9 Aug 2021 11:31:49 +0000 (+0900) Subject: tvg_saver: skip the invisible paint as possible. X-Git-Tag: submit/tizen/20210818.053418~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=10e0ba2bf0665622187616c664442dc7b26257b1;p=platform%2Fcore%2Fgraphics%2Ftizenvg.git tvg_saver: skip the invisible paint as possible. --- diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index a373be5..32ac23f 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -412,7 +412,7 @@ TvgBinCounter TvgSaver::serializeComposite(const Paint* cmpTarget, CompositeMeth auto flag = static_cast(cmpMethod); auto cnt = writeTagProperty(TVG_TAG_PAINT_CMP_METHOD, SIZE(TvgBinFlag), &flag); - cnt += serialize(cmpTarget, nullptr); + cnt += serialize(cmpTarget, nullptr, true); writeReservedCount(cnt); @@ -436,10 +436,13 @@ TvgBinCounter TvgSaver::serializeChildren(const Paint* paint, const Matrix* tran } -TvgBinCounter TvgSaver::serialize(const Paint* paint, const Matrix* transform) +TvgBinCounter TvgSaver::serialize(const Paint* paint, const Matrix* transform, bool compTarget) { if (!paint) return 0; + //Invisible paint, no point to save it if the paint is not the composition target... + if (!compTarget && paint->opacity() == 0) return 0; + auto m = const_cast(paint)->transform(); if (transform) m = _multiply(transform, &m); diff --git a/src/savers/tvg/tvgTvgSaver.h b/src/savers/tvg/tvgTvgSaver.h index fb8190b..b2ad4fa 100644 --- a/src/savers/tvg/tvgTvgSaver.h +++ b/src/savers/tvg/tvgTvgSaver.h @@ -49,7 +49,7 @@ private: TvgBinCounter writeTagProperty(TvgBinTag tag, TvgBinCounter cnt, const void* data); TvgBinCounter writeTransform(const Matrix* transform); - TvgBinCounter serialize(const Paint* paint, const Matrix* transform); + TvgBinCounter serialize(const Paint* paint, const Matrix* transform, bool compTarget = false); TvgBinCounter serializeScene(const Scene* scene, const Matrix* transform); TvgBinCounter serializeShape(const Shape* shape, const Matrix* transform); TvgBinCounter serializePicture(const Picture* picture, const Matrix* transform);