Ok, now for a proposed api for evas "vgfx objects" -- a very simple one,
but
general enough to allow for the overwhelming majority of vgfx uses (and
certainly
ones for most 'real-time' use in evas).
Again, by evas "vgfx objects" we mean evas objects that can be "filled
and/or
stroked" (eg. lines, rects, polys, paths, ... maybe text) with a color or a
"texture"
(aka: a paint or pattern).
(1) For "filling" of supported objs:
*******************************
void evas_object_fill_color_set(obj, r,g,b,a);
void evas_object_fill_texture_set(obj, Evas_Object *texture_obj);
Where 'texture_obj' is restricted to be an image or a gradient obj (no
others
for now). Also, no fill-texturing of an image or grad obj. I think I
briefly
explained the interpretation of this before - ie. image or grad objs are
really equivalent to a simple rectangle being flled with image or grad
texture,
where the 'texture' part is given by fill geometries and such.. So, when
these
objects are set as texture_objs of vector objs, all general object
properties
are ignored and only the 'fill' properties are used - except that the fill
geometries' coord system is now taken rel to the textured obj's origin.
(2) For "stroking" of supported objs:
********************************
void evas_object_stroke_color_set(obj, r,g,b,a);
void evas_object_stroke_texture_set(obj, Evas_Object *texture_obj);
These are similar to above for the fill.
void evas_object_stroke_weight_set(obj, Evas_Coord weight);
(3) For determining whether to fill and/or stroke supported objects:
***************************************************************
void evas_object_draw_mode_set(obj, int draw_mode);
Where 'draw_mode' is one of: EVAS_DRAW_STROKE, EVAS_DRAW_FILL, or
EVAS_DRAW_STROKE_FILL.
More api funcs can be added to obtain fuller vgfx support, but this is
actually a good chunk of it (just need a bit on cap styles, join styles, and
dashed-stroking, but not much else really that would be reasonable here).
It doesn't cover the other proposed desire to change the polygon object
'points' api, nor does it cover a possible "path" object api (which I would
suggest be given in the same manner as that proposed for polys, ie. *set* a
"path description" which consists of some means of defining the path).
Nor does it cover possibly setting (affine) transforms on the vertex-
geometries that might define such vgfx objects.. leave that for later.
(4) Extensions to the current rectangle obj api:
*******************************************
void evas_object_rectangle_corner_radius_set(obj, float r);
void evas_object_rectangle_corner_style_set(obj, int corner_style);
Where 'corner_style' can be one of EVAS_CORNER_ROUND or EVAS_CORNER_BEVEL.
void evas_object_rectangle_corners_set(obj, Evas_Bool tl, Evas_Bool tr,
Evas_Bool bl, Evas_Bool br);
The corners to apply the style to, or leave squared off (default).
Rectangles can be filled and/or stroked, but the stroking will be defined
to increase inward - though one could also add an api for deciding whether to
have
it centered on the rect, or increase inward or outward.
____________________________________________________________
Click to consolidate your debt in minutes, stop late or over-limit fees, pay
less.
http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3m2bkjb956ElxjIhRRrqe1OG1E6WbsoH6rpBrTpg9m4hiCTW/
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel