summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2015-02-10 18:05:41 +0100
committerChunEon Park <chuneon.park@samsung.com>2015-02-11 17:00:47 +0900
commit5b6bf75ad0b6f5b86843704c490e5d19838e5997 (patch)
tree714766df2591b31eb4ea32c5dd05bbf8daf79b96
parent23f6e759b03fd48e9aed7c6d765b4c46ac00037f (diff)
downloadefl-5b6bf75ad0b6f5b86843704c490e5d19838e5997.tar.gz
evas: add support for alternate Ector rasterizer based on FreeType.
Conflicts: src/modules/evas/engines/software_generic/evas_engine.c
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c
index 1f794eb6bd..b8d9604246 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -19,6 +19,7 @@
#include "Evas_Engine_Software_Generic.h"
#include "cairo/Ector_Cairo.h"
+#include "software/Ector_Software.h"
#include "ector_cairo_software_surface.eo.h"
@@ -3110,15 +3111,26 @@ eng_output_idle_flush(void *data)
}
static Ector_Surface *_software_ector = NULL;
+static Eina_Bool use_cairo;
static Ector_Surface *
eng_ector_get(void *data EINA_UNUSED)
{
if (!_software_ector)
{
- //TODO FIX it Properly
- _software_ector = eo_add(ECTOR_SOFTWARE_SURFACE_CLASS, NULL);
- //_software_ector = eo_add(ECTOR_CAIRO_SOFTWARE_SURFACE_CLASS, NULL);
+ const char *ector_backend;
+
+ ector_backend = getenv("ECTOR_BACKEND");
+ if (ector_backend && !strcasecmp(ector_backend, "freetype"))
+ {
+ _software_ector = eo_add(ECTOR_SOFTWARE_SURFACE_CLASS, NULL);
+ use_cairo = EINA_FALSE;
+ }
+ else
+ {
+ _software_ector = eo_add(ECTOR_CAIRO_SOFTWARE_SURFACE_CLASS, NULL);
+ use_cairo = EINA_TRUE;
+ }
}
return _software_ector;
}
@@ -3265,8 +3277,16 @@ _draw_thread_ector_surface_set(void *data)
h = surface->cache_entry.h;
}
- eo_do(_software_ector,
- ector_cairo_software_surface_set(pixels, w, h));
+ if (use_cairo)
+ {
+ eo_do(_software_ector,
+ ector_cairo_software_surface_set(pixels, w, h));
+ }
+ else
+ {
+ eo_do(_software_ector,
+ ector_software_surface_set(pixels, w, h));
+ }
evas_common_cpu_end_opt();