From: Enlightenment C. <no...@cv...> - 2006-12-09 08:52:44
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src/lib Modified Files: Evas.h Log Message: 1. add new api calls to 1. set a "native surface" for image objects. this currently does nothing and i have kept it VEEERY generic it's a pointer to a native surface which can be just about anything - each engine will probably define a format of its own you need to use VIA the native surface type. 2. add calls to set/get colorspace - moving this down into the engine level. so far engines do nothing at all with it - but api is there. 3. clean up gl engine a bit - make it more standard. =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/Evas.h,v retrieving revision 1.93 retrieving revision 1.94 diff -u -3 -r1.93 -r1.94 --- Evas.h 2 Dec 2006 03:20:56 -0000 1.93 +++ Evas.h 9 Dec 2006 08:52:08 -0000 1.94 @@ -56,11 +56,19 @@ typedef enum _Evas_Font_Hinting_Flags { - EVAS_FONT_HINTING_NONE, - EVAS_FONT_HINTING_AUTO, - EVAS_FONT_HINTING_BYTECODE + EVAS_FONT_HINTING_NONE, /**< No font hinting */ + EVAS_FONT_HINTING_AUTO, /**< Automatic font hinting */ + EVAS_FONT_HINTING_BYTECODE /**< Bytecode font hinting */ } Evas_Font_Hinting_Flags; /**< Flags for Font Hinting */ +typedef enum _Evas_Colorspace +{ + EVAS_COLORSPACE_ARGB8888, /**< ARGB 32 bits per pixel, high-byte is Alpha, accessed 1 32bit word at a time */ + /* these are not currently supported - but planned for the future */ + EVAS_COLORSPACE_YCBCR422P601, /**< YCbCr 4:2:2 Planar with Planes in order Y, Cb and Cr, ITU.BT-601 specifications */ + EVAS_COLORSPACE_YCBCR422P709 /**< YCbCr 4:2:2 Planar with Planes in order Y, Cb and Cr, ITU-BT-709 specifications */ +} Evas_Colorspace; /**< Colorspaces for pixel data supported by Evas */ + typedef struct _Evas_List Evas_List; /**< A generic linked list node handle */ typedef struct _Evas_Rectangle Evas_Rectangle; /**< A generic rectangle handle */ typedef struct _Evas_Smart_Class Evas_Smart_Class; /**< A smart object base class */ @@ -72,6 +80,7 @@ typedef struct _Evas_Modifier Evas_Modifier; /**< An Evas Modifier */ typedef struct _Evas_Lock Evas_Lock; /**< An Evas Lock */ typedef struct _Evas_Smart Evas_Smart; /**< An Evas Smart Object handle */ +typedef struct _Evas_Native_Surface Evas_Native_Surface; /**< A generic datatype for engine specific native surface information */ typedef unsigned long long Evas_Modifier_Mask; /**< An Evas modifier mask type */ typedef int Evas_Coord; @@ -148,6 +157,16 @@ void **rows; /**< an array of pointers (size depends on format) pointing to left edge of each scanline */ }; +struct _Evas_Native_Surface +{ + union { + void *p; + unsigned short s; + unsigned int i; + unsigned long l; + } data; +}; + #define EVAS_PIXEL_FORMAT_NONE 0 /**< No pixel format */ #define EVAS_PIXEL_FORMAT_ARGB32 1 /**< ARGB 32bit pixel format with A in the high byte per 32bit pixel word */ #define EVAS_PIXEL_FORMAT_YUV420P_601 2 /**< YUV 420 Planar format with CCIR 601 color encoding wuth contiguous planes in the order Y, U and V */ @@ -468,6 +487,10 @@ EAPI void evas_object_image_load_size_get (Evas_Object *obj, int *w, int *h); EAPI void evas_object_image_load_scale_down_set (Evas_Object *obj, int scale_down); EAPI int evas_object_image_load_scale_down_get (Evas_Object *obj); + EAPI void evas_object_image_colorspace_set (Evas_Object *obj, Evas_Colorspace cspace); + EAPI Evas_Colorspace evas_object_image_colorspace_get (Evas_Object *obj); + EAPI void evas_object_image_native_surface_set (Evas_Object *obj, Evas_Native_Surface *surf); + EAPI Evas_Native_Surface *evas_object_image_native_surface_get (Evas_Object *obj); /* image cache */ EAPI void evas_image_cache_flush (Evas *e); |