From 231b3779b1bd75bed86ab88c000bb45928913d23 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 16 Jul 2020 17:09:48 +0900 Subject: [PATCH] svg_loader: code refactoring keep clean & neat code. Change-Id: Ia17139a291fc9934fe2f8d5e51417c44ec50f2ed --- src/loaders/svg_loader/tvgSvgSceneBuilder.cpp | 39 +++++++++++++-------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/loaders/svg_loader/tvgSvgSceneBuilder.cpp b/src/loaders/svg_loader/tvgSvgSceneBuilder.cpp index 1e6ea32..64d34b9 100644 --- a/src/loaders/svg_loader/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg_loader/tvgSvgSceneBuilder.cpp @@ -118,14 +118,14 @@ unique_ptr _applyLinearGradientProperty(SvgStyleGradient* g, Sha float fopacity = fillOpacity / 255.0f; //fill opacity if any exists. int i = 0; stops = (Fill::ColorStop*)calloc(stopCount, sizeof(Fill::ColorStop)); - for (vector::iterator itrStop = g->stops.begin(); itrStop != g->stops.end(); itrStop++) { + for (auto colorStop : g->stops) { //Use premultiplied color - opacity = ((float)(*itrStop)->a / 255) * fopacity; - stops[i].r = ((*itrStop)->r * opacity); - stops[i].g = ((*itrStop)->g * opacity); - stops[i].b = ((*itrStop)->b * opacity); - stops[i].a = ((*itrStop)->a * fopacity); - stops[i].offset = (*itrStop)->offset; + opacity = ((float)colorStop->a / 255.0f) * fopacity; + stops[i].r = colorStop->r * opacity; + stops[i].g = colorStop->g * opacity; + stops[i].b = colorStop->b * opacity; + stops[i].a = colorStop->a * fopacity; + stops[i].offset = colorStop->offset; i++; } fillGrad->colorStops(stops, stopCount); @@ -204,14 +204,14 @@ unique_ptr _applyRadialGradientProperty(SvgStyleGradient* g, Sha float fopacity = fillOpacity / 255.0f; //fill opacity if any exists. int i = 0; stops = (Fill::ColorStop*)calloc(stopCount, sizeof(Fill::ColorStop)); - for (vector::iterator itrStop = g->stops.begin(); itrStop != g->stops.end(); itrStop++) { + for (auto colorStop : g->stops) { //Use premultiplied color - opacity = ((float)(*itrStop)->a / 255) * fopacity; - stops[i].r = ((*itrStop)->r * opacity); - stops[i].g = ((*itrStop)->g * opacity); - stops[i].b = ((*itrStop)->b * opacity); - stops[i].a = ((*itrStop)->a * fopacity); - stops[i].offset = (*itrStop)->offset; + opacity = ((float)colorStop->a / 255.0f) * fopacity; + stops[i].r = colorStop->r * opacity; + stops[i].g = colorStop->g * opacity; + stops[i].b = colorStop->b * opacity; + stops[i].a = colorStop->a * fopacity; + stops[i].offset = colorStop->offset; i++; } fillGrad->colorStops(stops, stopCount); @@ -366,12 +366,11 @@ unique_ptr _sceneBuildHelper(SvgNode* node, float vx, float vy, float vw, if (!(fmod(fabsf(z), 360.0) <= FLT_EPSILON)) scene->rotate(fmod(z, 360.0)); if (!(fabsf(tx) <= FLT_EPSILON) && !(fabsf(ty) <= FLT_EPSILON)) scene->translate(tx, ty); } - node->style->opacity = (node->style->opacity * parentOpacity) / 255; - for (vector::iterator itrChild = node->child.begin(); itrChild != node->child.end(); itrChild++) { - SvgNode* child = *itrChild; - child->style->opacity = (child->style->opacity * node->style->opacity) / 255; - if (child->type == SvgNodeType::Doc || child->type == SvgNodeType::G) scene->push(_sceneBuildHelper(*itrChild, vx, vy, vw, vh, node->style->opacity)); - else scene->push(_shapeBuildHelper(*itrChild, vx, vy, vw, vh)); + node->style->opacity = (node->style->opacity * parentOpacity) / 255.0f; + for (auto child : node->child) { + child->style->opacity = (child->style->opacity * node->style->opacity) / 255.0f; + if (child->type == SvgNodeType::Doc || child->type == SvgNodeType::G) scene->push(_sceneBuildHelper(child, vx, vy, vw, vh, node->style->opacity)); + else scene->push(_shapeBuildHelper(child, vx, vy, vw, vh)); } return move(scene); } -- 2.7.4