svn update: 57457 (latest:57457)
authorMyungjae Lee <mjae.lee@samsung.com>
Tue, 8 Mar 2011 08:58:39 +0000 (17:58 +0900)
committerMyungjae Lee <mjae.lee@samsung.com>
Tue, 8 Mar 2011 08:58:39 +0000 (17:58 +0900)
14 files changed:
src/lib/Evas.h
src/lib/engines/common/evas_encoding.h [deleted file]
src/lib/engines/common/evas_font.h
src/lib/engines/common/evas_font_ot.h [new file with mode: 0644]
src/lib/engines/common/evas_font_private.h
src/lib/engines/common/evas_pipe.h
src/lib/engines/common/evas_text_utils.h [new file with mode: 0644]
src/lib/engines/common/language/evas_bidi_utils.h [moved from src/lib/engines/common/evas_bidi_utils.h with 83% similarity]
src/lib/engines/common/language/evas_language_utils.h [new file with mode: 0644]
src/lib/include/evas_common.h
src/lib/include/evas_private.h
src/modules/engines/gl_common/evas_gl_common.h
src/modules/engines/quartz/evas_quartz_private.h
win32/common/config.h [deleted file]

index 7e9fc5f..d9fd805 100644 (file)
@@ -1293,6 +1293,11 @@ typedef void (*Evas_Object_Image_Pixels_Get_Cb) (void *data, Evas_Object *o);
    EAPI void                     evas_object_image_content_hint_set       (Evas_Object *obj, Evas_Image_Content_Hint hint) EINA_ARG_NONNULL(1);
    EAPI Evas_Image_Content_Hint  evas_object_image_content_hint_get       (const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
 
+   EAPI void                     evas_object_image_alpha_mask_set         (Evas_Object *obj, Eina_Bool ismask) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                evas_object_image_source_set             (Evas_Object *obj, Evas_Object *src) EINA_ARG_NONNULL(1);
+   EAPI Evas_Object             *evas_object_image_source_get             (Evas_Object *obj) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                evas_object_image_source_unset           (Evas_Object *obj) EINA_ARG_NONNULL(1);
+
 /**
  * @defgroup Evas_Object_Text Text Object Functions
  *
@@ -1344,6 +1349,7 @@ typedef void (*Evas_Object_Image_Pixels_Get_Cb) (void *data, Evas_Object *o);
    EAPI void              evas_object_text_outline_color_set(Evas_Object *obj, int r, int g, int b, int a) EINA_ARG_NONNULL(1);
    EAPI void              evas_object_text_outline_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a) EINA_ARG_NONNULL(1);
    EAPI void              evas_object_text_style_pad_get    (const Evas_Object *obj, int *l, int *r, int *t, int *b) EINA_ARG_NONNULL(1);
+   EAPI Evas_BiDi_Direction evas_object_text_direction_get  (const Evas_Object *obj) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
 
 /**
  * @defgroup Evas_Object_Textblock Textblock Object Functions
@@ -1399,6 +1405,8 @@ typedef void (*Evas_Object_Image_Pixels_Get_Cb) (void *data, Evas_Object *o);
    EAPI const Evas_Textblock_Style  *evas_object_textblock_style_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
    EAPI void                         evas_object_textblock_replace_char_set(Evas_Object *obj, const char *ch) EINA_ARG_NONNULL(1);
    EAPI const char                  *evas_object_textblock_replace_char_get(Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
+   EAPI void                         evas_object_textblock_newline_mode_set(Evas_Object *obj, Eina_Bool mode) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                    evas_object_textblock_newline_mode_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
 
    EAPI void                         evas_object_textblock_text_markup_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
    EAPI void                         evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char *text) EINA_ARG_NONNULL(1, 2);
@@ -1454,6 +1462,7 @@ typedef void (*Evas_Object_Image_Pixels_Get_Cb) (void *data, Evas_Object *o);
 
    EAPI int                          evas_textblock_cursor_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch, Evas_BiDi_Direction *dir, Evas_Textblock_Cursor_Type ctype) EINA_ARG_NONNULL(1);
    EAPI int                          evas_textblock_cursor_char_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1);
+   EAPI int                          evas_textblock_cursor_pen_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cpen_x, Evas_Coord *cy, Evas_Coord *cadv, Evas_Coord *ch) EINA_ARG_NONNULL(1);
    EAPI int                          evas_textblock_cursor_line_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1);
    EAPI Eina_Bool                    evas_textblock_cursor_char_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1);
    EAPI int                          evas_textblock_cursor_line_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord y) EINA_ARG_NONNULL(1);
@@ -2079,6 +2088,8 @@ struct _Evas_Smart_Cb_Description
    EAPI void                                evas_object_table_padding_get     (const Evas_Object *o, Evas_Coord *horizontal, Evas_Coord *vertical) EINA_ARG_NONNULL(1);
    EAPI void                                evas_object_table_align_set       (Evas_Object *o, double horizontal, double vertical) EINA_ARG_NONNULL(1);
    EAPI void                                evas_object_table_align_get       (const Evas_Object *o, double *horizontal, double *vertical) EINA_ARG_NONNULL(1);
+   EAPI void                                evas_object_table_mirrored_set    (Evas_Object *o, Eina_Bool mirrored) EINA_ARG_NONNULL(1);
+   EAPI Eina_Bool                           evas_object_table_mirrored_get    (const Evas_Object *o) EINA_ARG_NONNULL(1);
 
    EAPI Eina_Bool                           evas_object_table_pack            (Evas_Object *o, Evas_Object *child, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan) EINA_ARG_NONNULL(1, 2);
    EAPI Eina_Bool                           evas_object_table_unpack          (Evas_Object *o, Evas_Object *child) EINA_ARG_NONNULL(1, 2);
diff --git a/src/lib/engines/common/evas_encoding.h b/src/lib/engines/common/evas_encoding.h
deleted file mode 100644 (file)
index e278727..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef EVAS_ENCODING_H
-#define EVAS_ENCODING_H
-#include <Eina.h>
-
-/* FIXME: An assumption that will probably break in the future */
-#define EVAS_ENCODING_UTF8_BYTES_PER_CHAR 4
-
-EAPI Eina_Unicode
-evas_common_encoding_utf8_get_next(const char *buf, int *iindex);
-
-EAPI Eina_Unicode
-evas_common_encoding_utf8_get_prev(const char *buf, int *iindex);
-
-EAPI Eina_Unicode
-evas_common_encoding_utf8_get_last(const char *buf, int buflen);
-
-EAPI int
-evas_common_encoding_utf8_get_len(const char *buf);
-
-EAPI Eina_Unicode *
-evas_common_encoding_utf8_to_unicode(const char *utf, int *_len) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
-
-EAPI char *
-evas_common_encoding_unicode_to_utf8(const Eina_Unicode *uni, int *_len) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
-
-#endif
index ddacb8e..3db4366 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef _EVAS_FONT_H
 #define _EVAS_FONT_H
-#include "evas_bidi_utils.h"
+#include "evas_text_utils.h"
 
 
 /* main */
@@ -17,7 +17,7 @@ EAPI int               evas_common_font_get_line_advance     (RGBA_Font *fn);
 
 /* draw */
 
-EAPI void              evas_common_font_draw                 (RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props);
+EAPI void              evas_common_font_draw                 (RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Eina_Unicode *text, const Evas_Text_Props *intl_props);
 EAPI int               evas_common_font_glyph_search         (RGBA_Font *fn, RGBA_Font_Int **fi_ret, int gl);
 EAPI RGBA_Font_Glyph  *evas_common_font_int_cache_glyph_get  (RGBA_Font_Int *fi, FT_UInt index);
 EAPI void              evas_common_font_draw_init            (void);
@@ -56,12 +56,13 @@ EAPI void              evas_common_font_all_clear            (void);
 /* query */
 
 EAPI int               evas_common_font_query_kerning        (RGBA_Font_Int* fi, FT_UInt left, FT_UInt right, int* kerning);
-EAPI void              evas_common_font_query_size           (RGBA_Font *fn, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int *w, int *h);
-EAPI int               evas_common_font_query_inset          (RGBA_Font *fn, const Eina_Unicode *text);
-EAPI void              evas_common_font_query_advance        (RGBA_Font *fn, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int *h_adv, int *v_adv);
-EAPI int               evas_common_font_query_char_coords    (RGBA_Font *fn, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch);
-EAPI int               evas_common_font_query_char_at_coords (RGBA_Font *fn, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch);
-EAPI int               evas_common_font_query_last_up_to_pos (RGBA_Font *fn, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int x, int y);
+EAPI void              evas_common_font_query_size           (RGBA_Font *fn, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int *w, int *h);
+EAPI int               evas_common_font_query_inset          (RGBA_Font *fn __UNUSED__, const Evas_Text_Props *text_props);
+EAPI void              evas_common_font_query_advance        (RGBA_Font *fn, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int *h_adv, int *v_adv);
+EAPI int               evas_common_font_query_char_coords    (RGBA_Font *fn, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch);
+EAPI int               evas_common_font_query_pen_coords     (RGBA_Font *fn, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int pos, int *cpen_x, int *cy, int *cadv, int *ch);
+EAPI int               evas_common_font_query_char_at_coords (RGBA_Font *fn, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch);
+EAPI int               evas_common_font_query_last_up_to_pos (RGBA_Font *fn, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int x, int y);
 
 #ifdef EVAS_FRAME_QUEUING
 EAPI void evas_common_font_draw_finish(void);
diff --git a/src/lib/engines/common/evas_font_ot.h b/src/lib/engines/common/evas_font_ot.h
new file mode 100644 (file)
index 0000000..9cf0148
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef _EVAS_FONT_OT_H
+# define _EVAS_FONT_OT_H
+
+# ifdef HAVE_CONFIG_H
+#  include "config.h"
+# endif
+
+# ifdef HAVE_HARFBUZZ
+#  define OT_SUPPORT
+#  define USE_HARFBUZZ
+# endif
+
+# ifdef OT_SUPPORT
+#  include <stdlib.h>
+typedef struct _Evas_Font_OT_Info Evas_Font_OT_Info;
+# else
+typedef void *Evas_Font_OT_Info;
+# endif
+
+# include "Evas.h"
+
+# ifdef OT_SUPPORT
+struct _Evas_Font_OT_Info
+{
+   size_t source_cluster;
+   Evas_Coord x_offset;
+   Evas_Coord y_offset;
+};
+# endif
+
+# ifdef OT_SUPPORT
+#  define EVAS_FONT_OT_X_OFF_GET(a) ((a).x_offset)
+#  define EVAS_FONT_OT_Y_OFF_GET(a) ((a).y_offset)
+#  define EVAS_FONT_OT_POS_GET(a)   ((a).source_cluster)
+# endif
+
+EAPI void
+evas_common_font_ot_load_face(void *_font);
+
+EAPI void
+evas_common_font_ot_unload_face(void *_font);
+
+# include "evas_text_utils.h"
+EAPI int
+evas_common_font_ot_cluster_size_get(const Evas_Text_Props *props, size_t char_index);
+
+EAPI Eina_Bool
+evas_common_font_ot_populate_text_props(void *fn, const Eina_Unicode *text,
+      Evas_Text_Props *props, int len);
+#endif
+
index 57940ee..cc68578 100644 (file)
@@ -1,9 +1,11 @@
 #ifndef _EVAS_FONT_PRIVATE_H
 # define _EVAS_FONT_PRIVATE_H
+#include "evas_font_ot.h"
 
 #ifdef BUILD_PTHREAD
 extern LK(lock_font_draw); // for freetype2 API calls
 extern LK(lock_bidi); // for fribidi API calls
+extern LK(lock_ot); // for harfbuzz calls
 #endif
 
 # if defined(EVAS_FRAME_QUEUING) || defined(BUILD_PIPE_RENDER)
@@ -12,13 +14,15 @@ extern LK(lock_bidi); // for fribidi API calls
 
 #  define BIDILOCK() LKL(lock_bidi)
 #  define BIDIUNLOCK() LKU(lock_bidi)
+
+#  define OTLOCK() LKL(lock_ot)
+#  define OTUNLOCK() LKU(lock_ot)
 # else
-#  define FTLOCK(x) 
-#  define FTUNLOCK(x) 
+#  define FTLOCK(x)
+#  define FTUNLOCK(x)
 
-#  define BIDILOCK() 
-#  define BIDIUNLOCK() 
-# endif
+#  define BIDILOCK()
+#  define BIDIUNLOCK()
 
 void evas_common_font_source_unload(RGBA_Font_Source *fs);
 void evas_common_font_source_reload(RGBA_Font_Source *fs);
@@ -28,5 +32,20 @@ void evas_common_font_int_use_increase(int size);
 void evas_common_font_int_use_trim(void);
 void evas_common_font_int_unload(RGBA_Font_Int *fi);
 void evas_common_font_int_reload(RGBA_Font_Int *fi);
+/* Macros for text walking */
+#  define OTLOCK()
+#  define OTUNLOCK()
+# endif
+
+/* 6th bit is on is the same as frac part >= 0.5 */
+# define EVAS_FONT_ROUND_26_6_TO_INT(x) \
+   (((x + 0x20) & -0x40) >> 6)
+
+# define EVAS_FONT_CHARACTER_IS_INVISIBLE(x) ( \
+      ((0x200C <= (x)) && ((x) <= 0x200D)) || /* ZWNJ..ZWH */ \
+      ((0x200E <= (x)) && ((x) <= 0x200F)) || /* BIDI stuff */ \
+      ((0x202A <= (x)) && ((x) <= 0x202E)) /* BIDI stuff */ \
+      )
 
