Efl.Canvas.Group: make mask filter work on GL engine

Summary:
The _gl_filter_mask defines value of gc->dc->clip.mask, and make_color but
those are not used at all, because the evas_gl_common_Filter_blend_push calls
evas_gl_common_context_image_push which doesn't care of those values.

So this patch is using evas_gl_common_image_draw to use mask and mask_color.

Test Plan:
[Filter Program]
efl_gfx_filter_program_set(text,
     "buffer:a(alpha); buffer:fat(alpha); buffer:rgbfat(rgba);
      curve (0:255-255:0, dst = a); blend (a, color = #00ca00ff);
      grow (1, dst = fat); blur (3, src = fat, color=#0000b9ff, ox = -2, oy = -2, dst = rgbfat);
      mask (a, src = rgbfat);padding_set(t=5);",
     "name");

[Before]
{F3835430}

[After]
{F3835431}

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11139
This commit is contained in:
Shinwoo Kim 2020-01-31 18:31:08 +09:00 committed by Hermet Park
parent 33bf1036e9
commit 1dc6ccfba0
1 changed files with 2 additions and 2 deletions

View File

@ -50,8 +50,8 @@ _gl_filter_mask(Render_Engine_GL_Generic *re, Evas_Filter_Command *cmd)
gc->dc->clip.mask_x = x;
gc->dc->clip.mask_y = y;
evas_gl_common_filter_blend_push(gc, image->tex, x, y, sw, sh, x, y, sw, sh,
cmd->draw.alphaonly);
evas_gl_common_image_draw(gc, image, x, y, sw, sh,
x, y, sw, sh, EINA_TRUE);
}
evas_gl_common_image_free(use_mask);