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
*
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
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);
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);
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);
+++ /dev/null
-#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
#ifndef _EVAS_FONT_H
#define _EVAS_FONT_H
-#include "evas_bidi_utils.h"
+#include "evas_text_utils.h"
/* main */
/* 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);
/* 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);
--- /dev/null
+#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
+
#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)
# 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);
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 */
#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
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);
--- /dev/null
+#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
#endif
#include <Eina.h>
-#include "evas_common.h"
#ifdef USE_FRIBIDI
# include <fribidi/fribidi.h>
* 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
#endif
};
-struct _Evas_BiDi_Props {
- Evas_BiDi_Paragraph_Props *props;
- size_t start;
+#include "Evas.h"
+struct _Evas_BiDi_Props
+{
+ Evas_BiDi_Direction dir;
};
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;
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);
--- /dev/null
+#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
+
#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__)
DATA32 col;
} col;
struct RGBA_Draw_Context_clip {
+ DATA8 *mask;
int x, y, w, h;
Eina_Bool use : 1;
} clip;
#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
{
RGBA_Font *font;
int x, y;
Eina_Unicode *text;
- Evas_BiDi_Props intl_props;
+ Evas_Text_Props intl_props;
} text;
struct {
RGBA_Image *src;
struct {
RGBA_Image *src;
RGBA_Map_Point *p;
+ int npoints;
int smooth;
int level;
- } map4;
+ } map;
} op;
};
unsigned char inuse : 1;
};
+#include "../engines/common/evas_font_ot.h"
+
struct _RGBA_Font_Source
{
const char *name;
int orig_upem;
FT_Face face;
} ft;
+#ifdef OT_SUPPORT
+ struct {
+ void *face;
+ } hb;
+#endif
};
struct _RGBA_Font_Glyph
#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. */
#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
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);
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);
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
/****************************************************************************/
/*****************************************/
/********************/
-//#define MPOOL 1
+#define MPOOL 1
#ifdef MPOOL
typedef struct _Evas_Mempool Evas_Mempool;
{
Eina_List *images;
+ int images_size;
+
struct {
GLint max_texture_units;
GLint max_texture_size;
} native;
int scale_hint, content_hint;
+ int csize;
unsigned char dirty : 1;
unsigned char cached : 1;
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,
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);
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);
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);
+++ /dev/null
-/* 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