+# include "evas_font_default_walk.x"
 #endif /* !_EVAS_FONT_PRIVATE_H */
index de033f0..df7f673 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef _EVAS_PIPE_H
 #define _EVAS_PIPE_H
-#include "evas_bidi_utils.h"
+#include "language/evas_bidi_utils.h"
 
 #ifdef BUILD_PTHREAD
 typedef struct _Thinfo
@@ -92,12 +92,12 @@ EAPI void evas_common_pipe_free(RGBA_Image *im);
 EAPI void evas_common_pipe_rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h);
 EAPI void evas_common_pipe_line_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1, int y1);
 EAPI void evas_common_pipe_poly_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Point *points, int x, int y);
-EAPI void evas_common_pipe_text_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props);
+EAPI void evas_common_pipe_text_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int x, int y, const Eina_Unicode *text, const Evas_Text_Props *intl_props);
 EAPI void evas_common_pipe_image_load(RGBA_Image *im);
 EAPI void evas_common_pipe_image_draw(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int smooth, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h);
 EAPI void evas_common_pipe_map_begin(RGBA_Image *root);
 EAPI void evas_common_pipe_map_draw(RGBA_Image *src, RGBA_Image *dst,
-                                    RGBA_Draw_Context *dc, RGBA_Map_Point *p,
+                                    RGBA_Draw_Context *dc, int npoints, RGBA_Map_Point *p,
                                     int smooth, int level);
 EAPI void evas_common_pipe_flush(RGBA_Image *im);
 
diff --git a/src/lib/engines/common/evas_text_utils.h b/src/lib/engines/common/evas_text_utils.h
new file mode 100644 (file)
index 0000000..e4907ab
--- /dev/null
@@ -0,0 +1,76 @@
+#ifndef _EVAS_TEXT_UTILS_H
+# define _EVAS_TEXT_UTILS_H
+
+typedef struct _Evas_Text_Props Evas_Text_Props;
+typedef struct _Evas_Text_Props_Info Evas_Text_Props_Info;
+typedef struct _Evas_Font_Glyph_Info Evas_Font_Glyph_Info;
+
+# include "evas_font_ot.h"
+# include "language/evas_bidi_utils.h"
+# include "language/evas_language_utils.h"
+
+struct _Evas_Text_Props
+{
+   /* Start and len represent the start offset and the length in the
+    * glyphs_info and ot_data fields, they are both internal */
+   size_t start;
+   size_t len;
+   size_t text_offset; /* The text offset from the start of the info */
+   size_t text_len; /* The length of the original text */
+   Evas_BiDi_Props bidi;
+   Evas_Script_Type script;
+   Evas_Text_Props_Info *info;
+};
+
+struct _Evas_Text_Props_Info
+{
+   unsigned int refcount;
+   Evas_Font_Glyph_Info *glyph;
+   Evas_Font_OT_Info *ot;
+};
+
+/* Sorted in visual order when created */
+struct _Evas_Font_Glyph_Info
+{
+   unsigned int index; /* Should conform to FT */
+   Evas_Coord x_bear;
+#if 0
+   /* This one is rarely used, only in draw, in which we already get the glyph
+    * so it doesn't really save time. Leaving it here just so no one will
+    * add it thinking it was accidentally skipped */
+   Evas_Coord y_bear;
+#endif
+   Evas_Coord width;
+   Evas_Coord advance;
+};
+
+
+void
+evas_common_text_props_bidi_set(Evas_Text_Props *props,
+      Evas_BiDi_Paragraph_Props *bidi_par_props, size_t start);
+
+void
+evas_common_text_props_script_set(Evas_Text_Props *props,
+      const Eina_Unicode *str);
+
+EAPI Eina_Bool
+evas_common_text_props_content_create(void *_fn, const Eina_Unicode *text,
+      Evas_Text_Props *text_props, int len);
+
+void
+evas_common_text_props_content_copy_and_ref(Evas_Text_Props *dst,
+      const Evas_Text_Props *src);
+
+void
+evas_common_text_props_content_ref(Evas_Text_Props *props);
+
+void
+evas_common_text_props_content_unref(Evas_Text_Props *props);
+
+
+EAPI void
+evas_common_text_props_split(Evas_Text_Props *base, Evas_Text_Props *ext,
+      int cutoff);
+EAPI void
+evas_common_text_props_merge(Evas_Text_Props *item1, const Evas_Text_Props *item2);
+#endif
similarity index 83%
rename from src/lib/engines/common/evas_bidi_utils.h
rename to src/lib/engines/common/language/evas_bidi_utils.h
index 86a83f1..971c2c4 100644 (file)
@@ -26,7 +26,6 @@
 #endif
 
 #include <Eina.h>
-#include "evas_common.h"
 
 #ifdef USE_FRIBIDI
 # include <fribidi/fribidi.h>
@@ -39,6 +38,8 @@
  * these types in function declarations. Defining as void should help ensuring that.
  */
 
+/* Evas_BiDi_Direction is defined in evas.h */
+
 #ifdef USE_FRIBIDI
 # define _EVAS_BIDI_TYPEDEF(type) \
    typedef FriBidi ## type EvasBiDi ## type
@@ -73,9 +74,10 @@ struct _Evas_BiDi_Paragraph_Props {
 #endif
 };
 
