filters: Fix GL support aka. cedric's bork

This commit is contained in:
Jean-Philippe Andre 2017-09-05 16:29:01 +09:00
parent c0514d948a
commit 4b10cf2e40
9 changed files with 32 additions and 39 deletions

View 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!");

View 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);

View 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

View 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);

View 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);

View 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);

View 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);

View 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);

View 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);