filters: Fix GL support aka. cedric's bork
authorJean-Philippe Andre <jp.andre@samsung.com>
Tue, 5 Sep 2017 07:29:01 +0000 (16:29 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Wed, 6 Sep 2017 00:12:28 +0000 (09:12 +0900)
src/modules/evas/engines/gl_generic/evas_ector_gl_buffer.c
src/modules/evas/engines/gl_generic/evas_engine.c
src/modules/evas/engines/gl_generic/filters/gl_engine_filter.h
src/modules/evas/engines/gl_generic/filters/gl_filter_blend.c
src/modules/evas/engines/gl_generic/filters/gl_filter_blur.c
src/modules/evas/engines/gl_generic/filters/gl_filter_curve.c
src/modules/evas/engines/gl_generic/filters/gl_filter_displace.c
src/modules/evas/engines/gl_generic/filters/gl_filter_fill.c
src/modules/evas/engines/gl_generic/filters/gl_filter_mask.c

index 2bd9cb3..93f58b6 100644 (file)
@@ -37,7 +37,7 @@ struct _Ector_GL_Buffer_Map
 
 struct _Evas_Ector_GL_Buffer_Data
 {
-   Render_Output_GL_Generic *re;
+   Render_Engine_GL_Generic *re;
    Evas_GL_Image *glim;
    Eina_Bool alpha_only, was_render;
    Ector_GL_Buffer_Map *maps;
@@ -109,7 +109,7 @@ _evas_ector_gl_buffer_gl_buffer_prepare(Eo *obj, Evas_Ector_GL_Buffer_Data *pd,
                                         int w, int h, Efl_Gfx_Colorspace cspace,
                                         Ector_Buffer_Flag flags EINA_UNUSED)
 {
-   Render_Output_GL_Generic *re = engine;
+   Render_Engine_GL_Generic *re = engine;
    Evas_Engine_GL_Context *gc;
    Evas_GL_Image *im;
 
@@ -125,8 +125,7 @@ _evas_ector_gl_buffer_gl_buffer_prepare(Eo *obj, Evas_Ector_GL_Buffer_Data *pd,
      fail("Unsupported colorspace: %u", cspace);
 
    pd->re = re;
-   gc = re->window_gl_context_get(re->software.ob);
-
+   gc = gl_generic_context_find(re, 1);
    im = evas_gl_common_image_surface_new(gc, w, h, EINA_TRUE, EINA_FALSE);
    if (!im) fail("Failed to create GL surface!");
 
index 3bb4dde..eab7c9b 100644 (file)
@@ -3084,7 +3084,7 @@ eng_image_surface_noscale_new(void *engine, int w, int h, int alpha)
 //------------------------------------------------//
 
 static GL_Filter_Apply_Func
-_gfx_filter_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gfx_filter_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    GL_Filter_Apply_Func funcptr = NULL;
 
@@ -3107,7 +3107,7 @@ _gfx_filter_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 static Evas_Filter_Support
 eng_gfx_filter_supports(void *engine, Evas_Filter_Command *cmd)
 {
-   Render_Output_GL_Generic *re = engine;
+   Render_Engine_GL_Generic *re = engine;
 
    if (!_gfx_filter_func_get(re, cmd))
      return pfunc.gfx_filter_supports(&re->software, cmd);
@@ -3118,7 +3118,7 @@ eng_gfx_filter_supports(void *engine, Evas_Filter_Command *cmd)
 static Eina_Bool
 eng_gfx_filter_process(void *engine, Evas_Filter_Command *cmd)
 {
-   Render_Output_GL_Generic *re = engine;
+   Render_Engine_GL_Generic *re = engine;
    GL_Filter_Apply_Func funcptr;
 
    funcptr = _gfx_filter_func_get(re, cmd);
index 6c1de33..9cb59d1 100644 (file)
@@ -8,14 +8,14 @@
 
 extern int _evas_engine_GL_log_dom;
 
-typedef Eina_Bool (* GL_Filter_Apply_Func) (Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
-GL_Filter_Apply_Func gl_filter_blend_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
-GL_Filter_Apply_Func gl_filter_blur_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
-//GL_Filter_Apply_Func gl_filter_bump_func_get(Render_Output_GL_Generic *reEvas_Filter_Command *cmd);
-GL_Filter_Apply_Func gl_filter_curve_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
-GL_Filter_Apply_Func gl_filter_displace_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
-GL_Filter_Apply_Func gl_filter_fill_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
-GL_Filter_Apply_Func gl_filter_mask_func_get(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd);
+typedef Eina_Bool (* GL_Filter_Apply_Func) (Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
+GL_Filter_Apply_Func gl_filter_blend_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
+GL_Filter_Apply_Func gl_filter_blur_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
+//GL_Filter_Apply_Func gl_filter_bump_func_get(Render_Engine_GL_Generic *reEvas_Filter_Command *cmd);
+GL_Filter_Apply_Func gl_filter_curve_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
+GL_Filter_Apply_Func gl_filter_displace_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
+GL_Filter_Apply_Func gl_filter_fill_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
+GL_Filter_Apply_Func gl_filter_mask_func_get(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd);
 //GL_Filter_Apply_Func gl_filter_transform_func_get(Evas_Filter_Command *cmd);
 
 #undef DBG
index b2828ba..768b350 100644 (file)
@@ -156,7 +156,7 @@ _mapped_blend(Evas_Engine_GL_Context *gc,
 }
 
 static Eina_Bool
-_gl_filter_blend(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gl_filter_blend(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    Evas_Engine_GL_Context *gc;
    Evas_GL_Image *image, *surface;
@@ -165,8 +165,7 @@ _gl_filter_blend(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 
    DEBUG_TIME_BEGIN();
 
-   re->window_use(re->software.ob);
-   gc = re->window_gl_context_get(re->software.ob);
+   gc = gl_generic_context_find(re, 1);
 
    image = evas_ector_buffer_drawable_image_get(cmd->input->buffer);
    EINA_SAFETY_ON_NULL_RETURN_VAL(image, EINA_FALSE);
@@ -247,7 +246,7 @@ _gl_filter_blend(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 }
 
 GL_Filter_Apply_Func
-gl_filter_blend_func_get(Render_Output_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
+gl_filter_blend_func_get(Render_Engine_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->output, NULL);
index a42a246..82a757a 100644 (file)
@@ -127,7 +127,7 @@ _output_scale_get(Evas_Filter_Context *ctx, Evas_Filter_Command *cmd,
 }
 
 static Eina_Bool
-_gl_filter_blur(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gl_filter_blur(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    Evas_Engine_GL_Context *gc;
    Evas_GL_Image *image, *surface;
@@ -147,8 +147,7 @@ _gl_filter_blur(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
    d_h = cmd->output->h;
    EINA_SAFETY_ON_FALSE_RETURN_VAL(s_w && s_h && d_w && d_h, EINA_FALSE);
 
-   re->window_use(re->software.ob);
-   gc = re->window_gl_context_get(re->software.ob);
+   gc = gl_generic_context_find(re, 1);
 
    image = evas_ector_buffer_drawable_image_get(cmd->input->buffer);
    EINA_SAFETY_ON_NULL_RETURN_VAL(image, EINA_FALSE);
@@ -267,7 +266,7 @@ _gl_filter_blur(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 }
 
 GL_Filter_Apply_Func
-gl_filter_blur_func_get(Render_Output_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
+gl_filter_blur_func_get(Render_Engine_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->output, NULL);
index 5c7e66d..8042da1 100644 (file)
@@ -1,7 +1,7 @@
 #include "gl_engine_filter.h"
 
 static Eina_Bool
-_gl_filter_curve(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gl_filter_curve(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    Evas_Engine_GL_Context *gc;
    Evas_GL_Image *image, *surface;
@@ -26,8 +26,7 @@ _gl_filter_curve(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
    DBG("curve %d @%p -> %d @%p", cmd->input->id, cmd->input->buffer,
        cmd->output->id, cmd->output->buffer);
 
-   re->window_use(re->software.ob);
-   gc = re->window_gl_context_get(re->software.ob);
+   gc = gl_generic_context_find(re, 1);
    evas_gl_common_context_target_surface_set(gc, surface);
 
    dc_save = gc->dc;
@@ -56,7 +55,7 @@ _gl_filter_curve(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 }
 
 GL_Filter_Apply_Func
-gl_filter_curve_func_get(Render_Output_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
+gl_filter_curve_func_get(Render_Engine_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->input, NULL);
index 89f060d..cf26060 100644 (file)
@@ -1,7 +1,7 @@
 #include "gl_engine_filter.h"
 
 static Eina_Bool
-_gl_filter_displace(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gl_filter_displace(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    Evas_Engine_GL_Context *gc;
    Evas_GL_Image *image, *surface, *orig_map, *use_map;
@@ -30,8 +30,7 @@ _gl_filter_displace(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
    DBG("displace %d @%p map %d %p -> %d @%p", cmd->input->id, cmd->input->buffer,
        cmd->mask->id, cmd->mask->buffer, cmd->output->id, cmd->output->buffer);
 
-   re->window_use(re->software.ob);
-   gc = re->window_gl_context_get(re->software.ob);
+   gc = gl_generic_context_find(re, 1);
    evas_gl_common_context_target_surface_set(gc, surface);
 
    dc_save = gc->dc;
@@ -75,7 +74,7 @@ _gl_filter_displace(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 }
 
 GL_Filter_Apply_Func
-gl_filter_displace_func_get(Render_Output_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
+gl_filter_displace_func_get(Render_Engine_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->input, NULL);
index 0496eb5..d346656 100644 (file)
@@ -1,7 +1,7 @@
 #include "gl_engine_filter.h"
 
 static Eina_Bool
-_gl_filter_fill(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gl_filter_fill(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    Evas_Filter_Buffer *fb = cmd->output;
    Evas_Engine_GL_Context *gc;
@@ -39,8 +39,7 @@ _gl_filter_fill(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
        cmd->draw.R, cmd->draw.G, cmd->draw.B, cmd->draw.A, x, y, w, h,
        fb->id, fb->buffer);
 
-   re->window_use(re->software.ob);
-   gc = re->window_gl_context_get(re->software.ob);
+   gc = gl_generic_context_find(re, 1);
    evas_gl_common_context_target_surface_set(gc, surface);
 
    dc_save = gc->dc;
@@ -63,7 +62,7 @@ _gl_filter_fill(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 }
 
 GL_Filter_Apply_Func
-gl_filter_fill_func_get(Render_Output_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
+gl_filter_fill_func_get(Render_Engine_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->output, NULL);
index 6c146bf..39e0bc7 100644 (file)
@@ -1,7 +1,7 @@
 #include "gl_engine_filter.h"
 
 static Eina_Bool
-_gl_filter_mask(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
+_gl_filter_mask(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
 {
    Evas_Engine_GL_Context *gc;
    Evas_GL_Image *image, *surface, *orig_mask, *use_mask = NULL;
@@ -25,8 +25,7 @@ _gl_filter_mask(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
    DBG("mask %d @%p + %d %p -> %d @%p", cmd->input->id, cmd->input->buffer,
        cmd->mask->id, cmd->mask->buffer, cmd->output->id, cmd->output->buffer);
 
-   re->window_use(re->software.ob);
-   gc = re->window_gl_context_get(re->software.ob);
+   gc = gl_generic_context_find(re, 1);
    evas_gl_common_context_target_surface_set(gc, surface);
 
    dc_save = gc->dc;
@@ -68,7 +67,7 @@ _gl_filter_mask(Render_Output_GL_Generic *re, Evas_Filter_Command *cmd)
 }
 
 GL_Filter_Apply_Func
-gl_filter_mask_func_get(Render_Output_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
+gl_filter_mask_func_get(Render_Engine_GL_Generic *re EINA_UNUSED, Evas_Filter_Command *cmd)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
    EINA_SAFETY_ON_NULL_RETURN_VAL(cmd->input, NULL);