summaryrefslogtreecommitdiff
path: root/src/lib/ector/software/ector_software_private.h
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2018-12-07 19:38:48 +0900
committerHermet Park <hermetpark@gmail.com>2018-12-07 19:50:08 +0900
commitfbe92aa67f18f8c0401cdc6d4440ed512c43b131 (patch)
tree0a681b5f232105491183dfdb4efcc5d5d7050689 /src/lib/ector/software/ector_software_private.h
parent4d6f20d714ea083471be163f67af518eced4028c (diff)
evas ector: add software implmentation for masking feature.
This implementation uses Ector_Buffer to generate mask image from vg container, and pass it to Ector engine. Ector renderer could blend this image as a mask. Yet only vg container works as a mask, we could extend shape to support masking later. Still vector gl drawing is not completed, We use software ector buffer to draw on it. This is on progessing.
Diffstat (limited to 'src/lib/ector/software/ector_software_private.h')
-rw-r--r--src/lib/ector/software/ector_software_private.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/ector/software/ector_software_private.h b/src/lib/ector/software/ector_software_private.h
index dad1f9948c..34ea0038b7 100644
--- a/src/lib/ector/software/ector_software_private.h
+++ b/src/lib/ector/software/ector_software_private.h
@@ -82,9 +82,11 @@ typedef struct _Span_Data
82 82
83 int offx, offy; 83 int offx, offy;
84 Clip_Data clip; 84 Clip_Data clip;
85 Ector_Software_Buffer_Base_Data *mask;
86 int mask_op;
85 Eina_Matrix3 inv; 87 Eina_Matrix3 inv;
86 Span_Data_Type type; 88 Span_Data_Type type;
87 Eina_Bool fast_matrix ; 89 Eina_Bool fast_matrix;
88 uint32_t mul_col; 90 uint32_t mul_col;
89 Efl_Gfx_Render_Op op; 91 Efl_Gfx_Render_Op op;
90 union { 92 union {
@@ -129,7 +131,12 @@ void ector_software_rasterizer_clip_shape_set(Software_Rasterizer *rasterizer, S
129Shape_Rle_Data * ector_software_rasterizer_generate_rle_data(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer, SW_FT_Outline *outline); 131Shape_Rle_Data * ector_software_rasterizer_generate_rle_data(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer, SW_FT_Outline *outline);
130Shape_Rle_Data * ector_software_rasterizer_generate_stroke_rle_data(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer, SW_FT_Outline *outline, Eina_Bool closePath); 132Shape_Rle_Data * ector_software_rasterizer_generate_stroke_rle_data(Ector_Software_Thread *thread, Software_Rasterizer *rasterizer, SW_FT_Outline *outline, Eina_Bool closePath);
131 133
132void ector_software_rasterizer_draw_rle_data(Software_Rasterizer *rasterizer, int x, int y, uint32_t mul_col, Efl_Gfx_Render_Op op, Shape_Rle_Data* rle); 134void ector_software_rasterizer_draw_rle_data(Software_Rasterizer *rasterizer,
135 int x, int y, uint32_t mul_col,
136 Efl_Gfx_Render_Op op,
137 Shape_Rle_Data* rle,
138 Ector_Buffer *mask,
139 int mask_op);
133 140
134void ector_software_rasterizer_destroy_rle_data(Shape_Rle_Data *rle); 141void ector_software_rasterizer_destroy_rle_data(Shape_Rle_Data *rle);
135 142