From: Cedric BAIL Date: Fri, 25 Aug 2017 17:51:56 +0000 (-0700) Subject: evas: make function to find evas gl context from engine shared across backend. X-Git-Tag: submit/sandbox/upgrade/efl120/20180319.053334~2964 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89c34cda21e55fa1de7d0295d9a234039d1adbaa;p=platform%2Fupstream%2Fefl.git evas: make function to find evas gl context from engine shared across backend. --- diff --git a/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h b/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h index a78e588..043d7f7 100644 --- a/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h +++ b/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h @@ -103,4 +103,66 @@ evas_render_engine_gl_generic_init(Render_Engine_Software_Generic *engine, return EINA_TRUE; } +static inline Evas_Engine_GL_Context * +gl_generic_context_get(Render_Output_GL_Generic *output) +{ + if (!output->software.ob) return NULL; + output->window_use(output->software.ob); + return output->window_gl_context_get(output->software.ob); + +} + +static inline void +gl_generic_window_use(void *engine) +{ + Render_Output_GL_Generic *re = engine; + + re->window_use(re->software.ob); +} + +static inline Evas_Engine_GL_Context * +gl_generic_context_find(Render_Engine_GL_Generic *engine) +{ + Render_Output_GL_Generic *output; + Evas_Engine_GL_Context *r = NULL; + Eina_List *l; + + EINA_LIST_FOREACH(engine->software.outputs, l, output) + { + r = gl_generic_context_get(output); + if (r) return r; + } + + return r; +} + +static inline void +gl_generic_window_find(Render_Engine_GL_Generic *engine) +{ + Render_Output_GL_Generic *output; + Eina_List *l; + + EINA_LIST_FOREACH(engine->software.outputs, l, output) + { + if (!output->software.ob) continue; + gl_generic_window_use(output); + break; + } +} + +static inline void * +gl_generic_any_output_get(Render_Engine_GL_Generic *engine) +{ + Render_Output_GL_Generic *output; + Eina_List *l; + + EINA_LIST_FOREACH(engine->software.outputs, l, output) + { + if (!output->software.ob) continue; + return output->software.ob; + } + + return NULL; +} + #endif diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 2b3f1f4..96f9afe 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -49,53 +49,6 @@ int _evas_engine_GL_log_dom = -1; # endif #endif -static Evas_Engine_GL_Context * -gl_generic_context_get(Render_Output_GL_Generic *output) -{ - if (!output->software.ob) return NULL; - output->window_use(output->software.ob); - return output->window_gl_context_get(output->software.ob); - -} - -static void -gl_generic_window_use(void *engine) -{ - Render_Output_GL_Generic *re = engine; - - re->window_use(re->software.ob); -} - -static Evas_Engine_GL_Context * -gl_generic_context_find(Render_Engine_GL_Generic *engine) -{ - Render_Output_GL_Generic *output; - Evas_Engine_GL_Context *r = NULL; - Eina_List *l; - - EINA_LIST_FOREACH(engine->software.outputs, l, output) - { - r = gl_generic_context_get(output); - if (r) return r; - } - - return r; -} - -static void -gl_generic_window_find(Render_Engine_GL_Generic *engine) -{ - Render_Output_GL_Generic *output; - Eina_List *l; - - EINA_LIST_FOREACH(engine->software.outputs, l, output) - { - if (!output->software.ob) continue; - gl_generic_window_use(output); - break; - } -} - static int eng_gl_image_direct_get(void *data, void *image); static int eng_gl_surface_destroy(void *data, void *surface); static Eina_Bool eng_gl_surface_lock(void *data, void *surface);