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_FOREACH(e->outputs, l, output)
|
||||
if (!output->info)
|
||||
{
|
||||
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);
|
||||
}
|
||||
efl_canvas_output_info_get(e, output);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -19,6 +19,25 @@ _efl_canvas_output_async_block(Efl_Canvas_Output *output)
|
|||
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 *
|
||||
efl_canvas_output_add(Evas *canvas)
|
||||
{
|
||||
|
@ -38,22 +57,8 @@ efl_canvas_output_add(Evas *canvas)
|
|||
|
||||
// The engine is already initialized, use it
|
||||
// right away to setup the info structure
|
||||
if (e->engine.func->info_size)
|
||||
{
|
||||
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;
|
||||
efl_canvas_output_info_get(e, r);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -2090,6 +2090,8 @@ Eina_List *_evas_pointer_list_in_rect_get(Evas_Public_Data *edata,
|
|||
Evas_Object_Protected_Data *obj_data,
|
||||
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_map_cow;
|
||||
extern Eina_Cow *evas_object_state_cow;
|
||||
|
|
Loading…
Reference in New Issue