forked from enlightenment/efl
evas-gl_cocoa: cleanup eng_setup
This commit is contained in:
parent
f4f94a9f79
commit
54b417fa30
|
@ -60,6 +60,7 @@ static Evas_Func func, pfunc;
|
||||||
/* Function table for GL APIs */
|
/* Function table for GL APIs */
|
||||||
static Evas_GL_API gl_funcs;
|
static Evas_GL_API gl_funcs;
|
||||||
|
|
||||||
|
static Eina_Bool _initted = EINA_FALSE;
|
||||||
Eina_Bool _need_context_restore = EINA_FALSE;
|
Eina_Bool _need_context_restore = EINA_FALSE;
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -92,19 +93,38 @@ eng_info_free(Evas *e EINA_UNUSED, void *info)
|
||||||
static int
|
static int
|
||||||
eng_setup(Evas *eo_e, void *in)
|
eng_setup(Evas *eo_e, void *in)
|
||||||
{
|
{
|
||||||
Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(in, 0);
|
||||||
Render_Engine *re;
|
|
||||||
Evas_Engine_Info_GL_Cocoa *info;
|
Evas_Engine_Info_GL_Cocoa *const info = in;
|
||||||
|
Evas_Public_Data *e;
|
||||||
|
Render_Engine *re;
|
||||||
|
|
||||||
DBG("Engine Setup");
|
DBG("Engine Setup");
|
||||||
|
e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
|
||||||
|
if (EINA_UNLIKELY(!e))
|
||||||
|
{
|
||||||
|
CRI("Failed to get evas public data");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO SWAP MODE
|
||||||
|
|
||||||
info = (Evas_Engine_Info_GL_Cocoa *)in;
|
|
||||||
if (!e->engine.data.output)
|
if (!e->engine.data.output)
|
||||||
{
|
{
|
||||||
re = calloc(1, sizeof(Render_Engine));
|
if (!_initted)
|
||||||
if (!re) return 0;
|
{
|
||||||
|
evas_common_init();
|
||||||
|
// TODO gl_preload_init()
|
||||||
|
_initted = EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
re = calloc(1, sizeof(*re));
|
||||||
|
if (EINA_UNLIKELY(!re))
|
||||||
|
{
|
||||||
|
CRI("Failed to allocate memory");
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
e->engine.data.output = re;
|
|
||||||
re->win = eng_window_new(info->window,
|
re->win = eng_window_new(info->window,
|
||||||
e->output.w,
|
e->output.w,
|
||||||
e->output.h);
|
e->output.h);
|
||||||
|
@ -115,8 +135,7 @@ eng_setup(Evas *eo_e, void *in)
|
||||||
e->engine.data.output = NULL;
|
e->engine.data.output = NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
e->engine.data.output = re;
|
||||||
evas_common_init();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -135,6 +154,8 @@ eng_setup(Evas *eo_e, void *in)
|
||||||
eng_window_use(re->win);
|
eng_window_use(re->win);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
err:
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -147,7 +168,12 @@ eng_output_free(void *data)
|
||||||
eng_window_free(re->win);
|
eng_window_free(re->win);
|
||||||
free(re);
|
free(re);
|
||||||
|
|
||||||
evas_common_shutdown();
|
if (_initted)
|
||||||
|
{
|
||||||
|
// TODO gl_preload_shutdown
|
||||||
|
evas_common_shutdown();
|
||||||
|
_initted = EINA_FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue