hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9a4b6728d5ee0cc8716f6358c508f044fac259d2
commit 9a4b6728d5ee0cc8716f6358c508f044fac259d2 Author: Hermet Park <hermetp...@gmail.com> Date: Fri Aug 30 17:13:31 2019 +0900 ector gradient: ++ optmization. we know what size will be used for every span, this graident buffer will be overwritten with new one, So it doesn't need to clear every spans. --- src/lib/ector/software/ector_software_rasterizer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/ector/software/ector_software_rasterizer.c b/src/lib/ector/software/ector_software_rasterizer.c index 447598c1d5..62c3eac723 100644 --- a/src/lib/ector/software/ector_software_rasterizer.c +++ b/src/lib/ector/software/ector_software_rasterizer.c @@ -318,13 +318,13 @@ _blend_gradient_alpha(int count, const SW_FT_Span *spans, void *user_data) { uint32_t *target = buffer + ((sd->raster_buffer->generic->w * spans->y) + spans->x); uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x); - uint32_t *temp = gbuffer; int length = spans->len; - memset(temp, 0x00, sizeof(uint32_t) * spans->len); + while (length) { int l = MIN(length, BLEND_GRADIENT_BUFFER_SIZE); - fetchfunc(temp, sd, spans->y, spans->x, l); + fetchfunc(gbuffer, sd, spans->y, spans->x, l); + uint32_t *temp = gbuffer; for (int i = 0; i < l; i++) { @@ -366,13 +366,13 @@ _blend_gradient_alpha_inv(int count, const SW_FT_Span *spans, void *user_data) { uint32_t *target = buffer + ((sd->raster_buffer->generic->w * spans->y) + spans->x); uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x); - uint32_t *temp = gbuffer; int length = spans->len; - memset(temp, 0x00, sizeof(uint32_t) * spans->len); + while (length) { int l = MIN(length, BLEND_GRADIENT_BUFFER_SIZE); - fetchfunc(temp, sd, spans->y, spans->x, l); + fetchfunc(gbuffer, sd, spans->y, spans->x, l); + uint32_t *temp = gbuffer; for (int i = 0; i < l; i++) { --