forked from enlightenment/efl
evas: refactor the creation of the output info logic in libevas.
This commit is contained in:
parent
46e1df839b
commit
22beae8b73
|
@ -1044,16 +1044,7 @@ evas_output_method_set(Evas *eo_e, int render_method)
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e->outputs, l, output)
|
EINA_LIST_FOREACH(e->outputs, l, output)
|
||||||
if (!output->info)
|
efl_canvas_output_info_get(e, output);
|
||||||
{
|
|
||||||
output->info = calloc(1, e->engine.func->info_size);
|
|
||||||
if (!output->info) continue ;
|
|
||||||
output->info->magic = rand();
|
|
||||||
output->info_magic = output->info->magic;
|
|
||||||
|
|
||||||
if (e->engine.func->output_info_setup)
|
|
||||||
e->engine.func->output_info_setup(output->info);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,6 +19,25 @@ _efl_canvas_output_async_block(Efl_Canvas_Output *output)
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
efl_canvas_output_info_get(Evas_Public_Data *e, Efl_Canvas_Output *output)
|
||||||
|
{
|
||||||
|
if (output->info) return ;
|
||||||
|
if (!e->engine.func->info_size)
|
||||||
|
{
|
||||||
|
CRI("Engine not up to date no info size provided.");
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
|
output->info = calloc(1, e->engine.func->info_size);
|
||||||
|
if (!output->info) return;
|
||||||
|
output->info->magic = rand();
|
||||||
|
output->info_magic = output->info->magic;
|
||||||
|
|
||||||
|
if (e->engine.func->output_info_setup)
|
||||||
|
e->engine.func->output_info_setup(output->info);
|
||||||
|
}
|
||||||
|
|
||||||
EAPI Efl_Canvas_Output *
|
EAPI Efl_Canvas_Output *
|
||||||
efl_canvas_output_add(Evas *canvas)
|
efl_canvas_output_add(Evas *canvas)
|
||||||
{
|
{
|
||||||
|
@ -38,22 +57,8 @@ efl_canvas_output_add(Evas *canvas)
|
||||||
|
|
||||||
// The engine is already initialized, use it
|
// The engine is already initialized, use it
|
||||||
// right away to setup the info structure
|
// right away to setup the info structure
|
||||||
if (e->engine.func->info_size)
|
efl_canvas_output_info_get(e, r);
|
||||||
{
|
|
||||||
r->info = calloc(1, e->engine.func->info_size);
|
|
||||||
if (!r->info) goto on_error;
|
|
||||||
r->info->magic = rand();
|
|
||||||
r->info_magic = r->info->magic;
|
|
||||||
|
|
||||||
if (e->engine.func->output_info_setup)
|
|
||||||
e->engine.func->output_info_setup(r->info);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
CRI("Engine not up to date no info size provided.");
|
|
||||||
}
|
|
||||||
|
|
||||||
on_error:
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2090,6 +2090,8 @@ Eina_List *_evas_pointer_list_in_rect_get(Evas_Public_Data *edata,
|
||||||
Evas_Object_Protected_Data *obj_data,
|
Evas_Object_Protected_Data *obj_data,
|
||||||
int w, int h);
|
int w, int h);
|
||||||
|
|
||||||
|
void efl_canvas_output_info_get(Evas_Public_Data *e, Efl_Canvas_Output *output);
|
||||||
|
|
||||||
extern Eina_Cow *evas_object_proxy_cow;
|
extern Eina_Cow *evas_object_proxy_cow;
|
||||||
extern Eina_Cow *evas_object_map_cow;
|
extern Eina_Cow *evas_object_map_cow;
|
||||||
extern Eina_Cow *evas_object_state_cow;
|
extern Eina_Cow *evas_object_state_cow;
|
||||||
|
|
Loading…
Reference in New Issue