summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhransu Mohanty <sub.mohanty@samsung.com>2015-04-03 16:38:19 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-04-03 16:38:19 +0200
commit85312d56c69a6aa6795ac0d452a70bd9d4405d0d (patch)
tree34407070bad709c55c6e8c191eb266333bc61ccd
parentc8764e9279ea47a75d60e39bdbcc4727e0236758 (diff)
downloadefl-85312d56c69a6aa6795ac0d452a70bd9d4405d0d.tar.gz
ector: update cairo enum definitions and fix gradient spread issue.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
-rw-r--r--src/lib/ector/cairo/ector_cairo_private.h23
-rw-r--r--src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c3
-rw-r--r--src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c3
-rw-r--r--src/lib/ector/cairo/ector_renderer_cairo_shape.c14
4 files changed, 37 insertions, 6 deletions
diff --git a/src/lib/ector/cairo/ector_cairo_private.h b/src/lib/ector/cairo/ector_cairo_private.h
index 486f9addd8..b5782ffafc 100644
--- a/src/lib/ector/cairo/ector_cairo_private.h
+++ b/src/lib/ector/cairo/ector_cairo_private.h
@@ -30,6 +30,29 @@ struct _Ector_Renderer_Cairo_Base_Data
cairo_matrix_t *m;
};
+typedef enum _cairo_extend {
+ CAIRO_EXTEND_NONE,
+ CAIRO_EXTEND_REPEAT,
+ CAIRO_EXTEND_REFLECT,
+ CAIRO_EXTEND_PAD
+} cairo_extend_t;
+
+static inline cairo_extend_t
+_ector_cairo_extent_get(Efl_Gfx_Gradient_Spread s)
+{
+ switch (s)
+ {
+ case EFL_GFX_GRADIENT_SPREAD_PAD:
+ return CAIRO_EXTEND_PAD;
+ case EFL_GFX_GRADIENT_SPREAD_REFLECT:
+ return CAIRO_EXTEND_REFLECT;
+ case EFL_GFX_GRADIENT_SPREAD_REPEAT:
+ return CAIRO_EXTEND_REPEAT;
+ default:
+ return CAIRO_EXTEND_NONE;
+ }
+}
+
#define CHECK_CAIRO(Parent) (!(Parent && Parent->cairo))
#define USE(Obj, Sym, Error) \
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c
index 4fb05ceae9..15b4e42c31 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_linear.c
@@ -20,7 +20,6 @@ static void (*cairo_pattern_add_color_stop_rgba)(cairo_pattern_t *pattern, doubl
double red, double green, double blue, double alpha) = NULL;
static void (*cairo_pattern_destroy)(cairo_pattern_t *pattern) = NULL;
-typedef enum _cairo_extend_t{cairo_extend}cairo_extend_t;
static void (*cairo_pattern_set_extend)(cairo_pattern_t *pattern, cairo_extend_t extend) = NULL;
typedef struct _Ector_Renderer_Cairo_Gradient_Linear_Data Ector_Renderer_Cairo_Gradient_Linear_Data;
@@ -63,7 +62,7 @@ _ector_renderer_cairo_gradient_linear_ector_renderer_generic_base_prepare(Eo *ob
}
USE(obj, cairo_pattern_set_extend, EINA_FALSE);
- cairo_pattern_set_extend(pd->pat, gd->s);
+ cairo_pattern_set_extend(pd->pat, _ector_cairo_extent_get(gd->s));
if (!pd->parent)
{
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c
index f3332c76db..34a6d707f5 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_gradient_radial.c
@@ -23,7 +23,6 @@ static void (*cairo_pattern_add_color_stop_rgba)(cairo_pattern_t *pattern, doubl
double red, double green, double blue, double alpha) = NULL;
static void (*cairo_pattern_destroy)(cairo_pattern_t *pattern) = NULL;
-typedef enum _cairo_extend_t{cairo_extend}cairo_extend_t;
static void (*cairo_pattern_set_extend)(cairo_pattern_t *pattern, cairo_extend_t extend) = NULL;
// FIXME: as long as it is not possible to directly access the parent structure
@@ -68,7 +67,7 @@ _ector_renderer_cairo_gradient_radial_ector_renderer_generic_base_prepare(Eo *ob
}
USE(obj, cairo_pattern_set_extend, EINA_FALSE);
- cairo_pattern_set_extend(pd->pat, gd->s);
+ cairo_pattern_set_extend(pd->pat, _ector_cairo_extent_get(gd->s));
if (!pd->parent)
{
diff --git a/src/lib/ector/cairo/ector_renderer_cairo_shape.c b/src/lib/ector/cairo/ector_renderer_cairo_shape.c
index 523bd7ed57..de6aa6d184 100644
--- a/src/lib/ector/cairo/ector_renderer_cairo_shape.c
+++ b/src/lib/ector/cairo/ector_renderer_cairo_shape.c
@@ -14,6 +14,18 @@
typedef struct _cairo_path_t cairo_path_t;
+typedef enum _cairo_line_cap {
+ CAIRO_LINE_CAP_BUTT,
+ CAIRO_LINE_CAP_ROUND,
+ CAIRO_LINE_CAP_SQUARE
+} cairo_line_cap_t;
+
+typedef enum _cairo_line_join {
+ CAIRO_LINE_JOIN_MITER,
+ CAIRO_LINE_JOIN_ROUND,
+ CAIRO_LINE_JOIN_BEVEL
+} cairo_line_join_t;
+
static void (*cairo_move_to)(cairo_t *cr, double x, double y) = NULL;
static void (*cairo_line_to)(cairo_t *cr, double x, double y) = NULL;
static void (*cairo_curve_to)(cairo_t *cr,
@@ -36,8 +48,6 @@ static void (*cairo_path_destroy)(cairo_path_t *path) = NULL;
static void (*cairo_new_path)(cairo_t *cr) = NULL;
static void (*cairo_append_path)(cairo_t *cr, const cairo_path_t *path) = NULL;
-typedef enum _cairo_line_cap_t{lie_cap}cairo_line_cap_t;
-typedef enum _cairo_line_join_t{line_join}cairo_line_join_t;
static void (*cairo_set_line_width)(cairo_t *cr, double width) = NULL;
static void (*cairo_set_line_cap)(cairo_t *cr, cairo_line_cap_t line_cap) = NULL;
static void (*cairo_set_line_join)(cairo_t *cr, cairo_line_join_t line_join) = NULL;