diff options
Diffstat (limited to 'src/lib/ector/software/ector_renderer_software_shape.c')
-rw-r--r-- | src/lib/ector/software/ector_renderer_software_shape.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib/ector/software/ector_renderer_software_shape.c b/src/lib/ector/software/ector_renderer_software_shape.c index 0db1ea2a70..658a82e41f 100644 --- a/src/lib/ector/software/ector_renderer_software_shape.c +++ b/src/lib/ector/software/ector_renderer_software_shape.c @@ -271,7 +271,7 @@ typedef struct _Line double y2; }Line; -static void +static void _line_value_set(Line *l, double x1, double y1, double x2, double y2) { l->x1 = x1; @@ -281,7 +281,7 @@ _line_value_set(Line *l, double x1, double y1, double x2, double y2) } // approximate sqrt(x*x + y*y) using alpha max plus beta min algorithm. -// With alpha = 1, beta = 3/8, giving results with the largest error less +// With alpha = 1, beta = 3/8, giving results with the largest error less // than 7% compared to the exact value. static double _line_length(Line *l) @@ -339,7 +339,7 @@ _dasher_line_to(Dash_Stroker *dasher, double x, double y) _outline_line_to(dasher->outline, x, y); } } - else + else { while (line_len > dasher->cur_dash_length) { @@ -404,7 +404,7 @@ _dasher_cubic_to(Dash_Stroker *dasher, double cx1 , double cy1, double cx2, doub _outline_cubic_to(dasher->outline, cx1, cy1, cx2, cy2, x, y); } } - else + else { while (bez_len > dasher->cur_dash_length) { @@ -535,8 +535,8 @@ _need_update_rle(Eo *obj, Ector_Renderer_Software_Shape_Data *pd) { if (pd->task) return pd->task; - if (!_generate_stroke_data(pd) && - !_generate_shape_data(pd)) + if (!pd->base->visibility || (!_generate_stroke_data(pd) && + !_generate_shape_data(pd))) return NULL; const Efl_Gfx_Path_Command *cmds; @@ -654,8 +654,8 @@ _ector_renderer_software_shape_ector_renderer_draw(Eo *obj EINA_UNUSED, if (task) ector_software_wait(_update_rle, _done_rle, task); // adjust the offset - x = pd->surface->x + (int)pd->base->origin.x; - y = pd->surface->y + (int)pd->base->origin.y; + x = (int)pd->base->origin.x - pd->surface->x; + y = (int)pd->base->origin.y - pd->surface->y; ector_software_rasterizer_clip_rect_set(pd->surface->rasterizer, clips); ector_software_rasterizer_transform_set(pd->surface->rasterizer, pd->base->m); |