summaryrefslogtreecommitdiff
path: root/src/lib/ector/software/ector_software_private.h
diff options
context:
space:
mode:
authorCedric Bail <cedric@osg.samsung.com>2017-09-16 23:23:36 -0700
committerCedric Bail <cedric@osg.samsung.com>2017-09-17 11:49:48 -0700
commite380ddb742384546ad05a5f8f5472ecdce795538 (patch)
tree58cd8ea6ccf9ae8d170f1f6aa8995f085f29ef25 /src/lib/ector/software/ector_software_private.h
parent560e5c8e0f071d2cbaec0649bc1e8100d9e7f82e (diff)
ector: move RLE shape/stroke computation to a pool of thread.
This has been a long standing plan for improving performance in rendering vector object. Depending on the test, you will get an improvement between 10 to 35% when rendering vector based object. We are still maintaining the Cairo backend as the default one at the moment due to a lack of result comparison tests between the two engine. Hopefully we should get that covered and we can all enjoy a backend that is 4 times faster by default.
Diffstat (limited to 'src/lib/ector/software/ector_software_private.h')
-rw-r--r--src/lib/ector/software/ector_software_private.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/lib/ector/software/ector_software_private.h b/src/lib/ector/software/ector_software_private.h
index a255fd34a0..e35f6818df 100644
--- a/src/lib/ector/software/ector_software_private.h
+++ b/src/lib/ector/software/ector_software_private.h
@@ -95,13 +95,9 @@ typedef struct _Span_Data
95 95
96typedef struct _Software_Rasterizer 96typedef struct _Software_Rasterizer
97{ 97{
98 SW_FT_Raster raster;
99 SW_FT_Stroker stroker;
100
101 Span_Data fill_data; 98 Span_Data fill_data;
102 Eina_Matrix3 *transform; 99 Eina_Matrix3 *transform;
103 Eina_Rectangle system_clip; 100 Eina_Rectangle system_clip;
104
105} Software_Rasterizer; 101} Software_Rasterizer;
106 102
107struct _Ector_Software_Surface_Data 103struct _Ector_Software_Surface_Data
@@ -114,9 +110,9 @@ struct _Ector_Software_Surface_Data
114 110
115int ector_software_gradient_init(void); 111int ector_software_gradient_init(void);
116void ector_software_rasterizer_init(Software_Rasterizer *rasterizer); 112void ector_software_rasterizer_init(Software_Rasterizer *rasterizer);
117void ector_software_rasterizer_done(Software_Rasterizer *rasterizer);
118 113
119void ector_software_rasterizer_stroke_set(Software_Rasterizer *rasterizer, double width, 114void ector_software_rasterizer_stroke_set(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer,
115 double width,
120 Efl_Gfx_Cap cap_style, Efl_Gfx_Join join_style, Eina_Matrix3 *m); 116 Efl_Gfx_Cap cap_style, Efl_Gfx_Join join_style, Eina_Matrix3 *m);
121 117
122void ector_software_rasterizer_transform_set(Software_Rasterizer *rasterizer, Eina_Matrix3 *t); 118void ector_software_rasterizer_transform_set(Software_Rasterizer *rasterizer, Eina_Matrix3 *t);