From: Mira Grudzinska Date: Thu, 22 Jul 2021 20:02:28 +0000 (+0200) Subject: tvg_saver: removing saving the default values X-Git-Tag: accepted/tizen/unified/20210727.124506~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=15aaa62d4dbd3f5b538af93875140328b7b3cce1;p=platform%2Fcore%2Fgraphics%2Ftizenvg.git tvg_saver: removing saving the default values The default values (stroke cap/join, fill rule/spread or color with alpha = 0) were unnecessarily saved in the tvg format file. Change-Id: If26778e7759d3aca11c1423bad2ed360cfd3d512 --- diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index 91364cf..0ebb7e8 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -127,7 +127,7 @@ TvgBinCounter TvgSaver::writeTagProperty(TvgBinTag tag, TvgBinCounter cnt, const return growCnt; } - + TvgBinCounter TvgSaver::serializePaint(const Paint* paint) { TvgBinCounter cnt = 0; @@ -193,8 +193,8 @@ TvgBinCounter TvgSaver::serializeFill(const Fill* fill, TvgBinTag tag) cnt += writeTagProperty(TVG_TAG_FILL_LINEAR_GRADIENT, sizeof(args), args); } - auto flag = static_cast(fill->spread()); - cnt += writeTagProperty(TVG_TAG_FILL_FILLSPREAD, SIZE(TvgBinFlag), &flag); + if (auto flag = static_cast(fill->spread())) + cnt += writeTagProperty(TVG_TAG_FILL_FILLSPREAD, SIZE(TvgBinFlag), &flag); cnt += writeTagProperty(TVG_TAG_FILL_COLORSTOPS, stopsCnt * sizeof(stops), stops); writeReservedCount(cnt); @@ -208,17 +208,17 @@ TvgBinCounter TvgSaver::serializeStroke(const Shape* shape) writeTag(TVG_TAG_SHAPE_STROKE); reserveCount(); + //width + auto width = shape->strokeWidth(); + auto cnt = writeTagProperty(TVG_TAG_SHAPE_STROKE_WIDTH, sizeof(width), &width); + //cap - auto flag = static_cast(shape->strokeCap()); - auto cnt = writeTagProperty(TVG_TAG_SHAPE_STROKE_CAP, SIZE(TvgBinFlag), &flag); + if (auto flag = static_cast(shape->strokeCap())) + cnt += writeTagProperty(TVG_TAG_SHAPE_STROKE_CAP, SIZE(TvgBinFlag), &flag); //join - flag = static_cast(shape->strokeJoin()); - cnt += writeTagProperty(TVG_TAG_SHAPE_STROKE_JOIN, SIZE(TvgBinFlag), &flag); - - //width - auto width = shape->strokeWidth(); - cnt += writeTagProperty(TVG_TAG_SHAPE_STROKE_WIDTH, sizeof(width), &width); + if (auto flag = static_cast(shape->strokeJoin())) + cnt += writeTagProperty(TVG_TAG_SHAPE_STROKE_JOIN, SIZE(TvgBinFlag), &flag); //fill if (auto fill = shape->strokeFill()) { @@ -276,13 +276,19 @@ TvgBinCounter TvgSaver::serializeShape(const Shape* shape) { writeTag(TVG_TAG_CLASS_SHAPE); reserveCount(); + TvgBinCounter cnt = 0; //fill rule - auto flag = (shape->fillRule() == FillRule::EvenOdd) ? TVG_FLAG_SHAPE_FILLRULE_EVENODD : TVG_FLAG_SHAPE_FILLRULE_WINDING; - auto cnt = writeTagProperty(TVG_TAG_SHAPE_FILLRULE, SIZE(TvgBinFlag), &flag); + if (auto flag = static_cast(shape->fillRule())) + cnt = writeTagProperty(TVG_TAG_SHAPE_FILLRULE, SIZE(TvgBinFlag), &flag); //stroke - if (shape->strokeWidth() > 0) cnt += serializeStroke(shape); + if (shape->strokeWidth() > 0) { + uint8_t color[4] = {0, 0, 0, 0}; + shape->strokeColor(color, color + 1, color + 2, color + 3); + auto fill = shape->strokeFill(); + if (fill || color[3] > 0) cnt += serializeStroke(shape); + } //fill if (auto fill = shape->fill()) { @@ -290,7 +296,7 @@ TvgBinCounter TvgSaver::serializeShape(const Shape* shape) } else { uint8_t color[4] = {0, 0, 0, 0}; shape->fillColor(color, color + 1, color + 2, color + 3); - cnt += writeTagProperty(TVG_TAG_SHAPE_COLOR, sizeof(color), color); + if (color[3] > 0) cnt += writeTagProperty(TVG_TAG_SHAPE_COLOR, sizeof(color), color); } cnt += serializePath(shape); @@ -431,4 +437,4 @@ bool TvgSaver::save(Paint* paint, const string& path) TaskScheduler::request(this); return true; -} \ No newline at end of file +} diff --git a/src/savers/tvg/tvgTvgSaver.h b/src/savers/tvg/tvgTvgSaver.h index 908d94f..eecd8e1 100644 --- a/src/savers/tvg/tvgTvgSaver.h +++ b/src/savers/tvg/tvgTvgSaver.h @@ -67,4 +67,4 @@ public: } -#endif //_TVG_SAVE_MODULE_H_ \ No newline at end of file +#endif //_TVG_SAVE_MODULE_H_