-struct _Evas_BiDi_Props {
-   Evas_BiDi_Paragraph_Props *props;
-   size_t                     start;
+#include "Evas.h"
+struct _Evas_BiDi_Props
+{
+   Evas_BiDi_Direction  dir;
 };
 
 
@@ -102,14 +104,20 @@ struct _Evas_BiDi_Props {
 EvasBiDiStrIndex
 evas_bidi_position_logical_to_visual(EvasBiDiStrIndex *v_to_l, int len, EvasBiDiStrIndex position);
 
+EvasBiDiStrIndex
+evas_bidi_position_reverse(const Evas_BiDi_Props *props, int len, EvasBiDiStrIndex position);
+
 Eina_Bool
 evas_bidi_is_rtl_str(const Eina_Unicode *str);
 
 Eina_Bool
-evas_bidi_is_rtl_char(const Evas_BiDi_Props *bidi_props, EvasBiDiStrIndex index);
+evas_bidi_is_rtl_char(const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, EvasBiDiStrIndex index);
+
+int
+evas_bidi_end_of_run_get(const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, int len);
 
 Eina_Bool
-evas_bidi_props_reorder_line(Eina_Unicode *text, const Evas_BiDi_Props *intl_props, EvasBiDiStrIndex **_v_to_l);
+evas_bidi_props_reorder_line(Eina_Unicode *eina_ustr, size_t start, size_t len, const Evas_BiDi_Paragraph_Props *props, EvasBiDiStrIndex **_v_to_l);
 
 Evas_BiDi_Paragraph_Props *
 evas_bidi_paragraph_props_get(const Eina_Unicode *eina_ustr) EINA_ARG_NONNULL(1) EINA_MALLOC EINA_WARN_UNUSED_RESULT;
@@ -117,8 +125,8 @@ evas_bidi_paragraph_props_get(const Eina_Unicode *eina_ustr) EINA_ARG_NONNULL(1)
 void
 evas_bidi_props_copy_and_ref(const Evas_BiDi_Props *src, Evas_BiDi_Props *dst);
 
-Eina_Bool
-evas_bidi_shape_string(Eina_Unicode *ustr, const Evas_BiDi_Props *intl_props, size_t len);
+EAPI Eina_Bool
+evas_bidi_shape_string(Eina_Unicode *eina_ustr, const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, size_t len);
 
 void
 evas_bidi_props_clean(Evas_BiDi_Props *intl_props) EINA_ARG_NONNULL(1);
diff --git a/src/lib/engines/common/language/evas_language_utils.h b/src/lib/engines/common/language/evas_language_utils.h
new file mode 100644 (file)
index 0000000..0993fd6
--- /dev/null
@@ -0,0 +1,131 @@
+#ifndef _EVAS_LANGUAGE_UTILS
+#define _EVAS_LANGUAGE_UTILS
+
+#include <Eina.h>
+#include "evas_bidi_utils.h"
+
+/* Unicode Script property - conforming to HARFBUZZ's */
+typedef enum
+{
+  EVAS_SCRIPT_INVALID_CODE = -1,
+  EVAS_SCRIPT_COMMON       = 0,   /* Zyyy */
+  EVAS_SCRIPT_INHERITED,          /* Qaai */
+  EVAS_SCRIPT_ARABIC,             /* Arab */
+  EVAS_SCRIPT_ARMENIAN,           /* Armn */
+  EVAS_SCRIPT_BENGALI,            /* Beng */
+  EVAS_SCRIPT_BOPOMOFO,           /* Bopo */
+  EVAS_SCRIPT_CHEROKEE,           /* Cher */
+  EVAS_SCRIPT_COPTIC,             /* Qaac */
+  EVAS_SCRIPT_CYRILLIC,           /* Cyrl (Cyrs) */
+  EVAS_SCRIPT_DESERET,            /* Dsrt */
+  EVAS_SCRIPT_DEVANAGARI,         /* Deva */
+  EVAS_SCRIPT_ETHIOPIC,           /* Ethi */
+  EVAS_SCRIPT_GEORGIAN,           /* Geor (Geon, Geoa) */
+  EVAS_SCRIPT_GOTHIC,             /* Goth */
+  EVAS_SCRIPT_GREEK,              /* Grek */
+  EVAS_SCRIPT_GUJARATI,           /* Gujr */
+  EVAS_SCRIPT_GURMUKHI,           /* Guru */
+  EVAS_SCRIPT_HAN,                /* Hani */
+  EVAS_SCRIPT_HANGUL,             /* Hang */
+  EVAS_SCRIPT_HEBREW,             /* Hebr */
+  EVAS_SCRIPT_HIRAGANA,           /* Hira */
+  EVAS_SCRIPT_KANNADA,            /* Knda */
+  EVAS_SCRIPT_KATAKANA,           /* Kana */
+  EVAS_SCRIPT_KHMER,              /* Khmr */
+  EVAS_SCRIPT_LAO,                /* Laoo */
+  EVAS_SCRIPT_LATIN,              /* Latn (Latf, Latg) */
+  EVAS_SCRIPT_MALAYALAM,          /* Mlym */
+  EVAS_SCRIPT_MONGOLIAN,          /* Mong */
+  EVAS_SCRIPT_MYANMAR,            /* Mymr */
+  EVAS_SCRIPT_OGHAM,              /* Ogam */
+  EVAS_SCRIPT_OLD_ITALIC,         /* Ital */
+  EVAS_SCRIPT_ORIYA,              /* Orya */
+  EVAS_SCRIPT_RUNIC,              /* Runr */
+  EVAS_SCRIPT_SINHALA,            /* Sinh */
+  EVAS_SCRIPT_SYRIAC,             /* Syrc (Syrj, Syrn, Syre) */
+  EVAS_SCRIPT_TAMIL,              /* Taml */
+  EVAS_SCRIPT_TELUGU,             /* Telu */
+  EVAS_SCRIPT_THAANA,             /* Thaa */
+  EVAS_SCRIPT_THAI,               /* Thai */
+  EVAS_SCRIPT_TIBETAN,            /* Tibt */
+  EVAS_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
+  EVAS_SCRIPT_YI,                 /* Yiii */
+  EVAS_SCRIPT_TAGALOG,            /* Tglg */
+  EVAS_SCRIPT_HANUNOO,            /* Hano */
+  EVAS_SCRIPT_BUHID,              /* Buhd */
+  EVAS_SCRIPT_TAGBANWA,           /* Tagb */
+
+  /* Unicode-4.0 additions */
+  EVAS_SCRIPT_BRAILLE,            /* Brai */
+  EVAS_SCRIPT_CYPRIOT,            /* Cprt */
+  EVAS_SCRIPT_LIMBU,              /* Limb */
+  EVAS_SCRIPT_OSMANYA,            /* Osma */
+  EVAS_SCRIPT_SHAVIAN,            /* Shaw */
+  EVAS_SCRIPT_LINEAR_B,           /* Linb */
+  EVAS_SCRIPT_TAI_LE,             /* Tale */
+  EVAS_SCRIPT_UGARITIC,           /* Ugar */
+
+  /* Unicode-4.1 additions */
+  EVAS_SCRIPT_NEW_TAI_LUE,        /* Talu */
+  EVAS_SCRIPT_BUGINESE,           /* Bugi */
+  EVAS_SCRIPT_GLAGOLITIC,         /* Glag */
+  EVAS_SCRIPT_TIFINAGH,           /* Tfng */
+  EVAS_SCRIPT_SYLOTI_NAGRI,       /* Sylo */
+  EVAS_SCRIPT_OLD_PERSIAN,        /* Xpeo */
+  EVAS_SCRIPT_KHAROSHTHI,         /* Khar */
+
+  /* Unicode-5.0 additions */
+  EVAS_SCRIPT_UNKNOWN,            /* Zzzz */
+  EVAS_SCRIPT_BALINESE,           /* Bali */
+  EVAS_SCRIPT_CUNEIFORM,          /* Xsux */
+  EVAS_SCRIPT_PHOENICIAN,         /* Phnx */
+  EVAS_SCRIPT_PHAGS_PA,           /* Phag */
+  EVAS_SCRIPT_NKO,                /* Nkoo */
+
+  /* Unicode-5.1 additions */
+  EVAS_SCRIPT_KAYAH_LI,           /* Kali */
+  EVAS_SCRIPT_LEPCHA,             /* Lepc */
+  EVAS_SCRIPT_REJANG,             /* Rjng */
+  EVAS_SCRIPT_SUNDANESE,          /* Sund */
+  EVAS_SCRIPT_SAURASHTRA,         /* Saur */
+  EVAS_SCRIPT_CHAM,               /* Cham */
+  EVAS_SCRIPT_OL_CHIKI,           /* Olck */
+  EVAS_SCRIPT_VAI,                /* Vaii */
+  EVAS_SCRIPT_CARIAN,             /* Cari */
+  EVAS_SCRIPT_LYCIAN,             /* Lyci */
+  EVAS_SCRIPT_LYDIAN,             /* Lydi */
+
+  /* Unicode-5.2 additions */
+  EVAS_SCRIPT_AVESTAN,                /* Avst */
+  EVAS_SCRIPT_BAMUM,                  /* Bamu */
+  EVAS_SCRIPT_EGYPTIAN_HIEROGLYPHS,   /* Egyp */
+  EVAS_SCRIPT_IMPERIAL_ARAMAIC,       /* Armi */
+  EVAS_SCRIPT_INSCRIPTIONAL_PAHLAVI,  /* Phli */
+  EVAS_SCRIPT_INSCRIPTIONAL_PARTHIAN, /* Prti */
+  EVAS_SCRIPT_JAVANESE,               /* Java */
+  EVAS_SCRIPT_KAITHI,                 /* Kthi */
+  EVAS_SCRIPT_LISU,                   /* Lisu */
+  EVAS_SCRIPT_MEITEI_MAYEK,           /* Mtei */
+  EVAS_SCRIPT_OLD_SOUTH_ARABIAN,      /* Sarb */
+  EVAS_SCRIPT_OLD_TURKIC,             /* Orkh */
+  EVAS_SCRIPT_SAMARITAN,              /* Samr */
+  EVAS_SCRIPT_TAI_THAM,               /* Lana */
+  EVAS_SCRIPT_TAI_VIET                /* Tavt */
+} Evas_Script_Type;
+
+int
+evas_common_language_script_end_of_run_get(const Eina_Unicode *str, const Evas_BiDi_Paragraph_Props *bidi_props, size_t start, int len);
+
+Evas_Script_Type
+evas_common_language_script_type_get(const Eina_Unicode *str);
+
+Evas_Script_Type
+evas_common_language_char_script_get(Eina_Unicode unicode);
+
+const char *
+evas_common_language_from_locale_get(void);
+
+void *
+evas_common_language_unicode_funcs_get(void);
+#endif
+
index b975cbf..6e9cb6d 100644 (file)
@@ -49,10 +49,6 @@ extern EAPI int _evas_log_dom_global;
 #endif
 #define CRIT(...) EINA_LOG_DOM_CRIT(_EVAS_DEFAULT_LOG_DOM, __VA_ARGS__)
 
-/************************ Unicode stuff **************************/
-#include "../engines/common/evas_encoding.h"
-/*****************************************************************/
-
 #include "evas_options.h"
 
 #if defined(__ARM_ARCH_3M__)
@@ -664,6 +660,7 @@ struct _RGBA_Draw_Context
       DATA32 col;
    } col;
    struct RGBA_Draw_Context_clip {
+      DATA8  *mask;
       int    x, y, w, h;
       Eina_Bool use : 1;
    } clip;
@@ -692,7 +689,7 @@ struct _RGBA_Draw_Context
 
 #ifdef BUILD_PIPE_RENDER
 #include "../engines/common/evas_map_image.h"
-#include "../engines/common/evas_bidi_utils.h"
+#include "../engines/common/evas_text_utils.h"
 
 struct _RGBA_Pipe_Op
 {
@@ -714,7 +711,7 @@ struct _RGBA_Pipe_Op
         RGBA_Font          *font;
         int                 x, y;
         Eina_Unicode       *text;
-         Evas_BiDi_Props     intl_props;
+         Evas_Text_Props     intl_props;
       } text;
       struct {
         RGBA_Image         *src;
@@ -725,9 +722,10 @@ struct _RGBA_Pipe_Op
       struct {
         RGBA_Image         *src;
         RGBA_Map_Point     *p;
+        int                 npoints;
         int                 smooth;
         int                 level;
-      } map4;
+      } map;
    } op;
 };
 
@@ -893,6 +891,8 @@ struct _RGBA_Font_Int
    unsigned char    inuse : 1;
 };
 
+#include "../engines/common/evas_font_ot.h"
+
 struct _RGBA_Font_Source
 {
    const char       *name;
@@ -905,6 +905,11 @@ struct _RGBA_Font_Source
       int            orig_upem;
       FT_Face        face;
    } ft;
+#ifdef OT_SUPPORT
+   struct {
+      void *face;
+   } hb;
+#endif
 };
 
 struct _RGBA_Font_Glyph
index 9745bc4..6103bfd 100644 (file)
@@ -11,7 +11,9 @@
 
 #include "../file/evas_module.h"
 #include "../file/evas_path.h"
-#include "../engines/common/evas_bidi_utils.h"
+#include "../engines/common/evas_text_utils.h"
+#include "../engines/common/language/evas_bidi_utils.h"
+#include "../engines/common/language/evas_language_utils.h"
 
 #ifdef EVAS_MAGIC_DEBUG
 /* complain when peole pass in wrong object types etc. */
@@ -53,6 +55,7 @@ typedef struct _Evas_Post_Callback          Evas_Post_Callback;
 #define MAGIC_OBJ_TEXT             0x71777776
 #define MAGIC_OBJ_SMART            0x71777777
 #define MAGIC_OBJ_TEXTBLOCK        0x71777778
+#define MAGIC_OBJ_PROXY                   0x71777779
 #define MAGIC_SMART                0x72777770
 #define MAGIC_OBJ_SHAPE            0x72777773
 #define MAGIC_OBJ_CONTAINER        0x72777774
@@ -650,13 +653,13 @@ struct _Evas_Func
    int  (*font_descent_get)                (void *data, void *font);
    int  (*font_max_ascent_get)             (void *data, void *font);
    int  (*font_max_descent_get)            (void *data, void *font);
-   void (*font_string_size_get)            (void *data, void *font, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int *w, int *h);
-   int  (*font_inset_get)                  (void *data, void *font, const Eina_Unicode *text);
-   int  (*font_h_advance_get)              (void *data, void *font, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props);
-   int  (*font_v_advance_get)              (void *data, void *font, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props);
-   int  (*font_char_coords_get)            (void *data, void *font, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch);
-   int  (*font_char_at_coords_get)         (void *data, void *font, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch);
-   void (*font_draw)                       (void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props);
+   void (*font_string_size_get)            (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int *w, int *h);
+   int  (*font_inset_get)                  (void *data, void *font, const Evas_Text_Props *text_props);
+   int  (*font_h_advance_get)              (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props);
+   int  (*font_v_advance_get)              (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props);
+   int  (*font_char_coords_get)            (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch);
+   int  (*font_char_at_coords_get)         (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch);
+   void (*font_draw)                       (void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, const Eina_Unicode *text, const Evas_Text_Props *intl_props);
 
    void (*font_cache_flush)                (void *data);
    void (*font_cache_set)                  (void *data, int bytes);
@@ -671,7 +674,7 @@ struct _Evas_Func
 
    void (*image_scale_hint_set)            (void *data, void *image, int hint);
    int  (*image_scale_hint_get)            (void *data, void *image);
