Eina_Bool blend,
Eina_Bool smooth,
Eina_Bool clip,
- int cx, int cy, int cw, int ch)
+ int cx, int cy, int cw, int ch,
+ Eina_Bool mask_smooth)
{
GLuint current_tex = 0;
int pn = 0;
{
if ((gc->pipe[i].region.type == rtype)
&& (!tex || gc->pipe[i].shader.cur_tex == current_tex)
- && (!texm || gc->pipe[i].shader.cur_texm == texm->pt->texture)
+ && (!texm || ((gc->pipe[i].shader.cur_texm == texm->pt->texture)
+ && (gc->pipe[i].shader.mask_smooth == mask_smooth)))
&& (gc->pipe[i].shader.cur_prog == prog)
&& (gc->pipe[i].shader.smooth == smooth)
&& (gc->pipe[i].shader.blend == blend)
#else
if (!((gc->pipe[pn].region.type == rtype)
&& (!tex || gc->pipe[pn].shader.cur_tex == current_tex)
- && (!texa || gc->pipe[pn].shader.cur_texa == current_texa)
- && (!texm || gc->pipe[pn].shader.cur_texm == current_texm)
+ /* && (!texa || gc->pipe[pn].shader.cur_texa == current_texa) */
+ && (!texm || ((gc->pipe[i].shader.cur_texm == texm->pt->texture)
+ && (gc->pipe[i].shader.mask_smooth == mask_smooth)))
&& (gc->pipe[pn].shader.cur_prog == prog)
&& (gc->pipe[pn].shader.smooth == smooth)
&& (gc->pipe[pn].shader.blend == blend)
gc->pipe[pn].shader.cur_prog = prog;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texa = 0;
gc->pipe[pn].array.use_texsam = 0;
gc->pipe[pn].array.use_texm = !!mtex;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
}
else
{
&& (gc->pipe[i].shader.blend == blend)
&& (gc->pipe[i].shader.render_op == gc->dc->render_op)
&& (gc->pipe[i].shader.clip == 0)
- // todo: save & compare mask_smooth
+ && (gc->pipe[i].shader.mask_smooth == mask_smooth)
)
{
found = 1;
gc->pipe[pn].shader.cur_prog = prog;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texa = 0;
gc->pipe[pn].array.use_texsam = 0;
gc->pipe[pn].array.use_texm = !!mtex;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
}
}
#else
|| (gc->pipe[pn].shader.blend != blend)
|| (gc->pipe[pn].shader.render_op != gc->dc->render_op)
|| (gc->pipe[pn].shader.clip != 0)
+ || (mtex && (gc->pipe[pn].shader.mask_smooth != mask_smooth))
)
{
shader_array_flush(gc);
gc->pipe[pn].shader.cur_prog = prog;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texa = 0;
gc->pipe[pn].array.use_texsam = 0;
gc->pipe[pn].array.use_texm = !!mtex;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
#endif
pipe_region_expand(gc, pn, x, y, w, h);
x, y, w, h,
blend,
smooth,
- 0, 0, 0, 0, 0);
+ 0, 0, 0, 0, 0,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_IMAGE;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.cur_texm = mtex ? mtex->pt->texture : 0;
gc->pipe[pn].shader.cur_prog = prog;
gc->pipe[pn].shader.smooth = smooth;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = render_op;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].array.use_texuv3 = 0;
gc->pipe[pn].array.use_texm = !!mtex;
gc->pipe[pn].array.use_texsam = sam;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
x, y, w, h,
1,
0,
- 0, 0, 0, 0, 0);
+ 0, 0, 0, 0, 0,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_FONT;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.smooth = 0;
gc->pipe[pn].shader.blend = 1;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texuv3 = 0;
gc->pipe[pn].array.use_texm = !!mtex;
gc->pipe[pn].array.use_texsam = 0;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
x, y, w, h,
blend,
smooth,
- 0, 0, 0, 0, 0);
+ 0, 0, 0, 0, 0,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_YUV;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.smooth = smooth;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texuv3 = 1;
gc->pipe[pn].array.use_texm = !!mtex;
gc->pipe[pn].array.use_texsam = 0;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
x, y, w, h,
blend,
smooth,
- 0, 0, 0, 0, 0);
+ 0, 0, 0, 0, 0,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_YUY2;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.smooth = smooth;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texuv3 = 0;
gc->pipe[pn].array.use_texm = !!mtex;
gc->pipe[pn].array.use_texsam = 0;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
x, y, w, h,
blend,
smooth,
- 0, 0, 0, 0, 0);
+ 0, 0, 0, 0, 0,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_NV12;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.smooth = smooth;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texuv3 = 0;
gc->pipe[pn].array.use_texm = !!mtex;
gc->pipe[pn].array.use_texsam = 0;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
x, y, w, h,
EINA_TRUE,
smooth,
- EINA_FALSE, 0, 0, 0, 0);
+ EINA_FALSE, 0, 0, 0, 0,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_IMAGE;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.smooth = smooth;
gc->pipe[pn].shader.blend = EINA_TRUE;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = 0;
gc->pipe[pn].shader.cx = 0;
gc->pipe[pn].shader.cy = 0;
gc->pipe[pn].array.use_texa = EINA_TRUE;
gc->pipe[pn].array.use_texsam = 0;
gc->pipe[pn].array.use_texm = !!mtex;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
x, y, w, h,
blend,
smooth,
- clip, cx, cy, cw, ch);
+ clip, cx, cy, cw, ch,
+ mask_smooth);
gc->pipe[pn].region.type = RTYPE_MAP;
gc->pipe[pn].shader.id = shader;
gc->pipe[pn].shader.cur_tex = tex->pt->texture;
gc->pipe[pn].shader.smooth = smooth;
gc->pipe[pn].shader.blend = blend;
gc->pipe[pn].shader.render_op = gc->dc->render_op;
+ gc->pipe[pn].shader.mask_smooth = mask_smooth;
gc->pipe[pn].shader.clip = clip;
gc->pipe[pn].shader.cx = cx;
gc->pipe[pn].shader.cy = cy;
gc->pipe[pn].array.use_texm = !!mtex;
gc->pipe[pn].array.use_texa = !!mtex;
gc->pipe[pn].array.use_texsam = gc->pipe[pn].array.use_texm;
- gc->pipe[pn].array.mask_smooth = mask_smooth;
pipe_region_expand(gc, pn, x, y, w, h);
PIPE_GROW(gc, pn, 6);
if (shared->info.anisotropic > 0.0)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, shared->info.anisotropic);
#endif
- if (gc->pipe[i].array.mask_smooth)
+ if (gc->pipe[i].shader.mask_smooth)
{
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
gc->pipe[i].array.use_texa = 0;
gc->pipe[i].array.use_texsam = 0;
gc->pipe[i].array.use_texm = 0;
- gc->pipe[i].array.mask_smooth = 0;
gc->pipe[i].array.vertex = NULL;
gc->pipe[i].array.color = NULL;