evas_common.h   evas_common.h 
skipping to change at line 206 skipping to change at line 206
#define RDLKL(x) eina_rwlock_take_read(&(x)) #define RDLKL(x) eina_rwlock_take_read(&(x))
#define WRLKL(x) eina_rwlock_take_write(&(x)) #define WRLKL(x) eina_rwlock_take_write(&(x))
#define RWLKU(x) eina_rwlock_release(&(x)) #define RWLKU(x) eina_rwlock_release(&(x))
#ifdef BUILD_PTHREAD #ifdef BUILD_PTHREAD
# define TH(x) pthread_t x # define TH(x) pthread_t x
# define THI(x) int x # define THI(x) int x
# define TH_MAX 8 # define TH_MAX 8
// even though in theory having every Nth rendered line done by a different
// thread might even out load across threads - it actually slows things dow
n.
//#define EVAS_SLI 1
#else #else
# define TH(x) # define TH(x)
# define THI(x) # define THI(x)
# define TH_MAX 0 # define TH_MAX 0
#endif #endif
#include <ft2build.h> #include <ft2build.h>
#include FT_FREETYPE_H #include FT_FREETYPE_H
#include FT_GLYPH_H #include FT_GLYPH_H
skipping to change at line 402 skipping to change at line 398
#ifdef BUILD_PIPE_RENDER #ifdef BUILD_PIPE_RENDER
typedef struct _RGBA_Pipe_Op RGBA_Pipe_Op; typedef struct _RGBA_Pipe_Op RGBA_Pipe_Op;
typedef struct _RGBA_Pipe RGBA_Pipe; typedef struct _RGBA_Pipe RGBA_Pipe;
typedef struct _RGBA_Pipe_Thread_Info RGBA_Pipe_Thread_Info; typedef struct _RGBA_Pipe_Thread_Info RGBA_Pipe_Thread_Info;
#endif #endif
typedef struct _RGBA_Image RGBA_Image; typedef struct _RGBA_Image RGBA_Image;
typedef struct _RGBA_Image_Span RGBA_Image_Span; typedef struct _RGBA_Image_Span RGBA_Image_Span;
typedef struct _RGBA_Draw_Context RGBA_Draw_Context; typedef struct _RGBA_Draw_Context RGBA_Draw_Context;
typedef struct _RGBA_Polygon_Point RGBA_Polygon_Point; typedef struct _RGBA_Polygon_Point RGBA_Polygon_Point;
typedef struct _RGBA_Map_Point RGBA_Map_Point; typedef struct _RGBA_Map_Point RGBA_Map_Point;
typedef struct _RGBA_Map RGBA_Map;
typedef struct _RGBA_Font RGBA_Font; typedef struct _RGBA_Font RGBA_Font;
typedef struct _RGBA_Font_Int RGBA_Font_Int; typedef struct _RGBA_Font_Int RGBA_Font_Int;
typedef struct _RGBA_Font_Source RGBA_Font_Source; typedef struct _RGBA_Font_Source RGBA_Font_Source;
typedef struct _RGBA_Font_Glyph RGBA_Font_Glyph; typedef struct _RGBA_Font_Glyph RGBA_Font_Glyph;
typedef struct _RGBA_Font_Glyph_Out RGBA_Font_Glyph_Out;
typedef struct _RGBA_Gfx_Compositor RGBA_Gfx_Compositor; typedef struct _RGBA_Gfx_Compositor RGBA_Gfx_Compositor;
typedef struct _Cutout_Rect Cutout_Rect; typedef struct _Cutout_Rect Cutout_Rect;
typedef struct _Cutout_Rects Cutout_Rects; typedef struct _Cutout_Rects Cutout_Rects;
typedef struct _Convert_Pal Convert_Pal; typedef struct _Convert_Pal Convert_Pal;
typedef struct _Tilebuf Tilebuf; typedef struct _Tilebuf Tilebuf;
typedef struct _Tilebuf_Tile Tilebuf_Tile; typedef struct _Tilebuf_Tile Tilebuf_Tile;
typedef struct _Tilebuf_Rect Tilebuf_Rect; typedef struct _Tilebuf_Rect Tilebuf_Rect;
skipping to change at line 442 skipping to change at line 440
typedef struct _Regionspan Regionspan; typedef struct _Regionspan Regionspan;
*/ */
typedef void (*RGBA_Gfx_Func) (DATA32 *src, DATA8 *mask, DATA32 col, DAT A32 *dst, int len); typedef void (*RGBA_Gfx_Func) (DATA32 *src, DATA8 *mask, DATA32 col, DAT A32 *dst, int len);
typedef void (*RGBA_Gfx_Pt_Func) (DATA32 src, DATA8 mask, DATA32 col, DATA3 2 *dst); typedef void (*RGBA_Gfx_Pt_Func) (DATA32 src, DATA8 mask, DATA32 col, DATA3 2 *dst);
typedef void (*Gfx_Func_Copy) (DATA32 *src, DATA32 *dst, int len); typedef void (*Gfx_Func_Copy) (DATA32 *src, DATA32 *dst, int len);
typedef void (*Gfx_Func_Convert) (DATA32 *src, DATA8 *dst, int src_jump, in t dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal); typedef void (*Gfx_Func_Convert) (DATA32 *src, DATA8 *dst, int src_jump, in t dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal);
#include "../cache/evas_cache.h" #include "../cache/evas_cache.h"
#ifdef EVAS_CSERVE2
#include "../cache2/evas_cache2.h"
#endif
/************************************************************************** ***/ /************************************************************************** ***/
typedef enum _RGBA_Image_Flags typedef enum _RGBA_Image_Flags
{ {
RGBA_IMAGE_NOTHING = (0), RGBA_IMAGE_NOTHING = (0),
/* RGBA_IMAGE_HAS_ALPHA = (1 << 0), */ /* RGBA_IMAGE_HAS_ALPHA = (1 << 0), */
RGBA_IMAGE_IS_DIRTY = (1 << 1), RGBA_IMAGE_IS_DIRTY = (1 << 1),
RGBA_IMAGE_INDEXED = (1 << 2), RGBA_IMAGE_INDEXED = (1 << 2),
RGBA_IMAGE_ALPHA_ONLY = (1 << 3), RGBA_IMAGE_ALPHA_ONLY = (1 << 3),
skipping to change at line 576 skipping to change at line 577
#ifdef _STAT_VER_LINUX #ifdef _STAT_VER_LINUX
unsigned long int mtime_nsec; unsigned long int mtime_nsec;
#endif #endif
}; };
struct _Image_Entry struct _Image_Entry
{ {
EINA_INLIST; EINA_INLIST;
Evas_Cache_Image *cache; Evas_Cache_Image *cache;
#ifdef EVAS_CSERVE2
Evas_Cache2 *cache2;
#endif
const char *cache_key; const char *cache_key;
const char *file; const char *file;
const char *key; const char *key;
Evas_Cache_Target *targets; Evas_Cache_Target *targets;
Evas_Preload_Pthread *preload; Evas_Preload_Pthread *preload;
Image_Timestamp tstamp; Image_Timestamp tstamp;
int references; int references;
#ifdef EVAS_FRAME_QUEUING
LK(lock_references); // needed for accessing references
#endif
#ifdef BUILD_PIPE_RENDER #ifdef BUILD_PIPE_RENDER
RGBA_Pipe *pipe; RGBA_Pipe *pipe;
#ifdef EVAS_FRAME_QUEUING
LK(ref_fq_add);
LK(ref_fq_del);
Eina_Condition cond_fq_del;
int ref_fq[2]; // ref_fq[0] is for addition, ref_fq[1] is f
or deletion
#endif
#endif #endif
unsigned char scale; unsigned char scale;
RGBA_Image_Loadopts load_opts; RGBA_Image_Loadopts load_opts;
int space; int space;
unsigned int w; unsigned int w;
unsigned int h; unsigned int h;
struct struct
skipping to change at line 630 skipping to change at line 625
#ifdef BUILD_ASYNC_PRELOAD #ifdef BUILD_ASYNC_PRELOAD
LK(lock); LK(lock);
LK(lock_cancel); LK(lock_cancel);
Eina_Bool unload_cancel : 1; Eina_Bool unload_cancel : 1;
#endif #endif
Image_Entry_Flags flags; Image_Entry_Flags flags;
Evas_Image_Scale_Hint scale_hint; Evas_Image_Scale_Hint scale_hint;
void *data1, *data2; void *data1, *data2;
#ifdef EVAS_CSERVE2
unsigned int open_rid, load_rid, preload_rid;
#endif
int server_id; int server_id;
int connect_num; int connect_num;
int channel; int channel;
int load_error; int load_error;
/* for animation feature */ /* for animation feature */
int frame_count; int frame_count;
Evas_Image_Animated_Loop_Hint loop_hint; Evas_Image_Animated_Loop_Hint loop_hint;
int loop_count; int loop_count;
int cur_frame; int cur_frame;
skipping to change at line 733 skipping to change at line 731
Eina_Bool anti_alias : 1; Eina_Bool anti_alias : 1;
}; };
#ifdef BUILD_PIPE_RENDER #ifdef BUILD_PIPE_RENDER
#include "../engines/common/evas_map_image.h" #include "../engines/common/evas_map_image.h"
#include "../engines/common/evas_text_utils.h" #include "../engines/common/evas_text_utils.h"
struct _RGBA_Pipe_Op struct _RGBA_Pipe_Op
{ {
RGBA_Draw_Context context; RGBA_Draw_Context context;
void (*op_func) (RGBA_Image *dst, RGBA_Pipe_Op *op, R Eina_Bool (*prepare_func) (void *data, RGBA_Image *dst, RG
GBA_Pipe_Thread_Info *info); BA_Pipe_Op *op);
void (*op_func) (RGBA_Image *dst, const RGBA_Pipe_Op
*op, const RGBA_Pipe_Thread_Info *info);
void (*free_func) (RGBA_Pipe_Op *op); void (*free_func) (RGBA_Pipe_Op *op);
Cutout_Rects *rects;
union { union {
struct { struct {
int x, y, w, h; int x, y, w, h;
} rect; } rect;
struct { struct {
int x0, y0, x1, y1; int x0, y0, x1, y1;
} line; } line;
struct { struct {
int x, y;
RGBA_Polygon_Point *points; RGBA_Polygon_Point *points;
} poly; } poly;
struct { struct {
RGBA_Font *font;
int x, y; int x, y;
Evas_Text_Props intl_props; Evas_Text_Props *intl_props;
RGBA_Gfx_Func func;
} text; } text;
struct { struct {
RGBA_Image *src; RGBA_Image *src;
int sx, sy, sw, sh, dx, dy, dw, dh; int sx, sy, sw, sh, dx, dy, dw, dh;
int smooth; int smooth;
char *text; char *text;
} image; } image;
struct { struct {
RGBA_Image *src; RGBA_Image *src;
RGBA_Map_Point *p; RGBA_Map *m;
int npoints; int npoints;
int smooth; int smooth;
int level; int level;
} map; } map;
} op; } op;
Eina_Bool render : 1;
}; };
#define PIPE_LEN 256 #define PIPE_LEN 256
struct _RGBA_Pipe struct _RGBA_Pipe
{ {
EINA_INLIST; EINA_INLIST;
int op_num; int op_num;
RGBA_Pipe_Op op[PIPE_LEN]; RGBA_Pipe_Op op[PIPE_LEN];
}; };
struct _RGBA_Pipe_Thread_Info struct _RGBA_Pipe_Thread_Info
{ {
RGBA_Image *im; EINA_INLIST;
int x, y, w, h; Eina_Rectangle area;
}; };
#endif #endif
struct _RGBA_Image struct _RGBA_Image
{ {
Image_Entry cache_entry; Image_Entry cache_entry;
RGBA_Image_Flags flags; RGBA_Image_Flags flags;
struct struct
{ {
skipping to change at line 859 skipping to change at line 862
FPc x, y; // x, y screenspace FPc x, y; // x, y screenspace
float fx, fy, fz; // x, y, z in floats float fx, fy, fz; // x, y, z in floats
// FPc x3, y3; // x, y 3d space // FPc x3, y3; // x, y 3d space
FPc z; // z in world space. optional FPc z; // z in world space. optional
FPc u, v; // u, v in tex coords FPc u, v; // u, v in tex coords
DATA32 col; // color at this point DATA32 col; // color at this point
// for perspective correctness - only point 0 has relevant info // for perspective correctness - only point 0 has relevant info
FPc px, py, z0, foc; FPc px, py, z0, foc;
}; };
struct _RGBA_Map
{
void *engine_data;
struct {
int w, h;
} image, uv;
int x, y;
int count;
RGBA_Map_Point pts[1];
};
#if 0 // filtering disabled #if 0 // filtering disabled
struct _Filtered_Image struct _Filtered_Image
{ {
void *key; void *key;
size_t keylen; size_t keylen;
RGBA_Image *image; RGBA_Image *image;
int ref; int ref;
}; };
#endif #endif
skipping to change at line 919 skipping to change at line 936
void (*freeme) (Fash_Glyph *fash); void (*freeme) (Fash_Glyph *fash);
}; };
///// /////
struct _RGBA_Font struct _RGBA_Font
{ {
Eina_List *fonts; Eina_List *fonts;
Fash_Int *fash; Fash_Int *fash;
Font_Hint_Flags hinting; Font_Hint_Flags hinting;
int references; int references;
#ifdef EVAS_FRAME_QUEUING
int ref_fq[2]; //ref_fq[0] is for addition, ref_fq[1] is fo
r deletion
Eina_Condition cond_fq_del;
LK(ref_fq_add);
LK(ref_fq_del);
#endif
LK(lock); LK(lock);
unsigned char sizeok : 1; unsigned char sizeok : 1;
}; };
#include "../engines/common/evas_font_ot.h" #include "../engines/common/evas_font_ot.h"
struct _RGBA_Font_Int struct _RGBA_Font_Int
{ {
EINA_INLIST; EINA_INLIST;
RGBA_Font_Source *src; RGBA_Font_Source *src;
skipping to change at line 953 skipping to change at line 964
FT_Size size; FT_Size size;
#ifdef USE_HARFBUZZ #ifdef USE_HARFBUZZ
void *hb_font; void *hb_font;
#endif #endif
} ft; } ft;
LK(ft_mutex); LK(ft_mutex);
Font_Hint_Flags hinting; Font_Hint_Flags hinting;
Font_Rend_Flags wanted_rend; /* The wanted rendering style */ Font_Rend_Flags wanted_rend; /* The wanted rendering style */
Font_Rend_Flags runtime_rend; /* The rendering we need to do on runtime Font_Rend_Flags runtime_rend; /* The rendering we need to do on runtime
in order to comply with the wanted_ren d. */ in order to comply with the wanted_ren d. */
Eina_List *task;
#ifdef EVAS_CSERVE2
void *cs2_handler;
#endif
int generation;
unsigned char sizeok : 1; unsigned char sizeok : 1;
unsigned char inuse : 1; unsigned char inuse : 1;
}; };
struct _RGBA_Font_Source struct _RGBA_Font_Source
{ {
const char *name; const char *name;
const char *file; const char *file;
void *data; void *data;
unsigned int current_size; unsigned int current_size;
int data_size; int data_size;
int references; int references;
struct { struct {
int orig_upem; int orig_upem;
FT_Face face; FT_Face face;
} ft; } ft;
}; };
/*
* laziness wins for now. The parts used from the freetpye struct are
* kept intact to avoid changing the code using it until we know exactly
* what needs to be changed
*/
struct _RGBA_Font_Glyph_Out
{
struct {
int rows;
int width;
int pitch;
unsigned char *buffer;
short num_grays;
char pixel_mode;
} bitmap;
};
struct _RGBA_Font_Glyph struct _RGBA_Font_Glyph
{ {
FT_UInt index; FT_UInt index;
Evas_Coord width;
Evas_Coord x_bear;
Evas_Coord y_bear;
FT_Glyph glyph; FT_Glyph glyph;
FT_BitmapGlyph glyph_out; RGBA_Font_Glyph_Out *glyph_out;
void (*glyph_out_free)(void *);
/* this is a problem - only 1 engine at a time can extend such a font... grrr */ /* this is a problem - only 1 engine at a time can extend such a font... grrr */
void *ext_dat; void *ext_dat;
void (*ext_dat_free) (void *ext_dat); void (*ext_dat_free) (void *ext_dat);
RGBA_Font_Int *fi; RGBA_Font_Int *fi;
}; };
struct _RGBA_Gfx_Compositor struct _RGBA_Gfx_Compositor
{ {
const char *name; const char *name;
skipping to change at line 1244 skipping to change at line 1284
void evas_common_regionbuf_span_del (Regionbuf *rb, int x1, int x 2, int y); void evas_common_regionbuf_span_del (Regionbuf *rb, int x1, int x 2, int y);
Tilebuf_Rect *evas_common_regionbuf_rects_get (Regionbuf *rb); Tilebuf_Rect *evas_common_regionbuf_rects_get (Regionbuf *rb);
*/ */
/****/ /****/
#include "../engines/common/evas_draw.h" #include "../engines/common/evas_draw.h"
#include "../engines/common/evas_map_image.h" #include "../engines/common/evas_map_image.h"
/****/ /****/
#ifdef BUILD_PIPE_RENDER #include "../engines/common/evas_pipe.h"
# include "../engines/common/evas_pipe.h"
#endif
void evas_font_dir_cache_free(void); void evas_font_dir_cache_free(void);
/****/ /****/
/************************************************************************** ***/ /************************************************************************** ***/
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
 End of changes. 23 change blocks. 
33 lines changed or deleted 69 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/