aaaah missing map smooth and alpha flags.

SVN revision: 46383
This commit is contained in:
Carsten Haitzler 2010-02-23 05:45:24 +00:00
parent 10b90e46c6
commit a952803f13
4 changed files with 91 additions and 1 deletions

View File

@ -209,6 +209,8 @@ static void st_collections_group_parts_part_description_map_rotation_x(void);
static void st_collections_group_parts_part_description_map_rotation_y(void);
static void st_collections_group_parts_part_description_map_rotation_z(void);
static void st_collections_group_parts_part_description_map_on(void);
static void st_collections_group_parts_part_description_map_smooth(void);
static void st_collections_group_parts_part_description_map_alpha(void);
static void st_collections_group_parts_part_description_map_backface_cull(void);
static void st_collections_group_parts_part_description_map_perspective_on(void);
static void st_collections_group_parts_part_description_perspective_zplane(void);
@ -433,6 +435,8 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.parts.part.description.map.rotation.y", st_collections_group_parts_part_description_map_rotation_y},
{"collections.group.parts.part.description.map.rotation.z", st_collections_group_parts_part_description_map_rotation_z},
{"collections.group.parts.part.description.map.on", st_collections_group_parts_part_description_map_on},
{"collections.group.parts.part.description.map.smooth", st_collections_group_parts_part_description_map_smooth},
{"collections.group.parts.part.description.map.alpha", st_collections_group_parts_part_description_map_alpha},
{"collections.group.parts.part.description.map.backface_cull", st_collections_group_parts_part_description_map_backface_cull},
{"collections.group.parts.part.description.map.perspective_on", st_collections_group_parts_part_description_map_perspective_on},
{"collections.group.parts.part.description.perspective.zplane", st_collections_group_parts_part_description_perspective_zplane},
@ -3098,6 +3102,8 @@ ob_collections_group_parts_part_description(void)
ed->map.rot.y = FROM_DOUBLE(0.0);
ed->map.rot.z = FROM_DOUBLE(0.0);
ed->map.on = 0;
ed->map.smooth = 1;
ed->map.alpha = 1;
ed->map.backcull = 0;
ed->map.persp_on = 0;
ed->persp.zplane = 0;
@ -5934,7 +5940,7 @@ st_collections_group_parts_part_description_map_rotation_z(void)
@parameters
enable map at all (1/0)
@effect
This enables mapping for the part.
This enables mapping for the part. Default is 0.
@endproperty
*/
static void
@ -5954,6 +5960,79 @@ st_collections_group_parts_part_description_map_on(void)
ed->map.on = parse_bool(0);
}
/**
@page edcref
@property
smooth
@context
description {
..
map {
smooth: 1;
}
..
}
@parameters
enable map smooth rendering (linear interpolation) (1/0)
@effect
This enable smooth map rendering. This may be linear interpolation,
asinortopic filtering or anything the engine decides is "smooth".
This is a best-effort hint and may not produce precisely the same
results in all engines and situations. Default is 1
@endproperty
*/
static void
st_collections_group_parts_part_description_map_smooth(void)
{
Edje_Part_Collection *pc;
Edje_Part *ep;
Edje_Part_Description *ed;
check_arg_count(1);
pc = eina_list_data_get(eina_list_last(edje_collections));
ep = eina_list_data_get(eina_list_last(pc->parts));
ed = ep->default_desc;
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
ed->map.smooth = parse_bool(0);
}
/**
@page edcref
@property
alpha
@context
description {
..
map {
alpha: 1;
}
..
}
@parameters
enable map alpha rendering (1/0)
@effect
This enable alpha channel when map rendering. Default is 1
@endproperty
*/
static void
st_collections_group_parts_part_description_map_alpha(void)
{
Edje_Part_Collection *pc;
Edje_Part *ep;
Edje_Part_Description *ed;
check_arg_count(1);
pc = eina_list_data_get(eina_list_last(edje_collections));
ep = eina_list_data_get(eina_list_last(pc->parts));
ed = ep->default_desc;
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
ed->map.alpha = parse_bool(0);
}
/**
@page edcref
@property

View File

@ -2415,6 +2415,13 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
}
}
// handle smooth
if (chosen_desc->map.smooth) evas_map_smooth_set(map, 1);
else evas_map_smooth_set(map, 0);
// handle alpha
if (chosen_desc->map.alpha) evas_map_alpha_set(map, 1);
else evas_map_alpha_set(map, 0);
evas_object_map_set(mo, map);
evas_object_map_enable_set(mo, 1);
evas_map_free(map);

View File

@ -358,6 +358,8 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.y", map.rot.y, EDJE_T_FLOAT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.rot.z", map.rot.z, EDJE_T_FLOAT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.on", map.on, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.smooth", map.smooth, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.alpha", map.alpha, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.persp_on", map.persp_on, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "map.backcull", map.backcull, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "persp.zplane", persp.zplane, EET_T_INT);

View File

@ -691,6 +691,8 @@ struct _Edje_Part_Description
unsigned char backcull;
unsigned char on;
unsigned char persp_on;
unsigned char smooth;
unsigned char alpha;
} map;
struct {