forked from enlightenment/efl
parent
a7d5c71d07
commit
a27c701f27
|
@ -980,7 +980,7 @@ message(void *fdata, Server *s, Client *c, int opcode, int size, unsigned char *
|
|||
|
||||
DBG("OP_LOAD %i", c->pid);
|
||||
rep = (Op_Load *)data;
|
||||
file = data + sizeof(Op_Load);
|
||||
file = (char*) (data + sizeof(Op_Load));
|
||||
key = file + strlen(file) + 1;
|
||||
if (key[0] == 0) key = NULL;
|
||||
lopt.scale_down_by = rep->lopt.scale_down_by;
|
||||
|
@ -1320,14 +1320,14 @@ message(void *fdata, Server *s, Client *c, int opcode, int size, unsigned char *
|
|||
it.file_key_size = 0;
|
||||
if (img->file.file)
|
||||
{
|
||||
strcpy(p + sizeof(Op_Getinfo_Item) + it.file_key_size, img->file.file);
|
||||
strcpy((char*) p + sizeof(Op_Getinfo_Item) + it.file_key_size, img->file.file);
|
||||
it.file_key_size += strlen(img->file.file);
|
||||
}
|
||||
p[sizeof(Op_Getinfo_Item) + it.file_key_size] = 0;
|
||||
it.file_key_size += 1;
|
||||
if (img->file.key)
|
||||
{
|
||||
strcpy(p + sizeof(Op_Getinfo_Item) + it.file_key_size, img->file.key);
|
||||
strcpy((char*) p + sizeof(Op_Getinfo_Item) + it.file_key_size, img->file.key);
|
||||
it.file_key_size += strlen(img->file.key);
|
||||
}
|
||||
p[sizeof(Op_Getinfo_Item) + it.file_key_size] = 0;
|
||||
|
|
|
@ -111,7 +111,7 @@ main(int argc, char **argv)
|
|||
|
||||
itt = (Op_Getinfo_Item *)p;
|
||||
memcpy(&it, itt, sizeof(Op_Getinfo_Item));
|
||||
file = p + sizeof(Op_Getinfo_Item);
|
||||
file = (char*) (p + sizeof(Op_Getinfo_Item));
|
||||
key = file + strlen(file) + 1;
|
||||
printf("-IMAGE- [#%i]\n", i);
|
||||
printf(" file : %s\n", file);
|
||||
|
|
|
@ -116,7 +116,8 @@ evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y,
|
|||
{
|
||||
int order[4], i, j, edges, edge[4][2], douv;
|
||||
Evas_Coord xe[2];
|
||||
double u[2], v[2];
|
||||
double u[2] = { 0.0, 0.0 };
|
||||
double v[2] = { 0.0, 0.0 };
|
||||
|
||||
if (m->count != 4) return 0;
|
||||
// FIXME need to handle grab mode and extrapolte coords outside
|
||||
|
|
|
@ -79,7 +79,7 @@ _evas_object_box_iterator_free(Evas_Object_Box_Iterator *it)
|
|||
static Eina_Bool
|
||||
_evas_object_box_accessor_get_at(Evas_Object_Box_Accessor *it, unsigned int index, void **data)
|
||||
{
|
||||
Evas_Object_Box_Option *opt;
|
||||
Evas_Object_Box_Option *opt = NULL;
|
||||
|
||||
if (!eina_accessor_data_get(it->real_accessor, index, (void *)&opt))
|
||||
return EINA_FALSE;
|
||||
|
|
|
@ -138,7 +138,7 @@ _evas_object_table_iterator_free(Evas_Object_Table_Iterator *it)
|
|||
static Eina_Bool
|
||||
_evas_object_table_accessor_get_at(Evas_Object_Table_Accessor *it, unsigned int index, void **data)
|
||||
{
|
||||
Evas_Object_Table_Option *opt;
|
||||
Evas_Object_Table_Option *opt = NULL;
|
||||
|
||||
if (!eina_accessor_data_get(it->real_accessor, index, (void **)&opt))
|
||||
return EINA_FALSE;
|
||||
|
|
|
@ -1266,7 +1266,7 @@ EAPI int
|
|||
evas_string_char_len_get(const char *str)
|
||||
{
|
||||
if (!str) return 0;
|
||||
return evas_common_font_utf8_get_len(str);
|
||||
return evas_common_font_utf8_get_len((const unsigned char *) str);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -163,6 +163,8 @@ static void evas_object_textblock_coords_recalc(Evas_Object *obj);
|
|||
|
||||
static void evas_object_textblock_scale_update(Evas_Object *obj);
|
||||
|
||||
static void evas_object_textblock_text_markup_rebuild(Evas_Object_Textblock *o);
|
||||
|
||||
static const Evas_Object_Func object_func =
|
||||
{
|
||||
/* methods (compulsory) */
|
||||
|
@ -225,6 +227,161 @@ static const Evas_Object_Func object_func =
|
|||
* @ingroup Evas_Object_Specific
|
||||
*/
|
||||
|
||||
/* table of html escapes (that i can find) this should be ordered with the
|
||||
* most common first as it's a linear search to match - no hash for this.
|
||||
*
|
||||
* these are stored as one large string and one additional array that
|
||||
* contains the offsets to the tokens for space efficiency.
|
||||
*/
|
||||
static const char escape_strings[] =
|
||||
/* most common escaped stuff */
|
||||
" \0" "\x20\0" /* NOTE: this here to avoid escaping to   */
|
||||
" \0" "\x20\0" /* NOTE: we allow nsbp's to break as we map early - maybe map to ascii 0x01 and then make the rendering code think 0x01 -> 0x20 */
|
||||
""\0" "\x22\0"
|
||||
"&\0" "\x26\0"
|
||||
"<\0" "\x3c\0"
|
||||
">\0" "\x3e\0"
|
||||
/* all the rest */
|
||||
"¡\0" "\xc2\xa1\0"
|
||||
"¢\0" "\xc2\xa2\0"
|
||||
"£\0" "\xc2\xa3\0"
|
||||
"¤\0" "\xc2\xa4\0"
|
||||
"¥\0" "\xc2\xa5\0"
|
||||
"¦\0" "\xc2\xa6\0"
|
||||
"§\0" "\xc2\xa7\0"
|
||||
"¨\0" "\xc2\xa8\0"
|
||||
"©\0" "\xc2\xa9\0"
|
||||
"ª\0" "\xc2\xaa\0"
|
||||
"«\0" "\xc2\xab\0"
|
||||
"¬\0" "\xc2\xac\0"
|
||||
"®\0" "\xc2\xae\0"
|
||||
"¯\0" "\xc2\xaf\0"
|
||||
"°\0" "\xc2\xb0\0"
|
||||
"±\0" "\xc2\xb1\0"
|
||||
"²\0" "\xc2\xb2\0"
|
||||
"³\0" "\xc2\xb3\0"
|
||||
"´\0" "\xc2\xb4\0"
|
||||
"µ\0" "\xc2\xb5\0"
|
||||
"¶\0" "\xc2\xb6\0"
|
||||
"·\0" "\xc2\xb7\0"
|
||||
"¸\0" "\xc2\xb8\0"
|
||||
"¹\0" "\xc2\xb9\0"
|
||||
"º\0" "\xc2\xba\0"
|
||||
"»\0" "\xc2\xbb\0"
|
||||
"¼\0" "\xc2\xbc\0"
|
||||
"½\0" "\xc2\xbd\0"
|
||||
"¾\0" "\xc2\xbe\0"
|
||||
"¿\0" "\xc2\xbf\0"
|
||||
"À\0" "\xc3\x80\0"
|
||||
"Á\0" "\xc3\x81\0"
|
||||
"Â\0" "\xc3\x82\0"
|
||||
"Ã\0" "\xc3\x83\0"
|
||||
"Ä\0" "\xc3\x84\0"
|
||||
"Å\0" "\xc3\x85\0"
|
||||
"&Aelig;\0" "\xc3\x86\0"
|
||||
"Ç\0" "\xc3\x87\0"
|
||||
"È\0" "\xc3\x88\0"
|
||||
"É\0" "\xc3\x89\0"
|
||||
"Ê\0" "\xc3\x8a\0"
|
||||
"Ë\0" "\xc3\x8b\0"
|
||||
"È\0" "\xc3\x8c\0"
|
||||
"É\0" "\xc3\x8d\0"
|
||||
"Î\0" "\xc3\x8e\0"
|
||||
"Ï\0" "\xc3\x8f\0"
|
||||
"&Eth;\0" "\xc3\x90\0"
|
||||
"Ñ\0" "\xc3\x91\0"
|
||||
"Ò\0" "\xc3\x92\0"
|
||||
"Ó\0" "\xc3\x93\0"
|
||||
"Ô\0" "\xc3\x94\0"
|
||||
"Õ\0" "\xc3\x95\0"
|
||||
"Ö\0" "\xc3\x96\0"
|
||||
"×\0" "\xc3\x97\0"
|
||||
"Ø\0" "\xc3\x98\0"
|
||||
"Ù\0" "\xc3\x99\0"
|
||||
"Ú\0" "\xc3\x9a\0"
|
||||
"Û\0" "\xc3\x9b\0"
|
||||
"Ý\0" "\xc3\x9d\0"
|
||||
"&Thorn;\0" "\xc3\x9e\0"
|
||||
"ß\0" "\xc3\x9f\0"
|
||||
"à\0" "\xc3\xa0\0"
|
||||
"á\0" "\xc3\xa1\0"
|
||||
"â\0" "\xc3\xa2\0"
|
||||
"ã\0" "\xc3\xa3\0"
|
||||
"ä\0" "\xc3\xa4\0"
|
||||
"å\0" "\xc3\xa5\0"
|
||||
"æ\0" "\xc3\xa6\0"
|
||||
"ç\0" "\xc3\xa7\0"
|
||||
"è\0" "\xc3\xa8\0"
|
||||
"é\0" "\xc3\xa9\0"
|
||||
"ê\0" "\xc3\xaa\0"
|
||||
"ë\0" "\xc3\xab\0"
|
||||
"ì\0" "\xc3\xac\0"
|
||||
"í\0" "\xc3\xad\0"
|
||||
"î\0" "\xc3\xae\0"
|
||||
"ï\0" "\xc3\xaf\0"
|
||||
"ð\0" "\xc3\xb0\0"
|
||||
"ñ\0" "\xc3\xb1\0"
|
||||
"ò\0" "\xc3\xb2\0"
|
||||
"ó\0" "\xc3\xb3\0"
|
||||
"ô\0" "\xc3\xb4\0"
|
||||
"õ\0" "\xc3\xb5\0"
|
||||
"ö\0" "\xc3\xb6\0"
|
||||
"÷\0" "\xc3\xb7\0"
|
||||
"ø\0" "\xc3\xb8\0"
|
||||
"ù\0" "\xc3\xb9\0"
|
||||
"ú\0" "\xc3\xba\0"
|
||||
"û\0" "\xc3\xbb\0"
|
||||
"ü\0" "\xc3\xbc\0"
|
||||
"ý\0" "\xc3\xbd\0"
|
||||
"þ\0" "\xc3\xbe\0"
|
||||
"ÿ\0" "\xc3\xbf\0"
|
||||
"α\0" "\xce\x91\0"
|
||||
"β\0" "\xce\x92\0"
|
||||
"γ\0" "\xce\x93\0"
|
||||
"δ\0" "\xce\x94\0"
|
||||
"ε\0" "\xce\x95\0"
|
||||
"ζ\0" "\xce\x96\0"
|
||||
"η\0" "\xce\x97\0"
|
||||
"θ\0" "\xce\x98\0"
|
||||
"ι\0" "\xce\x99\0"
|
||||
"κ\0" "\xce\x9a\0"
|
||||
"λ\0" "\xce\x9b\0"
|
||||
"μ\0" "\xce\x9c\0"
|
||||
"ν\0" "\xce\x9d\0"
|
||||
"ξ\0" "\xce\x9e\0"
|
||||
"ο\0" "\xce\x9f\0"
|
||||
"π\0" "\xce\xa0\0"
|
||||
"ρ\0" "\xce\xa1\0"
|
||||
"σ\0" "\xce\xa3\0"
|
||||
"τ\0" "\xce\xa4\0"
|
||||
"υ\0" "\xce\xa5\0"
|
||||
"φ\0" "\xce\xa6\0"
|
||||
"χ\0" "\xce\xa7\0"
|
||||
"ψ\0" "\xce\xa8\0"
|
||||
"ω\0" "\xce\xa9\0"
|
||||
"…\0" "\xe2\x80\xa6\0"
|
||||
"€\0" "\xe2\x82\xac\0"
|
||||
"←\0" "\xe2\x86\x90\0"
|
||||
"↑\0" "\xe2\x86\x91\0"
|
||||
"→\0" "\xe2\x86\x92\0"
|
||||
"↓\0" "\xe2\x86\x93\0"
|
||||
"↔\0" "\xe2\x86\x94\0"
|
||||
"←\0" "\xe2\x87\x90\0"
|
||||
"→\0" "\xe2\x87\x92\0"
|
||||
"∀\0" "\xe2\x88\x80\0"
|
||||
"∃\0" "\xe2\x88\x83\0"
|
||||
"∇\0" "\xe2\x88\x87\0"
|
||||
"∏\0" "\xe2\x88\x8f\0"
|
||||
"∑\0" "\xe2\x88\x91\0"
|
||||
"∧\0" "\xe2\x88\xa7\0"
|
||||
"∨\0" "\xe2\x88\xa8\0"
|
||||
"∫\0" "\xe2\x88\xab\0"
|
||||
"≠\0" "\xe2\x89\xa0\0"
|
||||
"≡\0" "\xe2\x89\xa1\0"
|
||||
"⊕\0" "\xe2\x8a\x95\0"
|
||||
"⊥\0" "\xe2\x8a\xa5\0"
|
||||
;
|
||||
|
||||
/* styles */
|
||||
static void
|
||||
_style_clear(Evas_Textblock_Style *ts)
|
||||
|
@ -480,6 +637,87 @@ _lines_clear(const Evas_Object *obj, Evas_Object_Textblock_Line *lines)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
_advance_after_end_of_string(const char **p_buf)
|
||||
{
|
||||
while (**p_buf != 0) (*p_buf)++;
|
||||
(*p_buf)++;
|
||||
}
|
||||
|
||||
static inline int
|
||||
_is_eq_and_advance(const char *s, const char *s_end,
|
||||
const char **p_m, const char *m_end)
|
||||
{
|
||||
for (;((s < s_end) && (*p_m < m_end)); s++, (*p_m)++)
|
||||
{
|
||||
if (*s != **p_m)
|
||||
{
|
||||
_advance_after_end_of_string(p_m);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (*p_m < m_end)
|
||||
_advance_after_end_of_string(p_m);
|
||||
|
||||
return s == s_end;
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
_escaped_char_match(const char *s, int *adv)
|
||||
{
|
||||
const char *map_itr, *map_end, *mc, *sc;
|
||||
|
||||
map_itr = escape_strings;
|
||||
map_end = map_itr + sizeof(escape_strings);
|
||||
|
||||
while (map_itr < map_end)
|
||||
{
|
||||
const char *escape;
|
||||
int match;
|
||||
|
||||
escape = map_itr;
|
||||
_advance_after_end_of_string(&map_itr);
|
||||
if (map_itr >= map_end) break;
|
||||
|
||||
mc = map_itr;
|
||||
sc = s;
|
||||
match = 1;
|
||||
while ((*mc) && (*sc))
|
||||
{
|
||||
if ((unsigned char)*sc < (unsigned char)*mc) return NULL;
|
||||
if (*sc != *mc) match = 0;
|
||||
mc++;
|
||||
sc++;
|
||||
}
|
||||
if (match)
|
||||
{
|
||||
*adv = mc - map_itr;
|
||||
return escape;
|
||||
}
|
||||
_advance_after_end_of_string(&map_itr);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
_escaped_char_get(const char *s, const char *s_end)
|
||||
{
|
||||
const char *map_itr, *map_end;
|
||||
|
||||
map_itr = escape_strings;
|
||||
map_end = map_itr + sizeof(escape_strings);
|
||||
|
||||
while (map_itr < map_end)
|
||||
{
|
||||
if (_is_eq_and_advance(s, s_end, &map_itr, map_end))
|
||||
return map_itr;
|
||||
if (map_itr < map_end)
|
||||
_advance_after_end_of_string(&map_itr);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_nodes_adjacent_merge(const Evas_Object *obj, Evas_Object_Textblock_Node *n1)
|
||||
{
|
||||
|
@ -546,162 +784,6 @@ _nodes_adjacent_merge(const Evas_Object *obj, Evas_Object_Textblock_Node *n1)
|
|||
}
|
||||
}
|
||||
|
||||
/* table of html escapes (that i can find) this should be ordered with the
|
||||
* most common first as it's a linear search to match - no hash for this.
|
||||
*
|
||||
* these are stored as one large string and one additional array that
|
||||
* contains the offsets to the tokens for space efficiency.
|
||||
*/
|
||||
static const char escape_strings[] =
|
||||
/* most common escaped stuff */
|
||||
" \0" "\x20\0" /* NOTE: this here to avoid escaping to   */
|
||||
" \0" "\x20\0" /* NOTE: we allow nsbp's to break as we map early - maybe map to ascii 0x01 and then make the rendering code think 0x01 -> 0x20 */
|
||||
""\0" "\x22\0"
|
||||
"&\0" "\x26\0"
|
||||
"<\0" "\x3c\0"
|
||||
">\0" "\x3e\0"
|
||||
/* all the rest */
|
||||
"¡\0" "\xc2\xa1\0"
|
||||
"¢\0" "\xc2\xa2\0"
|
||||
"£\0" "\xc2\xa3\0"
|
||||
"¤\0" "\xc2\xa4\0"
|
||||
"¥\0" "\xc2\xa5\0"
|
||||
"¦\0" "\xc2\xa6\0"
|
||||
"§\0" "\xc2\xa7\0"
|
||||
"¨\0" "\xc2\xa8\0"
|
||||
"©\0" "\xc2\xa9\0"
|
||||
"ª\0" "\xc2\xaa\0"
|
||||
"«\0" "\xc2\xab\0"
|
||||
"¬\0" "\xc2\xac\0"
|
||||
"®\0" "\xc2\xae\0"
|
||||
"¯\0" "\xc2\xaf\0"
|
||||
"°\0" "\xc2\xb0\0"
|
||||
"±\0" "\xc2\xb1\0"
|
||||
"²\0" "\xc2\xb2\0"
|
||||
"³\0" "\xc2\xb3\0"
|
||||
"´\0" "\xc2\xb4\0"
|
||||
"µ\0" "\xc2\xb5\0"
|
||||
"¶\0" "\xc2\xb6\0"
|
||||
"·\0" "\xc2\xb7\0"
|
||||
"¸\0" "\xc2\xb8\0"
|
||||
"¹\0" "\xc2\xb9\0"
|
||||
"º\0" "\xc2\xba\0"
|
||||
"»\0" "\xc2\xbb\0"
|
||||
"¼\0" "\xc2\xbc\0"
|
||||
"½\0" "\xc2\xbd\0"
|
||||
"¾\0" "\xc2\xbe\0"
|
||||
"¿\0" "\xc2\xbf\0"
|
||||
"À\0" "\xc3\x80\0"
|
||||
"Á\0" "\xc3\x81\0"
|
||||
"Â\0" "\xc3\x82\0"
|
||||
"Ã\0" "\xc3\x83\0"
|
||||
"Ä\0" "\xc3\x84\0"
|
||||
"Å\0" "\xc3\x85\0"
|
||||
"&Aelig;\0" "\xc3\x86\0"
|
||||
"Ç\0" "\xc3\x87\0"
|
||||
"È\0" "\xc3\x88\0"
|
||||
"É\0" "\xc3\x89\0"
|
||||
"Ê\0" "\xc3\x8a\0"
|
||||
"Ë\0" "\xc3\x8b\0"
|
||||
"È\0" "\xc3\x8c\0"
|
||||
"É\0" "\xc3\x8d\0"
|
||||
"Î\0" "\xc3\x8e\0"
|
||||
"Ï\0" "\xc3\x8f\0"
|
||||
"&Eth;\0" "\xc3\x90\0"
|
||||
"Ñ\0" "\xc3\x91\0"
|
||||
"Ò\0" "\xc3\x92\0"
|
||||
"Ó\0" "\xc3\x93\0"
|
||||
"Ô\0" "\xc3\x94\0"
|
||||
"Õ\0" "\xc3\x95\0"
|
||||
"Ö\0" "\xc3\x96\0"
|
||||
"×\0" "\xc3\x97\0"
|
||||
"Ø\0" "\xc3\x98\0"
|
||||
"Ù\0" "\xc3\x99\0"
|
||||
"Ú\0" "\xc3\x9a\0"
|
||||
"Û\0" "\xc3\x9b\0"
|
||||
"Ý\0" "\xc3\x9d\0"
|
||||
"&Thorn;\0" "\xc3\x9e\0"
|
||||
"ß\0" "\xc3\x9f\0"
|
||||
"à\0" "\xc3\xa0\0"
|
||||
"á\0" "\xc3\xa1\0"
|
||||
"â\0" "\xc3\xa2\0"
|
||||
"ã\0" "\xc3\xa3\0"
|
||||
"ä\0" "\xc3\xa4\0"
|
||||
"å\0" "\xc3\xa5\0"
|
||||
"æ\0" "\xc3\xa6\0"
|
||||
"ç\0" "\xc3\xa7\0"
|
||||
"è\0" "\xc3\xa8\0"
|
||||
"é\0" "\xc3\xa9\0"
|
||||
"ê\0" "\xc3\xaa\0"
|
||||
"ë\0" "\xc3\xab\0"
|
||||
"ì\0" "\xc3\xac\0"
|
||||
"í\0" "\xc3\xad\0"
|
||||
"î\0" "\xc3\xae\0"
|
||||
"ï\0" "\xc3\xaf\0"
|
||||
"ð\0" "\xc3\xb0\0"
|
||||
"ñ\0" "\xc3\xb1\0"
|
||||
"ò\0" "\xc3\xb2\0"
|
||||
"ó\0" "\xc3\xb3\0"
|
||||
"ô\0" "\xc3\xb4\0"
|
||||
"õ\0" "\xc3\xb5\0"
|
||||
"ö\0" "\xc3\xb6\0"
|
||||
"÷\0" "\xc3\xb7\0"
|
||||
"ø\0" "\xc3\xb8\0"
|
||||
"ù\0" "\xc3\xb9\0"
|
||||
"ú\0" "\xc3\xba\0"
|
||||
"û\0" "\xc3\xbb\0"
|
||||
"ü\0" "\xc3\xbc\0"
|
||||
"ý\0" "\xc3\xbd\0"
|
||||
"þ\0" "\xc3\xbe\0"
|
||||
"ÿ\0" "\xc3\xbf\0"
|
||||
"α\0" "\xce\x91\0"
|
||||
"β\0" "\xce\x92\0"
|
||||
"γ\0" "\xce\x93\0"
|
||||
"δ\0" "\xce\x94\0"
|
||||
"ε\0" "\xce\x95\0"
|
||||
"ζ\0" "\xce\x96\0"
|
||||
"η\0" "\xce\x97\0"
|
||||
"θ\0" "\xce\x98\0"
|
||||
"ι\0" "\xce\x99\0"
|
||||
"κ\0" "\xce\x9a\0"
|
||||
"λ\0" "\xce\x9b\0"
|
||||
"μ\0" "\xce\x9c\0"
|
||||
"ν\0" "\xce\x9d\0"
|
||||
"ξ\0" "\xce\x9e\0"
|
||||
"ο\0" "\xce\x9f\0"
|
||||
"π\0" "\xce\xa0\0"
|
||||
"ρ\0" "\xce\xa1\0"
|
||||
"σ\0" "\xce\xa3\0"
|
||||
"τ\0" "\xce\xa4\0"
|
||||
"υ\0" "\xce\xa5\0"
|
||||
"φ\0" "\xce\xa6\0"
|
||||
"χ\0" "\xce\xa7\0"
|
||||
"ψ\0" "\xce\xa8\0"
|
||||
"ω\0" "\xce\xa9\0"
|
||||
"…\0" "\xe2\x80\xa6\0"
|
||||
"€\0" "\xe2\x82\xac\0"
|
||||
"←\0" "\xe2\x86\x90\0"
|
||||
"↑\0" "\xe2\x86\x91\0"
|
||||
"→\0" "\xe2\x86\x92\0"
|
||||
"↓\0" "\xe2\x86\x93\0"
|
||||
"↔\0" "\xe2\x86\x94\0"
|
||||
"←\0" "\xe2\x87\x90\0"
|
||||
"→\0" "\xe2\x87\x92\0"
|
||||
"∀\0" "\xe2\x88\x80\0"
|
||||
"∃\0" "\xe2\x88\x83\0"
|
||||
"∇\0" "\xe2\x88\x87\0"
|
||||
"∏\0" "\xe2\x88\x8f\0"
|
||||
"∑\0" "\xe2\x88\x91\0"
|
||||
"∧\0" "\xe2\x88\xa7\0"
|
||||
"∨\0" "\xe2\x88\xa8\0"
|
||||
"∫\0" "\xe2\x88\xab\0"
|
||||
"≠\0" "\xe2\x89\xa0\0"
|
||||
"≡\0" "\xe2\x89\xa1\0"
|
||||
"⊕\0" "\xe2\x8a\x95\0"
|
||||
"⊥\0" "\xe2\x8a\xa5\0"
|
||||
;
|
||||
|
||||
|
||||
static int
|
||||
_is_white(int c)
|
||||
{
|
||||
|
@ -1850,7 +1932,7 @@ _layout_text_append(Ctxt *c, Evas_Object_Textblock_Format *fmt, Evas_Object_Text
|
|||
int i, len, chlen;
|
||||
char *ptr;
|
||||
|
||||
len = evas_common_font_utf8_get_len(n->text);
|
||||
len = evas_common_font_utf8_get_len((unsigned char *) n->text);
|
||||
chlen = strlen(repch);
|
||||
str = alloca((len * chlen) + 1);
|
||||
tbase = str;
|
||||
|
@ -2310,7 +2392,7 @@ _find_layout_item_line_match(Evas_Object *obj, Evas_Object_Textblock_Node *n, in
|
|||
{
|
||||
int pos2 = pos;
|
||||
|
||||
evas_common_font_utf8_get_prev(n->text, &pos2);
|
||||
evas_common_font_utf8_get_prev((unsigned char *) n->text, &pos2);
|
||||
if (pos2 < pos) pos = pos2;
|
||||
}
|
||||
EINA_INLIST_FOREACH(o->lines, ln)
|
||||
|
@ -2390,6 +2472,71 @@ _find_layout_line_num(const Evas_Object *obj, int line)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
evas_object_textblock_text_markup_rebuild(Evas_Object_Textblock *o)
|
||||
{
|
||||
Evas_Object_Textblock_Node *n;
|
||||
char *txt = NULL;
|
||||
int txt_len = 0, txt_alloc = 0;
|
||||
|
||||
EINA_INLIST_FOREACH(o->nodes, n)
|
||||
{
|
||||
if ((n->type == NODE_FORMAT) && (n->text))
|
||||
{
|
||||
char *tag = _style_match_replace(o->style, n->text);
|
||||
txt = _strbuf_append(txt, "<", &txt_len, &txt_alloc);
|
||||
if (tag)
|
||||
{
|
||||
// FIXME: need to escape
|
||||
txt = _strbuf_append(txt, tag, &txt_len, &txt_alloc);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *s;
|
||||
int push = 0;
|
||||
int pop = 0;
|
||||
|
||||
// FIXME: need to escape
|
||||
s = n->text;
|
||||
if (*s == '+') push = 1;
|
||||
if (*s == '-') pop = 1;
|
||||
while ((*s == ' ') || (*s == '+') || (*s == '-')) s++;
|
||||
if (pop) txt = _strbuf_append(txt, "/", &txt_len, &txt_alloc);
|
||||
if (push) txt = _strbuf_append(txt, "+ ", &txt_len, &txt_alloc);
|
||||
txt = _strbuf_append(txt, s, &txt_len, &txt_alloc);
|
||||
}
|
||||
txt = _strbuf_append(txt, ">", &txt_len, &txt_alloc);
|
||||
}
|
||||
else if ((n->type == NODE_TEXT) && (n->text))
|
||||
{
|
||||
const char *p = n->text;
|
||||
|
||||
while (*p)
|
||||
{
|
||||
const char *escape;
|
||||
int adv;
|
||||
|
||||
escape = _escaped_char_match(p, &adv);
|
||||
if (escape)
|
||||
{
|
||||
p += adv;
|
||||
txt = _strbuf_append(txt, escape, &txt_len, &txt_alloc);
|
||||
}
|
||||
else
|
||||
{
|
||||
char str[2];
|
||||
|
||||
str[0] = *p;
|
||||
str[1] = 0;
|
||||
txt = _strbuf_append(txt, str, &txt_len, &txt_alloc);
|
||||
p++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
o->markup_text = txt;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a textblock to the given evas.
|
||||
* @param e The given evas.
|
||||
|
@ -2462,7 +2609,7 @@ evas_textblock_style_set(Evas_Textblock_Style *ts, const char *text)
|
|||
{
|
||||
free(o->markup_text);
|
||||
o->markup_text = NULL;
|
||||
evas_object_textblock_text_markup_get(obj);
|
||||
evas_object_textblock_text_markup_rebuild(o);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2603,7 +2750,7 @@ evas_object_textblock_style_set(Evas_Object *obj, Evas_Textblock_Style *ts)
|
|||
{
|
||||
free(o->markup_text);
|
||||
o->markup_text = NULL;
|
||||
evas_object_textblock_text_markup_get(obj);
|
||||
evas_object_textblock_text_markup_rebuild(o);
|
||||
}
|
||||
}
|
||||
if (o->style)
|
||||
|
@ -2676,88 +2823,6 @@ evas_object_textblock_replace_char_get(Evas_Object *obj)
|
|||
return o->repch;
|
||||
}
|
||||
|
||||
|
||||
static inline void
|
||||
_advance_after_end_of_string(const char **p_buf)
|
||||
{
|
||||
while (**p_buf != 0) (*p_buf)++;
|
||||
(*p_buf)++;
|
||||
}
|
||||
|
||||
static inline int
|
||||
_is_eq_and_advance(const char *s, const char *s_end,
|
||||
const char **p_m, const char *m_end)
|
||||
{
|
||||
for (;((s < s_end) && (*p_m < m_end)); s++, (*p_m)++)
|
||||
{
|
||||
if (*s != **p_m)
|
||||
{
|
||||
_advance_after_end_of_string(p_m);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (*p_m < m_end)
|
||||
_advance_after_end_of_string(p_m);
|
||||
|
||||
return s == s_end;
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
_escaped_char_match(const char *s, int *adv)
|
||||
{
|
||||
const char *map_itr, *map_end, *mc, *sc;
|
||||
|
||||
map_itr = escape_strings;
|
||||
map_end = map_itr + sizeof(escape_strings);
|
||||
|
||||
while (map_itr < map_end)
|
||||
{
|
||||
const char *escape;
|
||||
int match;
|
||||
|
||||
escape = map_itr;
|
||||
_advance_after_end_of_string(&map_itr);
|
||||
if (map_itr >= map_end) break;
|
||||
|
||||
mc = map_itr;
|
||||
sc = s;
|
||||
match = 1;
|
||||
while ((*mc) && (*sc))
|
||||
{
|
||||
if ((unsigned char)*sc < (unsigned char)*mc) return NULL;
|
||||
if (*sc != *mc) match = 0;
|
||||
mc++;
|
||||
sc++;
|
||||
}
|
||||
if (match)
|
||||
{
|
||||
*adv = mc - map_itr;
|
||||
return escape;
|
||||
}
|
||||
_advance_after_end_of_string(&map_itr);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
_escaped_char_get(const char *s, const char *s_end)
|
||||
{
|
||||
const char *map_itr, *map_end;
|
||||
|
||||
map_itr = escape_strings;
|
||||
map_end = map_itr + sizeof(escape_strings);
|
||||
|
||||
while (map_itr < map_end)
|
||||
{
|
||||
if (_is_eq_and_advance(s, s_end, &map_itr, map_end))
|
||||
return map_itr;
|
||||
if (map_itr < map_end)
|
||||
_advance_after_end_of_string(&map_itr);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* to be documented.
|
||||
* @param escape to be documented.
|
||||
|
@ -3096,68 +3161,9 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
|
|||
EAPI const char *
|
||||
evas_object_textblock_text_markup_get(const Evas_Object *obj)
|
||||
{
|
||||
Evas_Object_Textblock_Node *n;
|
||||
char *txt = NULL;
|
||||
int txt_len = 0, txt_alloc = 0;
|
||||
|
||||
TB_HEAD_RETURN(NULL);
|
||||
if (o->markup_text) return(o->markup_text);
|
||||
EINA_INLIST_FOREACH(o->nodes, n)
|
||||
{
|
||||
if ((n->type == NODE_FORMAT) && (n->text))
|
||||
{
|
||||
char *tag = _style_match_replace(o->style, n->text);
|
||||
txt = _strbuf_append(txt, "<", &txt_len, &txt_alloc);
|
||||
if (tag)
|
||||
{
|
||||
// FIXME: need to escape
|
||||
txt = _strbuf_append(txt, tag, &txt_len, &txt_alloc);
|
||||
}
|
||||
else
|
||||
{
|
||||
char *s;
|
||||
int push = 0;
|
||||
int pop = 0;
|
||||
|
||||
// FIXME: need to escape
|
||||
s = n->text;
|
||||
if (*s == '+') push = 1;
|
||||
if (*s == '-') pop = 1;
|
||||
while ((*s == ' ') || (*s == '+') || (*s == '-')) s++;
|
||||
if (pop) txt = _strbuf_append(txt, "/", &txt_len, &txt_alloc);
|
||||
if (push) txt = _strbuf_append(txt, "+ ", &txt_len, &txt_alloc);
|
||||
txt = _strbuf_append(txt, s, &txt_len, &txt_alloc);
|
||||
}
|
||||
txt = _strbuf_append(txt, ">", &txt_len, &txt_alloc);
|
||||
}
|
||||
else if ((n->type == NODE_TEXT) && (n->text))
|
||||
{
|
||||
const char *p = n->text;
|
||||
|
||||
while (*p)
|
||||
{
|
||||
const char *escape;
|
||||
int adv;
|
||||
|
||||
escape = _escaped_char_match(p, &adv);
|
||||
if (escape)
|
||||
{
|
||||
p += adv;
|
||||
txt = _strbuf_append(txt, escape, &txt_len, &txt_alloc);
|
||||
}
|
||||
else
|
||||
{
|
||||
char str[2];
|
||||
|
||||
str[0] = *p;
|
||||
str[1] = 0;
|
||||
txt = _strbuf_append(txt, str, &txt_len, &txt_alloc);
|
||||
p++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
o->markup_text = txt;
|
||||
evas_object_textblock_text_markup_rebuild(o);
|
||||
return o->markup_text;
|
||||
}
|
||||
|
||||
|
@ -3365,7 +3371,7 @@ evas_textblock_cursor_char_prev(Evas_Textblock_Cursor *cur)
|
|||
{
|
||||
int plast;
|
||||
|
||||
plast = evas_common_font_utf8_get_last(it->text, strlen(it->text));
|
||||
plast = evas_common_font_utf8_get_last((unsigned char *) it->text, strlen(it->text));
|
||||
if ((index - it->source_pos) == plast) at_end_of_line = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -368,7 +368,7 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj,
|
|||
obj->cur.visible, obj->cur.cache.clip.visible, obj->smart.smart, obj->cur.cache.clip.a,
|
||||
evas_object_was_visible(obj));
|
||||
if ((!obj->clip.clipees) && (obj->delete_me == 0) &&
|
||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||
(_evas_render_can_render(obj) ||
|
||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||
{
|
||||
if (obj->smart.smart)
|
||||
|
@ -511,14 +511,14 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
|||
}
|
||||
else
|
||||
if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
|
||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||
(_evas_render_can_render(obj) ||
|
||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||
{
|
||||
if (!(obj->render_pre || obj->rect_del)) ok = 1;
|
||||
}
|
||||
else
|
||||
if (is_active && (!obj->clip.clipees) &&
|
||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||
(_evas_render_can_render(obj) ||
|
||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||
{
|
||||
if (obj->render_pre || obj->rect_del) ok = 1;
|
||||
|
@ -590,7 +590,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
|
|||
}
|
||||
}
|
||||
else if (!(((evas_object_is_active(obj) && (!obj->clip.clipees) &&
|
||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)))))
|
||||
(_evas_render_can_render(obj))))
|
||||
))
|
||||
{
|
||||
RDI(level);
|
||||
|
|
|
@ -72,7 +72,7 @@ evas_cserve_image_cache_contents_get(Evas_Cserve_Image_Cache *cache)
|
|||
|
||||
itt = (Op_Getinfo_Item *)p;
|
||||
memcpy(&it, itt, sizeof(Op_Getinfo_Item));
|
||||
file = p + sizeof(Op_Getinfo_Item);
|
||||
file = (char*) p + sizeof(Op_Getinfo_Item);
|
||||
key = file + strlen(file) + 1;
|
||||
im = calloc(1, sizeof(Evas_Cserve_Image));
|
||||
if (!im) continue;
|
||||
|
|
|
@ -315,8 +315,8 @@ evas_cserve_image_load(Image_Entry *ie, const char *file, const char *key, RGBA_
|
|||
klen = strlen(key) + 1;
|
||||
buf = malloc(sizeof(msg) + flen + klen);
|
||||
memcpy(buf, &msg, sizeof(msg));
|
||||
strcpy(buf + sizeof(msg), file);
|
||||
strcpy(buf + sizeof(msg) + flen, key);
|
||||
memcpy(buf + sizeof(msg), file, flen);
|
||||
memcpy(buf + sizeof(msg) + flen, key, klen);
|
||||
if (!buf) return 0;
|
||||
if (!server_send(cserve, ie->channel, OP_LOAD,
|
||||
sizeof(msg) + flen + klen,
|
||||
|
|
|
@ -339,7 +339,7 @@ evas_cserve_server_wait(Server *s, int timeout)
|
|||
if (c->dead) continue;
|
||||
if (FD_ISSET(c->fd, &rset))
|
||||
{
|
||||
char buf[16384];
|
||||
unsigned char buf[16384];
|
||||
int num;
|
||||
|
||||
errno = 0;
|
||||
|
|
|
@ -50,7 +50,7 @@ void evas_common_convert_rgba_to_8bpp_gry_16_dith (DATA32 *src, DATA8 *dst,
|
|||
int x, y;
|
||||
DATA8 r, g, b;
|
||||
DATA32 gry8;
|
||||
DATA8 dith, dith2;
|
||||
DATA8 dith;
|
||||
|
||||
dst_ptr = (DATA8 *)dst;
|
||||
|
||||
|
|
|
@ -24,9 +24,11 @@
|
|||
static void _evas_yuv_init (void);
|
||||
static void _evas_yv12torgb_sse (unsigned char **yuv, unsigned char *rgb, int w, int h);
|
||||
static void _evas_yv12torgb_mmx (unsigned char **yuv, unsigned char *rgb, int w, int h);
|
||||
#ifdef BUILD_ALTIVEC
|
||||
static void _evas_yv12torgb_altivec(unsigned char **yuv, unsigned char *rgb, int w, int h);
|
||||
static void _evas_yv12torgb_raster (unsigned char **yuv, unsigned char *rgb, int w, int h);
|
||||
static void _evas_yv12torgb_diz (unsigned char **yuv, unsigned char *rgb, int w, int h);
|
||||
#endif
|
||||
static void _evas_yv12torgb_raster (unsigned char **yuv, unsigned char *rgb, int w, int h);
|
||||
|
||||
#define CRV 104595
|
||||
#define CBU 132251
|
||||
|
@ -502,10 +504,10 @@ _evas_yv12torgb_mmx(unsigned char **yuv, unsigned char *rgb, int w, int h)
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef BUILD_ALTIVEC
|
||||
static void
|
||||
_evas_yv12torgb_altivec(unsigned char **yuv, unsigned char *rgb, int w, int h)
|
||||
{
|
||||
#ifdef BUILD_ALTIVEC
|
||||
#ifdef __VEC__
|
||||
int xx, yy;
|
||||
int w2, h2;
|
||||
|
@ -714,11 +716,11 @@ _evas_yv12torgb_altivec(unsigned char **yuv, unsigned char *rgb, int w, int h)
|
|||
dp1 += (w * 4);
|
||||
dp2 += (w * 4);
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
_evas_yv12torgb_diz(yuv, rgb, w, h);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
_evas_yuv_init(void)
|
||||
|
@ -744,6 +746,7 @@ _evas_yuv_init(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef BUILD_ALTIVEC
|
||||
static void
|
||||
_evas_yv12torgb_diz(unsigned char **yuv, unsigned char *rgb, int w, int h)
|
||||
{
|
||||
|
@ -820,6 +823,7 @@ _evas_yv12torgb_diz(unsigned char **yuv, unsigned char *rgb, int w, int h)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
_evas_yv12torgb_raster(unsigned char **yuv, unsigned char *rgb, int w, int h)
|
||||
|
|
|
@ -192,7 +192,7 @@ evas_common_gradient2_draw(RGBA_Image *dst, RGBA_Draw_Context *dc,
|
|||
int x, int y, int w, int h, RGBA_Gradient2 *gr)
|
||||
{
|
||||
Gfx_Func_Gradient2_Fill gfunc;
|
||||
RGBA_Gfx_Func bfunc;
|
||||
RGBA_Gfx_Func bfunc = NULL;
|
||||
int len;
|
||||
int xin, yin, xoff, yoff;
|
||||
int clx, cly, clw, clh;
|
||||
|
|
|
@ -427,7 +427,7 @@ evas_common_gradient_draw(RGBA_Image *dst, RGBA_Draw_Context *dc,
|
|||
int x, int y, int w, int h, RGBA_Gradient *gr)
|
||||
{
|
||||
Gfx_Func_Gradient_Fill gfunc;
|
||||
RGBA_Gfx_Func bfunc;
|
||||
RGBA_Gfx_Func bfunc = NULL;
|
||||
int len;
|
||||
int xin, yin, xoff, yoff;
|
||||
int clx, cly, clw, clh;
|
||||
|
|
|
@ -37,9 +37,11 @@ static const char *loaders_name[] = {
|
|||
};
|
||||
|
||||
static Eina_Bool
|
||||
_evas_image_foreach_loader(const Eina_Hash *hash __UNUSED__, const char *key __UNUSED__, Evas_Module *em, Image_Entry *ie)
|
||||
_evas_image_foreach_loader(const Eina_Hash *hash __UNUSED__, const void *key __UNUSED__, void *data, void *fdata)
|
||||
{
|
||||
Evas_Image_Load_Func *evas_image_load_func = NULL;
|
||||
Evas_Module *em = data;
|
||||
Image_Entry *ie = fdata;
|
||||
|
||||
if (!evas_module_load(em)) return EINA_TRUE;
|
||||
evas_image_load_func = em->functions;
|
||||
|
@ -151,7 +153,7 @@ evas_common_load_rgba_image_data_from_file(Image_Entry *ie)
|
|||
mem = ie->data2;
|
||||
if (mem)
|
||||
{
|
||||
im->image.data = mem->data + mem->offset;
|
||||
im->image.data = (void*) (mem->data + mem->offset);
|
||||
im->image.no_free = 1;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "evas_private.h"
|
||||
#include "evas_image_private.h"
|
||||
#include "evas_convert_yuv.h"
|
||||
#include "evas_cs.h"
|
||||
|
||||
#ifdef HAVE_VALGRIND
|
||||
# include <memcheck.h>
|
||||
|
@ -50,11 +51,13 @@ static int _evas_common_rgba_image_ram_usage(Image_Entry *ie);
|
|||
/* The destination surface does have a surface, but no allocated pixel data. */
|
||||
static int _evas_common_rgba_image_dirty(Image_Entry* dst, const Image_Entry* src);
|
||||
|
||||
#if 0
|
||||
static void
|
||||
_evas_common_rgba_image_debug(const char* context, Image_Entry *eim)
|
||||
{
|
||||
DBG("%p = [%s] {%s,%s} %i [%i|%i]", eim, context, eim->file, eim->key, eim->references, eim->w, eim->h);
|
||||
}
|
||||
#endif
|
||||
|
||||
static const Evas_Cache_Image_Func _evas_common_image_func =
|
||||
{
|
||||
|
@ -294,20 +297,20 @@ _evas_common_rgba_image_dirty(Image_Entry *ie_dst, const Image_Entry *ie_src)
|
|||
RGBA_Image *dst = (RGBA_Image *) ie_dst;
|
||||
RGBA_Image *src = (RGBA_Image *) ie_src;
|
||||
|
||||
evas_common_rgba_image_scalecache_dirty(ie_src);
|
||||
evas_common_rgba_image_scalecache_dirty((Image_Entry*) ie_src);
|
||||
evas_common_rgba_image_scalecache_dirty(ie_dst);
|
||||
evas_cache_image_load_data(&src->cache_entry);
|
||||
if (_evas_common_rgba_image_surface_alloc(&dst->cache_entry,
|
||||
src->cache_entry.w, src->cache_entry.h))
|
||||
{
|
||||
#ifdef EVAS_CSERVE
|
||||
if (ie_src->data1) evas_cserve_image_free(ie_src);
|
||||
if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
#ifdef EVAS_CSERVE
|
||||
if (ie_src->data1) evas_cserve_image_free(ie_src);
|
||||
if (ie_src->data1) evas_cserve_image_free((Image_Entry*) ie_src);
|
||||
#endif
|
||||
evas_common_image_colorspace_normalize(src);
|
||||
evas_common_image_colorspace_normalize(dst);
|
||||
|
@ -479,7 +482,7 @@ evas_common_image_colorspace_normalize(RGBA_Image *im)
|
|||
if (im->image.data != im->cs.data)
|
||||
{
|
||||
#ifdef EVAS_CSERVE
|
||||
if (((Image_Entry *)im)->data1) evas_cserve_image_free(im);
|
||||
if (((Image_Entry *)im)->data1) evas_cserve_image_free(&im->cache_entry);
|
||||
#endif
|
||||
if (!im->image.no_free) free(im->image.data);
|
||||
im->image.data = im->cs.data;
|
||||
|
|
|
@ -12,8 +12,8 @@ FUNC_NAME(RGBA_Image *src, RGBA_Image *dst,
|
|||
int c, cx, cy, cw, ch;
|
||||
int ytop, ybottom, ystart, yend, y, sw, sh, shp, swp, direct;
|
||||
Line *spans;
|
||||
DATA32 *buf, *sp;
|
||||
RGBA_Gfx_Func func;
|
||||
DATA32 *buf = NULL, *sp;
|
||||
RGBA_Gfx_Func func = NULL;
|
||||
int havea = 0;
|
||||
int havecol = 4;
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
DATA32 *psrc, *pdst, *pdst_end;
|
||||
DATA32 *buf, *pbuf, *pbuf_end;
|
||||
RGBA_Gfx_Func func;
|
||||
RGBA_Gfx_Func func = NULL;
|
||||
|
||||
/* a scanline buffer */
|
||||
pdst = dst_ptr; // it's been set at (dst_clip_x, dst_clip_y)
|
||||
|
|
|
@ -857,7 +857,7 @@ struct _RGBA_Font_Int
|
|||
{
|
||||
RGBA_Font_Source *src;
|
||||
|
||||
int size;
|
||||
unsigned int size;
|
||||
int real_size;
|
||||
int max_h;
|
||||
|
||||
|
|
|
@ -702,7 +702,7 @@ struct _Evas_Func
|
|||
|
||||
void (*image_map4_draw) (void *data, void *context, void *surface, void *image, RGBA_Map_Point *p, int smooth, int level);
|
||||
void *(*image_map_surface_new) (void *data, int w, int h, int alpha);
|
||||
void *(*image_map_surface_free) (void *data, void *surface);
|
||||
void (*image_map_surface_free) (void *data, void *surface);
|
||||
};
|
||||
|
||||
struct _Evas_Image_Load_Func
|
||||
|
|
|
@ -293,9 +293,9 @@ void evas_gl_common_image_dirty(Evas_GL_Image *im, int x, int y, in
|
|||
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_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);
|
||||
|
||||
Evas_GL_Texture *evas_gl_font_texture_new(Evas_GL_Context *gc, RGBA_Font_Glyph *fg);
|
||||
void evas_gl_font_texture_free(Evas_GL_Texture *ft);
|
||||
void evas_gl_font_texture_draw(Evas_GL_Context *gc, void *surface, RGBA_Draw_Context *dc, RGBA_Font_Glyph *fg, int x, int y);
|
||||
void *evas_gl_font_texture_new(void *gc, RGBA_Font_Glyph *fg);
|
||||
void evas_gl_font_texture_free(void *);
|
||||
void evas_gl_font_texture_draw(void *gc, void *surface, void *dc, RGBA_Font_Glyph *fg, int x, int y);
|
||||
|
||||
|
||||
void (*glsym_glGenFramebuffers) (GLsizei a, GLuint *b);
|
||||
|
|
|
@ -183,13 +183,13 @@ evas_gl_common_context_new(void)
|
|||
if (ext)
|
||||
{
|
||||
fprintf(stderr, "EXT:\n%s\n", ext);
|
||||
if ((strstr(ext, "GL_ARB_texture_non_power_of_two")) ||
|
||||
(strstr(ext, "OES_texture_npot")) ||
|
||||
(strstr(ext, "GL_IMG_texture_npot")))
|
||||
if ((strstr((char*) ext, "GL_ARB_texture_non_power_of_two")) ||
|
||||
(strstr((char*) ext, "OES_texture_npot")) ||
|
||||
(strstr((char*) ext, "GL_IMG_texture_npot")))
|
||||
shared->info.tex_npo2 = 1;
|
||||
if ((strstr(ext, "GL_NV_texture_rectangle")) ||
|
||||
(strstr(ext, "GL_EXT_texture_rectangle")) ||
|
||||
(strstr(ext, "GL_ARB_texture_rectangle"))
|
||||
if ((strstr((char*) ext, "GL_NV_texture_rectangle")) ||
|
||||
(strstr((char*) ext, "GL_EXT_texture_rectangle")) ||
|
||||
(strstr((char*) ext, "GL_ARB_texture_rectangle"))
|
||||
)
|
||||
shared->info.tex_rect = 1;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#include "evas_gl_private.h"
|
||||
|
||||
Evas_GL_Texture *
|
||||
evas_gl_font_texture_new(Evas_GL_Context *gc, RGBA_Font_Glyph *fg)
|
||||
void *
|
||||
evas_gl_font_texture_new(void *context, RGBA_Font_Glyph *fg)
|
||||
{
|
||||
Evas_GL_Context *gc = context;
|
||||
Evas_GL_Texture *tex;
|
||||
DATA8 *data;
|
||||
int w, h, j, nw;
|
||||
|
@ -89,15 +90,17 @@ evas_gl_font_texture_new(Evas_GL_Context *gc, RGBA_Font_Glyph *fg)
|
|||
}
|
||||
|
||||
void
|
||||
evas_gl_font_texture_free(Evas_GL_Texture *tex)
|
||||
evas_gl_font_texture_free(void *tex)
|
||||
{
|
||||
if (!tex) return;
|
||||
evas_gl_common_texture_free(tex);
|
||||
}
|
||||
|
||||
void
|
||||
evas_gl_font_texture_draw(Evas_GL_Context *gc, void *surface __UNUSED__, RGBA_Draw_Context *dc, RGBA_Font_Glyph *fg, int x, int y)
|
||||
evas_gl_font_texture_draw(void *context, void *surface __UNUSED__, void *draw_context, RGBA_Font_Glyph *fg, int x, int y)
|
||||
{
|
||||
Evas_GL_Context *gc = context;
|
||||
RGBA_Draw_Context *dc = draw_context;
|
||||
Evas_GL_Texture *tex;
|
||||
Cutout_Rects *rects;
|
||||
Cutout_Rect *rct;
|
||||
|
|
|
@ -422,7 +422,7 @@ eng_gradient2_linear_free(void *data __UNUSED__, void *linear_gradient __UNUSED_
|
|||
}
|
||||
|
||||
static void
|
||||
eng_gradient2_linear_fill_set(void *data __UNUSED__, void *linear_gradient __UNUSED__, int x0 __UNUSED__, int y0 __UNUSED__, int x1 __UNUSED__, int y1 __UNUSED__)
|
||||
eng_gradient2_linear_fill_set(void *data __UNUSED__, void *linear_gradient __UNUSED__, float x0 __UNUSED__, float y0 __UNUSED__, float x1 __UNUSED__, float y1 __UNUSED__)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -164,7 +164,7 @@ DATA8 *
|
|||
evas_software_x11_x_output_buffer_data(X_Output_Buffer *xob, int *bytes_per_line_ret)
|
||||
{
|
||||
if (bytes_per_line_ret) *bytes_per_line_ret = xob->xim->bytes_per_line;
|
||||
return xob->xim->data;
|
||||
return (DATA8*) xob->xim->data;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -756,10 +756,10 @@ eng_image_draw(void *data __UNUSED__, void *context, void *surface, void *image,
|
|||
// if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888)
|
||||
// evas_cache_image_load_data(&im->cache_entry);
|
||||
// evas_common_image_colorspace_normalize(im);
|
||||
evas_common_rgba_image_scalecache_prepare(im, surface, context, smooth,
|
||||
evas_common_rgba_image_scalecache_prepare(&im->cache_entry, surface, context, smooth,
|
||||
src_x, src_y, src_w, src_h,
|
||||
dst_x, dst_y, dst_w, dst_h);
|
||||
evas_common_rgba_image_scalecache_do(im, surface, context, smooth,
|
||||
evas_common_rgba_image_scalecache_do(&im->cache_entry, surface, context, smooth,
|
||||
src_x, src_y, src_w, src_h,
|
||||
dst_x, dst_y, dst_w, dst_h);
|
||||
/*
|
||||
|
|
|
@ -139,8 +139,6 @@ _xre_xlib_font_pool_cb(const Eina_Hash *hash, const void *key, void *data, void
|
|||
pool = data;
|
||||
snprintf(buf, sizeof(buf), "@%p@/@%lx@", fs->xinf->x11.connection, (unsigned long int)fs->xinf->x11.root);
|
||||
eina_hash_del(pool, buf, fs);
|
||||
if (!hash) hash = eina_hash_string_superfast_new(NULL);
|
||||
eina_hash_modify(hash, key, pool);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
|
|||
char *line, s[256], tok[128], col[256], *tl;
|
||||
int lsz = 256;
|
||||
struct _cmap {
|
||||
unsigned char str[6];
|
||||
char str[6];
|
||||
unsigned char transp;
|
||||
short r, g, b;
|
||||
} *cmap;
|
||||
|
|
Loading…
Reference in New Issue