-   int  (*font_last_up_to_pos)             (void *data, void *font, const Eina_Unicode *text, const Evas_BiDi_Props *intl_props, int x, int y);
+   int  (*font_last_up_to_pos)             (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int x, int y);
 
    void (*image_map_draw)                  (void *data, void *context, void *surface, void *image, int npoints, RGBA_Map_Point *p, int smooth, int level);
    void *(*image_map_surface_new)          (void *data, int w, int h, int alpha);
@@ -679,6 +682,8 @@ struct _Evas_Func
 
    void (*image_content_hint_set)          (void *data, void *surface, int hint);
    int  (*image_content_hint_get)          (void *data, void *surface);
+   int  (*font_pen_coords_get)            (void *data, void *font, const Eina_Unicode *text, const Evas_Text_Props *intl_props, int pos, int *cpen_x, int *cy, int *cadv, int *ch);
+   Eina_Bool (*font_text_props_info_create)                (void *data __UNUSED__, void *font, Eina_Unicode *text, Evas_Text_Props *intl_props, const Evas_BiDi_Paragraph_Props *par_props, size_t pos, size_t len);
 };
 
 struct _Evas_Image_Load_Func
@@ -838,7 +843,7 @@ Eina_Bool evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y, Eva
 /****************************************************************************/
 /*****************************************/
 /********************/
-//#define MPOOL 1
+#define MPOOL 1
 
 #ifdef MPOOL 
 typedef struct _Evas_Mempool Evas_Mempool;
index defaa1a..d83bdd1 100644 (file)
@@ -126,6 +126,8 @@ struct _Evas_GL_Shared
 {
    Eina_List          *images;
    
+   int                 images_size;
+   
    struct {
       GLint max_texture_units;
       GLint max_texture_size;
@@ -356,6 +358,7 @@ struct _Evas_GL_Image
    } native;
 
    int scale_hint, content_hint;
+   int csize;
    
    unsigned char    dirty : 1;
    unsigned char    cached : 1;
@@ -448,14 +451,15 @@ void             evas_gl_common_context_yuv_push(Evas_GL_Context *gc,
                                                  int x, int y, int w, int h,
                                                  int r, int g, int b, int a,
                                                  Eina_Bool smooth);
-void             evas_gl_common_context_image_map4_push(Evas_GL_Context *gc,
-                                                        Evas_GL_Texture *tex,
-                                                        RGBA_Map_Point *p,
-                                                        int clip, int cx, int cy, int cw, int ch,
-                                                        int r, int g, int b, int a,
-                                                        Eina_Bool smooth, 
-                                                        Eina_Bool tex_only,
-                                                        Eina_Bool yuv);
+void             evas_gl_common_context_image_map_push(Evas_GL_Context *gc,
+                                                       Evas_GL_Texture *tex,
+                                                       int npoints,
+                                                       RGBA_Map_Point *p,
+                                                       int clip, int cx, int cy, int cw, int ch,
+                                                       int r, int g, int b, int a,
+                                                       Eina_Bool smooth, 
+                                                       Eina_Bool tex_only,
+                                                       Eina_Bool yuv);
 void              evas_gl_common_context_flush(Evas_GL_Context *gc);
 
 int               evas_gl_common_shader_program_init(Evas_GL_Program *p,
@@ -480,6 +484,8 @@ void              evas_gl_common_texture_yuv_update(Evas_GL_Texture *tex, DATA8
 
 void              evas_gl_common_image_all_unload(Evas_GL_Context *gc);
 
+void              evas_gl_common_image_ref(Evas_GL_Image *im);
+void              evas_gl_common_image_unref(Evas_GL_Image *im);
 Evas_GL_Image    *evas_gl_common_image_load(Evas_GL_Context *gc, const char *file, const char *key, Evas_Image_Load_Opts *lo, int *error);
 Evas_GL_Image    *evas_gl_common_image_new_from_data(Evas_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, int cspace);
 Evas_GL_Image    *evas_gl_common_image_new_from_copied_data(Evas_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, int cspace);
@@ -489,10 +495,11 @@ void              evas_gl_common_image_native_enable(Evas_GL_Image *im);
 void              evas_gl_common_image_native_disable(Evas_GL_Image *im);
 void              evas_gl_common_image_scale_hint_set(Evas_GL_Image *im, int hint);
 void              evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint);
+void              evas_gl_common_image_cache_flush(Evas_GL_Context *gc);
 void              evas_gl_common_image_free(Evas_GL_Image *im);
 Evas_GL_Image    *evas_gl_common_image_surface_new(Evas_GL_Context *gc, unsigned int w, unsigned int h, int alpha);
 void              evas_gl_common_image_dirty(Evas_GL_Image *im, unsigned int x, unsigned int y, unsigned int w, unsigned int h);
-void              evas_gl_common_image_map4_draw(Evas_GL_Context *gc, Evas_GL_Image *im, RGBA_Map_Point *p, int smooth, int level);
+void              evas_gl_common_image_map_draw(Evas_GL_Context *gc, Evas_GL_Image *im, int npoints, RGBA_Map_Point *p, int smooth, int level);
 void              evas_gl_common_image_draw(Evas_GL_Context *gc, Evas_GL_Image *im, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, int smooth);
 
 void             *evas_gl_font_texture_new(void *gc, RGBA_Font_Glyph *fg);
index 3254f75..c1a1123 100644 (file)
@@ -75,13 +75,15 @@ static int eng_font_ascent_get(void *data, void *font);
 static int eng_font_descent_get(void *data, void *font);
 static int eng_font_max_ascent_get(void *data, void *font);
 static int eng_font_max_descent_get(void *data, void *font);
-static void eng_font_string_size_get(void *data, void *font, const char *text, const Evas_BiDi_Props *intl_props, int *w, int *h);
-static int eng_font_inset_get(void *data, void *font, const char *text);
-static int eng_font_h_advance_get(void *data, void *font, const char *text, const Evas_BiDi_Props *intl_props);
-static int eng_font_v_advance_get(void *data, void *font, const char *text, const Evas_BiDi_Props *intl_props);
-static int eng_font_char_coords_get(void *data, void *font, const char *text, const Evas_BiDi_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch);
-static int eng_font_char_at_coords_get(void *data, void *font, const char *text, const Evas_BiDi_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch);
-static void eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, const char *text, const Evas_BiDi_Props *intl_props);
+static void eng_font_string_size_get(void *data, void *font, const char *text, const Evas_Text_Props *intl_props, int *w, int *h);
+static int eng_font_inset_get(void *data, void *font, const Evas_Text_Props *intl_props);
+static int eng_font_h_advance_get(void *data, void *font, const char *text, const Evas_Text_Props *intl_props);
+static int eng_font_v_advance_get(void *data, void *font, const char *text, const Evas_Text_Props *intl_props);
+static int eng_font_char_coords_get(void *data, void *font, const char *text, const Evas_Text_Props *intl_props, int pos, int *cx, int *cy, int *cw, int *ch);
+static int eng_font_pen_coords_get(void *data, void *font, const char *text, const Evas_Text_Props *intl_props, int pos, int *cpen_x, int *cy, int *cadv, int *ch);
+static Eina_Bool eng_font_text_props_info_create(void *data __UNUSED__, void *font, Eina_Unicode *text, Evas_Text_Props *intl_props, const Evas_BiDi_Paragraph_Props *par_props, size_t pos, size_t len);
+static int eng_font_char_at_coords_get(void *data, void *font, const char *text, const Evas_Text_Props *intl_props, int x, int y, int *cx, int *cy, int *cw, int *ch);
+static void eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y, int w, int h, int ow, int oh, const char *text, const Evas_Text_Props *intl_props);
 static void eng_font_hinting_set(void *data, void *font, int hinting);
 static int eng_font_hinting_can_hint(void *data, int hinting);
 
