diff --git a/src/lib/sw_engine/tvgSwFill.cpp b/src/lib/sw_engine/tvgSwFill.cpp index 4eb61a32..a3e4a6af 100644 --- a/src/lib/sw_engine/tvgSwFill.cpp +++ b/src/lib/sw_engine/tvgSwFill.cpp @@ -144,13 +144,13 @@ bool _prepareRadial(SwFill* fill, const RadialGradient* radial, const Matrix* tr fill->radial.cx = tx; fill->radial.cy = ty; - auto sx = sqrt(pow(transform->e11, 2) + pow(transform->e21, 2)); - auto sy = sqrt(pow(transform->e12, 2) + pow(transform->e22, 2)); + auto sx = sqrtf(powf(transform->e11, 2.0f) + powf(transform->e21, 2.0f)); + auto sy = sqrtf(powf(transform->e12, 2.0f) + powf(transform->e22, 2.0f)); //FIXME; Scale + Rotation is not working properly radius *= sx; - if (abs(sx - sy) > DBL_EPSILON) { + if (fabsf(sx - sy) > FLT_EPSILON) { fill->sx = sx; fill->sy = sy; } @@ -219,7 +219,7 @@ void fillFetchRadial(const SwFill* fill, uint32_t* dst, uint32_t y, uint32_t x, auto detDelta2 = 2.0f * inva; for (uint32_t i = 0 ; i < len ; ++i) { - *dst = _pixel(fill, sqrt(det)); + *dst = _pixel(fill, sqrtf(det)); ++dst; det += detDelta; detDelta += detDelta2; diff --git a/src/lib/sw_engine/tvgSwRaster.cpp b/src/lib/sw_engine/tvgSwRaster.cpp index cc8b15ed..e5b36812 100644 --- a/src/lib/sw_engine/tvgSwRaster.cpp +++ b/src/lib/sw_engine/tvgSwRaster.cpp @@ -1561,8 +1561,8 @@ bool rasterImage(SwSurface* surface, SwImage* image, const Matrix* transform, co if (transform) { if (!_inverse(transform, &invTransform)) return false; - scaling = sqrt((transform->e11 * transform->e11) + (transform->e21 * transform->e21)); - auto scalingY = sqrt((transform->e22 * transform->e22) + (transform->e12 * transform->e12)); + scaling = sqrtf((transform->e11 * transform->e11) + (transform->e21 * transform->e21)); + auto scalingY = sqrtf((transform->e22 * transform->e22) + (transform->e12 * transform->e12)); //TODO:If the x and y axis scaling is different, a separate algorithm for each axis should be applied. if (scaling != scalingY) scaling = 1.0f; } diff --git a/src/lib/sw_engine/tvgSwStroke.cpp b/src/lib/sw_engine/tvgSwStroke.cpp index 5477058f..c0cfc1be 100644 --- a/src/lib/sw_engine/tvgSwStroke.cpp +++ b/src/lib/sw_engine/tvgSwStroke.cpp @@ -828,8 +828,8 @@ void strokeFree(SwStroke* stroke) void strokeReset(SwStroke* stroke, const Shape* sdata, const Matrix* transform) { if (transform) { - stroke->sx = sqrt(pow(transform->e11, 2) + pow(transform->e21, 2)); - stroke->sy = sqrt(pow(transform->e12, 2) + pow(transform->e22, 2)); + stroke->sx = sqrtf(powf(transform->e11, 2.0f) + powf(transform->e21, 2.0f)); + stroke->sy = sqrtf(powf(transform->e12, 2.0f) + powf(transform->e22, 2.0f)); } else { stroke->sx = stroke->sy = 1.0f; } diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index a7b6845f..1d661df6 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -124,7 +124,7 @@ static float _gradientToFloat(const SvgParser* svgParse, const char* str, SvgPar */ if (type == SvgParserLengthType::Vertical) max = svgParse->global.h; else if (type == SvgParserLengthType::Horizontal) max = svgParse->global.w; - else if (type == SvgParserLengthType::Other) max = sqrt(pow(svgParse->global.h, 2) + pow(svgParse->global.w, 2)) / sqrt(2.0); + else if (type == SvgParserLengthType::Other) max = sqrtf(pow(svgParse->global.h, 2) + pow(svgParse->global.w, 2)) / sqrtf(2.0); if (strstr(str, "%")) parsedValue = parsedValue / 100.0; else if (strstr(str, "cm")) parsedValue = parsedValue * 35.43307; @@ -261,7 +261,7 @@ _parseDashArray(SvgLoaderData* loader, const char *str, SvgDash* dash) ++end; //Refers to the diagonal length of the viewport. //https://www.w3.org/TR/SVG2/coords.html#Units - parsedValue = (sqrt(pow(loader->svgParse->global.w, 2) + pow(loader->svgParse->global.h, 2)) / sqrt(2.0f)) * (parsedValue / 100.0f); + parsedValue = (sqrtf(pow(loader->svgParse->global.w, 2) + pow(loader->svgParse->global.h, 2)) / sqrtf(2.0f)) * (parsedValue / 100.0f); } (*dash).array.push(parsedValue); str = end; @@ -1970,7 +1970,7 @@ static void _recalcRadialFyAttr(SvgLoaderData* loader, SvgRadialGradient* radial static void _recalcRadialRAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) { - if (!userSpace) radial->r = radial->r * (sqrt(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrt(2.0)); + if (!userSpace) radial->r = radial->r * (sqrtf(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrtf(2.0)); } @@ -2052,7 +2052,7 @@ static SvgStyleGradient* _createRadialGradient(SvgLoaderData* loader, const char grad->radial->cy = 0.5f / loader->svgParse->global.h; grad->radial->fx = 0.5f / loader->svgParse->global.w; grad->radial->fy = 0.5f / loader->svgParse->global.h; - grad->radial->r = 0.5f / (sqrt(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrt(2.0f)); + grad->radial->r = 0.5f / (sqrtf(pow(loader->svgParse->global.h, 2) + pow(loader->svgParse->global.w, 2)) / sqrtf(2.0f)); loader->svgParse->gradient.parsedFx = false; loader->svgParse->gradient.parsedFy = false; diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index 0170ad32..d3eae094 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -101,12 +101,12 @@ static unique_ptr _applyRadialGradientProperty(SvgStyleGradient* int radius; auto fillGrad = RadialGradient::gen(); - radius = static_cast(sqrtf(pow(rw, 2) + pow(rh, 2)) / sqrtf(2.0)); + radius = static_cast(sqrtf(powf(rw, 2.0f) + powf(rh, 2.0f)) / sqrtf(2.0f)); if (!g->userSpace) { //That is according to Units in here //https://www.w3.org/TR/2015/WD-SVG2-20150915/coords.html int min = static_cast((rh > rw) ? rw : rh); - radius = static_cast(sqrtf(pow(min, 2) + pow(min, 2)) / sqrtf(2.0)); + radius = static_cast(sqrt(pow(min, 2) + pow(min, 2)) / sqrtf(2.0f)); } if (g->usePercentage) { @@ -123,7 +123,7 @@ static unique_ptr _applyRadialGradientProperty(SvgStyleGradient* g->radial->cy = g->radial->cx * g->transform->e21 + g->radial->cy * g->transform->e22 + g->transform->e23; g->radial->cx = cx; - auto sx = sqrtf(pow(g->transform->e11, 2) + pow(g->transform->e21, 2)); + auto sx = sqrtf(powf(g->transform->e11, 2.0f) + powf(g->transform->e21, 2.0f)); g->radial->r *= sx; } diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index 74cbdb24..2be5b91f 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -463,7 +463,7 @@ TvgBinCounter TvgSaver::serializeStroke(const Shape* shape, const Matrix* pTrans //width auto width = shape->strokeWidth(); - if (preTransform) width *= sqrtf(pow(pTransform->e11, 2) + pow(pTransform->e21, 2)); //we know x/y scaling factors are same. + if (preTransform) width *= sqrtf(powf(pTransform->e11, 2.0f) + powf(pTransform->e21, 2.0f)); //we know x/y scaling factors are same. auto cnt = writeTagProperty(TVG_TAG_SHAPE_STROKE_WIDTH, SIZE(width), &width); //cap