Enlightenment CVS committal Author : turran Project : e17 Module : proto/enesim
Dir : e17/proto/enesim/src/lib Modified Files: Enesim.h Log Message: + Anti Alias Polygon rasterizer (kiia8, 16 and 32) + Move scanline definitions to the API (first step for a new scanline approach) + Blending with a relative alpha + New data types (extender, etc) =================================================================== RCS file: /cvs/e/e17/proto/enesim/src/lib/Enesim.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Enesim.h 13 Nov 2007 00:23:45 -0000 1.4 +++ Enesim.h 2 Dec 2007 23:28:43 -0000 1.5 @@ -77,6 +77,38 @@ * @{ */ +/** + * To be documented + * FIXME: To be fixed + */ +typedef struct _Enesim_Scanline_Alias +{ + int y; + int x; + int w; +} Enesim_Scanline_Alias; + +/** + * To be documented + * FIXME: To be fixed + */ +typedef struct _Enesim_Scanline_Mask +{ + int y; + int x; + int w; + DATA8 *coverages; +} Enesim_Scanline_Mask; + +enum { + ENESIM_SCANLINE_ALIAS = (1 << 0), + ENESIM_SCANLINE_ANTIALIAS = (1 << 1), + ENESIM_SCANLINE_MASK = (1 << 2), + ENESIM_SCANLINES +}; + +typedef void (*Enesim_Scanline_Callback)(void *sl, void *data); + typedef struct _Enesim_Scanline Enesim_Scanline; /**< Scanline Handler */ EAPI Enesim_Scanline *enesim_scanline_alias_new(void); EAPI void enesim_scanline_delete(Enesim_Scanline *sl); @@ -87,10 +119,27 @@ * @defgroup Enesim_Rasterizer_Group Rasterizer * @{ */ + +enum +{ + ENESIM_OK = 1, + ENESIM_ERROR_SCANLINE_NOT_SUPPORTED, +}; + +typedef enum +{ + ENESIM_RASTERIZER_FILL_RULE_EVENODD, + ENESIM_RASTERIZER_FILL_RULE_NONEZERO, + ENESIM_RASTERIZER_FILL_RULES +} Enesim_Rasterizer_Fill_Rule; + typedef struct _Enesim_Rasterizer Enesim_Rasterizer; /**< Rasterizer Handler */ + EAPI void enesim_rasterizer_vertex_add(Enesim_Rasterizer *r, float x, float y); -EAPI void enesim_rasterizer_generate(Enesim_Rasterizer *r, Enesim_Scanline *sl); +EAPI int enesim_rasterizer_generate(Enesim_Rasterizer *r, int sl, Enesim_Scanline_Callback cb, void *data); EAPI void enesim_rasterizer_delete(Enesim_Rasterizer *r); +EAPI void enesim_rasterizer_fill_rule_set(Enesim_Rasterizer *r, Enesim_Rasterizer_Fill_Rule rule); + EAPI Enesim_Rasterizer * enesim_rasterizer_cpsc_new(Enesim_Rectangle boundaries); typedef enum @@ -149,7 +198,7 @@ } Enesim_Renderer_Rop; EAPI void enesim_renderer_rop_set(Enesim_Renderer *r, int rop); EAPI void enesim_renderer_delete(Enesim_Renderer *r); -EAPI void enesim_renderer_draw(Enesim_Renderer *r, Enesim_Scanline *sl, Enesim_Surface *dst); +EAPI void enesim_renderer_draw(Enesim_Renderer *r, int type, void *sl, Enesim_Surface *dst); /** * @defgroup Enesim_Renderer_Fill_Color_Group Fill Color * @{ @@ -237,5 +286,6 @@ /** @} */ //End of Enesim_Component_Reader_Group /** @} */ //End of Enesim_Vector_Group /** @} */ //End of Enesim_Group + #endif ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs