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 f14be7c33b
commit 1879a2ff0e
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

@ -421,9 +421,9 @@ RenderData GlRenderer::prepare(const RenderShape& rshape, RenderData data, const
rshape.fillColor(nullptr, nullptr, nullptr, &alphaF); rshape.fillColor(nullptr, nullptr, nullptr, &alphaF);
rshape.strokeColor(nullptr, nullptr, nullptr, &alphaS); rshape.strokeColor(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;
} }
@ -447,7 +447,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;
} }