From 9023f6d28c127373555339cd062f457f4ce7a9b6 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Tue, 20 Oct 2015 15:55:32 -0700 Subject: [PATCH] ector: simplify code by avoiding unecessary intermediate function. --- .../ector_renderer_software_gradient_linear.c | 44 +++++------- .../ector_renderer_software_gradient_radial.c | 68 +++++++++---------- 2 files changed, 49 insertions(+), 63 deletions(-) diff --git a/src/lib/ector/software/ector_renderer_software_gradient_linear.c b/src/lib/ector/software/ector_renderer_software_gradient_linear.c index a7ce3ece12..f0ab0c58d9 100644 --- a/src/lib/ector/software/ector_renderer_software_gradient_linear.c +++ b/src/lib/ector/software/ector_renderer_software_gradient_linear.c @@ -9,31 +9,6 @@ #include "ector_private.h" #include "ector_software_private.h" - -static void -_update_linear_data(Ector_Renderer_Software_Gradient_Data *gdata) -{ - update_color_table(gdata); - gdata->linear.x1 = gdata->gld->start.x; - gdata->linear.y1 = gdata->gld->start.y; - - gdata->linear.x2 = gdata->gld->end.x; - gdata->linear.y2 = gdata->gld->end.y; - - gdata->linear.dx = gdata->linear.x2 - gdata->linear.x1; - gdata->linear.dy = gdata->linear.y2 - gdata->linear.y1; - gdata->linear.l = gdata->linear.dx * gdata->linear.dx + gdata->linear.dy * gdata->linear.dy; - gdata->linear.off = 0; - - if (gdata->linear.l != 0) - { - gdata->linear.dx /= gdata->linear.l; - gdata->linear.dy /= gdata->linear.l; - gdata->linear.off = -gdata->linear.dx * gdata->linear.x1 - gdata->linear.dy * gdata->linear.y1; - } -} - - static Eina_Bool _ector_renderer_software_gradient_linear_ector_renderer_generic_base_prepare(Eo *obj, Ector_Renderer_Software_Gradient_Data *pd) @@ -47,8 +22,25 @@ _ector_renderer_software_gradient_linear_ector_renderer_generic_base_prepare(Eo pd->surface = eo_data_xref(parent, ECTOR_SOFTWARE_SURFACE_CLASS, obj); } - _update_linear_data(pd); + update_color_table(pd); + pd->linear.x1 = pd->gld->start.x; + pd->linear.y1 = pd->gld->start.y; + + pd->linear.x2 = pd->gld->end.x; + pd->linear.y2 = pd->gld->end.y; + + pd->linear.dx = pd->linear.x2 - pd->linear.x1; + pd->linear.dy = pd->linear.y2 - pd->linear.y1; + pd->linear.l = pd->linear.dx * pd->linear.dx + pd->linear.dy * pd->linear.dy; + pd->linear.off = 0; + + if (pd->linear.l != 0) + { + pd->linear.dx /= pd->linear.l; + pd->linear.dy /= pd->linear.l; + pd->linear.off = -pd->linear.dx * pd->linear.x1 - pd->linear.dy * pd->linear.y1; + } return EINA_FALSE; } diff --git a/src/lib/ector/software/ector_renderer_software_gradient_radial.c b/src/lib/ector/software/ector_renderer_software_gradient_radial.c index 74a8dab6a1..a73293591a 100644 --- a/src/lib/ector/software/ector_renderer_software_gradient_radial.c +++ b/src/lib/ector/software/ector_renderer_software_gradient_radial.c @@ -9,42 +9,6 @@ #include "ector_private.h" #include "ector_software_private.h" -static void -_update_radial_data(Ector_Renderer_Software_Gradient_Data *gdata) -{ - update_color_table(gdata); - - gdata->radial.cx = gdata->grd->radial.x; - gdata->radial.cy = gdata->grd->radial.y; - gdata->radial.cradius = gdata->grd->radius; - - if (!gdata->grd->focal.x) - gdata->radial.fx = gdata->grd->radial.x; - else - gdata->radial.fx = gdata->grd->focal.x; - - if (!gdata->grd->focal.y) - gdata->radial.fy = gdata->grd->radial.y; - else - gdata->radial.fy = gdata->grd->focal.y; - - gdata->radial.fradius = 0; - - gdata->radial.dx = gdata->radial.cx - gdata->radial.fx; - gdata->radial.dy = gdata->radial.cy - gdata->radial.fy; - - gdata->radial.dr = gdata->radial.cradius - gdata->radial.fradius; - gdata->radial.sqrfr = gdata->radial.fradius * gdata->radial.fradius; - - gdata->radial.a = gdata->radial.dr * gdata->radial.dr - - gdata->radial.dx * gdata->radial.dx - - gdata->radial.dy * gdata->radial.dy; - gdata->radial.inv2a = 1 / (2 * gdata->radial.a); - - gdata->radial.extended = (gdata->radial.fradius >= 0.00001f) || gdata->radial.a >= 0.00001f; -} - - static Eina_Bool _ector_renderer_software_gradient_radial_ector_renderer_generic_base_prepare(Eo *obj, Ector_Renderer_Software_Gradient_Data *pd) { @@ -57,7 +21,37 @@ _ector_renderer_software_gradient_radial_ector_renderer_generic_base_prepare(Eo pd->surface = eo_data_xref(parent, ECTOR_SOFTWARE_SURFACE_CLASS, obj); } - _update_radial_data(pd); + update_color_table(pd); + + pd->radial.cx = pd->grd->radial.x; + pd->radial.cy = pd->grd->radial.y; + pd->radial.cradius = pd->grd->radius; + + if (!pd->grd->focal.x) + pd->radial.fx = pd->grd->radial.x; + else + pd->radial.fx = pd->grd->focal.x; + + if (!pd->grd->focal.y) + pd->radial.fy = pd->grd->radial.y; + else + pd->radial.fy = pd->grd->focal.y; + + pd->radial.fradius = 0; + + pd->radial.dx = pd->radial.cx - pd->radial.fx; + pd->radial.dy = pd->radial.cy - pd->radial.fy; + + pd->radial.dr = pd->radial.cradius - pd->radial.fradius; + pd->radial.sqrfr = pd->radial.fradius * pd->radial.fradius; + + pd->radial.a = pd->radial.dr * pd->radial.dr - + pd->radial.dx * pd->radial.dx - + pd->radial.dy * pd->radial.dy; + pd->radial.inv2a = 1 / (2 * pd->radial.a); + + pd->radial.extended = (pd->radial.fradius >= 0.00001f) || pd->radial.a >= 0.00001f; + return EINA_FALSE; }