gl_engine: fix GradientStroke ignored by tessellator

Fix the GlRenderer not take GradientStroke into consider when prepare
Geometry vertices.
This commit is contained in:
RuiwenTang 2024-06-01 16:01:11 +08:00 committed by Hermet Park
parent 5b6a774b04
commit ceee253f4e
2 changed files with 5 additions and 5 deletions

View file

@ -45,7 +45,7 @@ bool GlGeometry::tesselate(const RenderShape& rshape, RenderUpdateFlag flag)
mBounds = bwTess.bounds(); mBounds = bwTess.bounds();
} }
if (flag & (RenderUpdateFlag::Stroke | RenderUpdateFlag::Transform)) { if (flag & (RenderUpdateFlag::Stroke | RenderUpdateFlag::GradientStroke | RenderUpdateFlag::Transform)) {
strokeVertex.clear(); strokeVertex.clear();
strokeIndex.clear(); strokeIndex.clear();

View file

@ -415,9 +415,9 @@ RenderData GlRenderer::prepare(const RenderShape& rshape, RenderData data, const
rshape.fillColor(nullptr, nullptr, nullptr, &alphaF); rshape.fillColor(nullptr, nullptr, nullptr, &alphaF);
rshape.strokeFill(nullptr, nullptr, nullptr, &alphaS); rshape.strokeFill(nullptr, nullptr, nullptr, &alphaS);
if ( ((sdata->updateFlag & RenderUpdateFlag::Gradient) == 0) && if ( ((flags & RenderUpdateFlag::Gradient) == 0) &&
((sdata->updateFlag & RenderUpdateFlag::Color) && alphaF == 0) && ((flags & RenderUpdateFlag::Color) && alphaF == 0) &&
((sdata->updateFlag & RenderUpdateFlag::Stroke) && alphaS == 0) ) ((flags & RenderUpdateFlag::Stroke) && alphaS == 0) )
{ {
return sdata; return sdata;
} }
@ -441,7 +441,7 @@ RenderData GlRenderer::prepare(const RenderShape& rshape, RenderData data, const
mViewport.h, mViewport.h,
}); });
if (sdata->updateFlag & (RenderUpdateFlag::Color | RenderUpdateFlag::Stroke | RenderUpdateFlag::Gradient | RenderUpdateFlag::Transform | RenderUpdateFlag::Path)) if (sdata->updateFlag & (RenderUpdateFlag::Color | RenderUpdateFlag::Stroke | RenderUpdateFlag::Gradient | RenderUpdateFlag::GradientStroke | RenderUpdateFlag::Transform | RenderUpdateFlag::Path))
{ {
if (!sdata->geometry->tesselate(rshape, sdata->updateFlag)) return sdata; if (!sdata->geometry->tesselate(rshape, sdata->updateFlag)) return sdata;
} }