diff --git a/win32/common/config.h b/win32/common/config.h
deleted file mode 100644 (file)
index 5a94303..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-/* config.h.  Generated from config.h.in by configure.  */\r
-/* config.h.in.  Generated from configure.in by autoheader.  */\r
-\r
-/* Build Altivec Code */\r
-/* #undef BUILD_ALTIVEC */\r
-\r
-/* Build plain C code */\r
-#define BUILD_C 1\r
-\r
-/* 16bpp BGR 565 Converter Support */\r
-#define BUILD_CONVERT_16_BGR_565 1\r
-\r
-/* 16bpp RGB 444 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_444 1\r
-\r
-/* 16bpp 565 (444 ipaq) Converter Support */\r
-#define BUILD_CONVERT_16_RGB_454645 1\r
-\r
-/* 16bpp RGB 555 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_555 1\r
-\r
-/* 16bpp RGB 565 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_565 1\r
-\r
-/* 16bpp RGB Rotation 0 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_ROT0 1\r
-\r
-/* 16bpp RGB Rotation 180 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_ROT180 1\r
-\r
-/* 16bpp RGB Rotation 270 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_ROT270 1\r
-\r
-/* 16bpp RGB Rotation 90 Converter Support */\r
-#define BUILD_CONVERT_16_RGB_ROT90 1\r
-\r
-/* 24bpp BGR 888 Converter Support */\r
-#define BUILD_CONVERT_24_BGR_888 1\r
-\r
-/* 24bpp RGB 888 Converter Support */\r
-#define BUILD_CONVERT_24_RGB_888 1\r
-\r
-/* 32bpp BGRX 8888 Converter Support */\r
-#define BUILD_CONVERT_32_BGRX_8888 1\r
-\r
-/* 32bpp BGR 8888 Converter Support */\r
-#define BUILD_CONVERT_32_BGR_8888 1\r
-\r
-/* 32bpp RGBX 8888 Converter Support */\r
-#define BUILD_CONVERT_32_RGBX_8888 1\r
-\r
-/* 32bpp RGB 8888 Converter Support */\r
-#define BUILD_CONVERT_32_RGB_8888 1\r
-\r
-/* 32bpp RGB Rotation 0 Converter Support */\r
-#define BUILD_CONVERT_32_RGB_ROT0 1\r
-\r
-/* 32bpp RGB Rotation 180 Converter Support */\r
-#define BUILD_CONVERT_32_RGB_ROT180 1\r
-\r
-/* 32bpp RGB Rotation 270 Converter Support */\r
-#define BUILD_CONVERT_32_RGB_ROT270 1\r
-\r
-/* 32bpp RGB Rotation 90 Converter Support */\r
-#define BUILD_CONVERT_32_RGB_ROT90 1\r
-\r
-/* 8bpp RGB 111 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_111 1\r
-\r
-/* 8bpp RGB 121 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_121 1\r
-\r
-/* 8bpp RGB 221 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_221 1\r
-\r
-/* 8bpp RGB 222 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_222 1\r
-\r
-/* 8bpp RGB 232 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_232 1\r
-\r
-/* 8bpp RGB 332 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_332 1\r
-\r
-/* 8bpp RGB 666 Converter Support */\r
-#define BUILD_CONVERT_8_RGB_666 1\r
-\r
-/* YUV Converter Support */\r
-#define BUILD_CONVERT_YUV 1\r
-\r
-/* Buffer Rendering Backend */\r
-#define BUILD_ENGINE_BUFFER 1\r
-\r
-/* Generic Cairo Rendering Support */\r
-/* #undef BUILD_ENGINE_CAIRO_COMMON */\r
-\r
-/* Cairo X11 Rendering Backend */\r
-/* #undef BUILD_ENGINE_CAIRO_X11 */\r
-\r
-/* Direct3D Rendering Backend */\r
-#define BUILD_ENGINE_DIRECT3D 1\r
-\r
-/* DirectFB Rendering Backend */\r
-/* #undef BUILD_ENGINE_DIRECTFB */\r
-\r
-/* Linux FB Rendering Backend */\r
-/* #undef BUILD_ENGINE_FB */\r
-\r
-/* Glitz X11 Rendering Backend */\r
-/* #undef BUILD_ENGINE_GLITZ_X11 */\r
-\r
-/* Generic OpenGL Rendering Support */\r
-#define BUILD_ENGINE_GL_COMMON 1\r
-\r
-/* OpenGL Glew Rendering Backend */\r
-#define BUILD_ENGINE_GL_GLEW 1\r
-\r
-/* OpenGL X11 Rendering Backend */\r
-/* #undef BUILD_ENGINE_GL_X11 */\r
-\r
-/* SDL Rendering Backend */\r
-#define BUILD_ENGINE_SDL 1\r
-\r
-/* 16bit Software DirectDraw Rendering Backend */\r
-/* #undef BUILD_ENGINE_SOFTWARE_16_DDRAW */\r
-\r
-/* Software 16bit X11 Rendering Backend */\r
-/* #undef BUILD_ENGINE_SOFTWARE_16_X11 */\r
-\r
-/* Software DirectDraw Rendering Backend */\r
-/* #undef BUILD_ENGINE_SOFTWARE_DDRAW */\r
-\r
-/* Qtopia Rendering Backend */\r
-/* #undef BUILD_ENGINE_SOFTWARE_QTOPIA */\r
-\r
-/* Software X11 Rendering Backend */\r
-/* #undef BUILD_ENGINE_SOFTWARE_X11 */\r
-\r
-/* Software XCB Rendering Backend */\r
-/* #undef BUILD_ENGINE_SOFTWARE_XCB */\r
-\r
-/* XRender X11 Rendering Backend */\r
-/* #undef BUILD_ENGINE_XRENDER_X11 */\r
-\r
-/* Xrender XCB Rendering Backend */\r
-/* #undef BUILD_ENGINE_XRENDER_XCB */\r
-\r
-/* EET Font Loader Support */\r
-#define BUILD_FONT_LOADER_EET 1\r
-\r
-/* EDB Image Loader Support */\r
-/* #undef BUILD_LOADER_EDB */\r
-\r
-/* EET Image Loader Support */\r
-#define BUILD_LOADER_EET 1\r
-\r
-/* GIF Image Loader Support */\r
-#define BUILD_LOADER_GIF 1\r
-\r
-/* JPEG Image Loader Support */\r
-#define BUILD_LOADER_JPEG 1\r
-\r
-/* TIFF Image Loader Support */\r
-#define BUILD_LOADER_TIFF 1\r
-\r
-/* Build MMX Code */\r
-/* #define BUILD_MMX 1 */\r
-\r
-/* No Dither Mask Support */\r
-/* #undef BUILD_NO_DITHER_MASK */\r
-\r
-/* Build Threaded Rendering */\r
-/* #undef BUILD_PTHREAD */\r
-\r
-/* Sampling Scaler Support */\r
-#define BUILD_SCALE_SAMPLE 1\r
-\r
-/* Smooth Scaler Support */\r
-#define BUILD_SCALE_SMOOTH 1\r
-\r
-/* Small Dither Mask Support */\r
-/* #undef BUILD_SMALL_DITHER_MASK */\r
-\r
-/* Build SSE Code */\r
-/* #define BUILD_SSE 1 */\r
-\r
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP\r
-   systems. This function is required for `alloca.c' support on those systems.\r
-   */\r
-/* #undef CRAY_STACKSEG_END */\r
-\r
-/* Define to 1 if using `alloca.c'. */\r
-/* #undef C_ALLOCA */\r
-\r
-/* Define to mention that evas is built */\r
-#define EFL_EVAS_BUILD 1\r
-\r
-/* Define to 1 if you have `alloca', as a function or macro. */\r
-#define HAVE_ALLOCA 1\r
-\r
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).\r
-   */\r
-/* #undef HAVE_ALLOCA_H */\r
-\r
-/* Have altivec.h header file */\r
-/* #undef HAVE_ALTIVEC_H */\r
-\r
-/* Define to 1 if you have the <d3d9.h> header file. */\r
-#define HAVE_D3D9_H 1\r
-\r
-/* Define to 1 if you have the <d3dx9.h> header file. */\r
-/* #undef HAVE_D3DX9_H */\r
-\r
-/* Define to 1 if you have the `dladdr' function. */\r
-#define HAVE_DLADDR 1\r
-\r
-/* Define to 1 if you have the <dlfcn.h> header file. */\r
-#define HAVE_DLFCN_H 1\r
-\r
-/* Define to 1 if you have the `dlopen' function. */\r
-/* #undef HAVE_DLOPEN */\r
-\r
-/* Set to 1 if evil package is installed */\r
-#define HAVE_EVIL 1\r
-\r
-/* Define to 1 if you have the `fnmatch' function. */\r
-/* #undef HAVE_FNMATCH */\r
-\r
-/* have fontconfig searching capabilities */\r
-#define HAVE_FONTCONFIG 1\r
-\r
-/* Define to 1 if you have the <GL/glew.h> header file. */\r
-#define HAVE_GL_GLEW_H 1\r
-\r
-/* Define to 1 if you have the <GL/glu.h> header file. */\r
-#define HAVE_GL_GLU_H 1\r
-\r
-/* Define to 1 if you have the <GL/gl.h> header file. */\r
-#define HAVE_GL_GL_H 1\r
-\r
-/* Define to 1 if you have the <inttypes.h> header file. */\r
-#define HAVE_INTTYPES_H 1\r
-\r
-/* Define to 1 if you have the <memory.h> header file. */\r
-#define HAVE_MEMORY_H 1\r
-\r
-/* Define to 1 if you have the <pthread.h> header file. */\r
-/* #undef HAVE_PTHREAD_H */\r
-\r
-/* Define to 1 if you have the <sched.h> header file. */\r
-/* #undef HAVE_SCHED_H */\r
-\r
-/* Define to 1 if you have the <stdint.h> header file. */\r
-/* #define HAVE_STDINT_H 1 */\r
-\r
-/* Define to 1 if you have the <stdlib.h> header file. */\r
-#define HAVE_STDLIB_H 1\r
-\r
-/* Define to 1 if you have the <strings.h> header file. */\r
-#define HAVE_STRINGS_H 1\r
-\r
-/* Define to 1 if you have the <string.h> header file. */\r
-#define HAVE_STRING_H 1\r
-\r
-/* Define to 1 if you have the <sys/stat.h> header file. */\r
-#define HAVE_SYS_STAT_H 1\r
-\r
-/* Define to 1 if you have the <sys/types.h> header file. */\r
-#define HAVE_SYS_TYPES_H 1\r
-\r
-/* Define to 1 if you have the <unistd.h> header file. */\r
-/* #define HAVE_UNISTD_H 1 */\r
-\r
-/* Valgrind support */\r
-/* #undef HAVE_VALGRIND */\r
-\r
-/* Define to 1 if you have the <X11/extensions/Xrender.h> header file. */\r
-/* #undef HAVE_X11_EXTENSIONS_XRENDER_H */\r
-\r
-/* Define to 1 if you have the <X11/X.h> header file. */\r
-/* #undef HAVE_X11_X_H */\r
-\r
-/* Name of package */\r
-#define PACKAGE "evas"\r
-\r
-/* Define to the address where bug reports for this package should be sent. */\r
-#define PACKAGE_BUGREPORT "enlightenment-devel@lists.sourceforge.net"\r
-\r
-/* Define to the full name of this package. */\r
-#define PACKAGE_NAME "evas"\r
-\r
-/* Define to the full name and version of this package. */\r
-#define PACKAGE_STRING "evas 1.0.0"\r
-\r
-/* Define to the one symbol short name of this package. */\r
-#define PACKAGE_TARNAME "evas"\r
-\r
-/* Define to the version of this package. */\r
-#define PACKAGE_VERSION "1.0.0"\r
-\r
-/* If using the C implementation of alloca, define if you know the\r
-   direction of stack growth for your system; otherwise it will be\r
-   automatically deduced at runtime.\r
-       STACK_DIRECTION > 0 => grows toward higher addresses\r
-       STACK_DIRECTION < 0 => grows toward lower addresses\r
-       STACK_DIRECTION = 0 => direction of growth unknown */\r
-/* #undef STACK_DIRECTION */\r
-\r
-/* Define to 1 if you have the ANSI C header files. */\r
-#define STDC_HEADERS 1\r
-\r
-/* Version number of package */\r
-#define VERSION "1.0.0"\r
-\r
-/* Define to 1 if your processor stores words with the most significant byte\r
-   first (like Motorola and SPARC, unlike Intel and VAX). */\r
-/* #undef WORDS_BIGENDIAN */\r
-\r
-/* Define to 1 if the X Window System is missing or not being used. */\r
-#define X_DISPLAY_MISSING 1\r
-\r
-/* Define to empty if `const' does not conform to ANSI C. */\r
-/* #undef const */\r
-\r
-#define VMAJ 1\r
-#define VMIN 0\r
-#define VMIC 0\r
-#define VREV 0\r