The avoid_afill option is for initializing ecore_evas engine.
When the avoid_afill is 1, e20 uses the gl_tbm_ES engine.
The gl_tbm_ES engine does not fill 0xff the alpha channel even if
the depth of the ecore_evas is 24 depth and the bpp of the buffer
is 32bits.
Otherwise, the gl_tbm engine which is used when the avoid_afill is 0
(default value) fills the 0xff at the same condition.
p.s. this patch is temporary. therefore it will be revoved later.
Change-Id: I8af6e3be883d800687a8cfd893bd5f5c2555eddf
if (conf->use_native_type_buffer) e_comp->use_native_type_buffer = EINA_TRUE;
e_comp->comp_type = E_PIXMAP_TYPE_WL;
+ if (conf->avoid_afill) e_comp->avoid_afill = EINA_TRUE;
e_comp_canvas_fake_layers_init();
Eina_Bool hwc_use_detach;
Eina_Bool hwc_ignore_primary;
Eina_Bool use_native_type_buffer : 1; // use native buffer type
+ Eina_Bool avoid_afill; // avoid to fill the alpha channel as 0xff. that means filling 0x00.
int depth;
unsigned int input_key_grabs;
E_CONFIG_VAL(D, T, dim_rect_effect, UCHAR);
E_CONFIG_VAL(D, T, dim_rect_enable, UCHAR);
E_CONFIG_VAL(D, T, input_log_enable, UCHAR);
+ E_CONFIG_VAL(D, T, avoid_afill, UCHAR);
}
E_API E_Comp_Config *
cfg->input_log_enable = 0;
+ cfg->avoid_afill = 0; // 0: use gl_tbm ee engine, 1: use gl_tbm_ES ee engine
+
return cfg;
error:
unsigned char dim_rect_enable;
unsigned char dim_rect_effect;
Eina_Bool input_log_enable;
+ unsigned char avoid_afill; // used for avoiding to fill the alpha channel. 0: use gl_tbm ee engine, 1: use gl_tbm_ES ee engine
};
struct _E_Comp_Match
(e_comp_config_get()->engine == E_COMP_ENGINE_GL))
{
e_main_ts_begin("\tEE_GL_DRM New");
- ee = ecore_evas_tbm_allocfunc_new("gl_tbm", scr_w, scr_h, _e_hwc_tbm_surface_queue_alloc, _e_hwc_tbm_surface_queue_free, (void *)hwc);
+ if (e_comp->avoid_afill)
+ ee = ecore_evas_tbm_allocfunc_new("gl_tbm_ES", scr_w, scr_h, _e_hwc_tbm_surface_queue_alloc, _e_hwc_tbm_surface_queue_free, (void *)hwc);
+ else
+ ee = ecore_evas_tbm_allocfunc_new("gl_tbm", scr_w, scr_h, _e_hwc_tbm_surface_queue_alloc, _e_hwc_tbm_surface_queue_free, (void *)hwc);
snprintf(buf, sizeof(buf), "\tEE_GL_DRM New Done %p %dx%d", ee, scr_w, scr_h);
e_main_ts_end(buf);
if(!strcmp("gl_drm_tbm", name) ||
!strcmp("drm_tbm", name) ||
!strcmp("gl_tbm", name) ||
- !strcmp("software_tbm", name))
+ !strcmp("software_tbm", name) ||
+ !strcmp("gl_tbm_ES", name))
{
ecore_evas_manual_render_set(e_comp->ee, 1);
}
{
ecore_evas_manual_render_set(e_comp->ee, 1);
}
+ else if(!strcmp("gl_tbm_ES", name))
+ {
+ ecore_evas_manual_render_set(e_comp->ee, 1);
+ }
else if(!strcmp("software_tbm", name))
{
ecore_evas_manual_render_set(e_comp->ee, 1);