From ceee253f4e116d63947de321ae75ea8634b13e56 Mon Sep 17 00:00:00 2001 From: RuiwenTang Date: Sat, 1 Jun 2024 16:01:11 +0800 Subject: [PATCH] gl_engine: fix GradientStroke ignored by tessellator Fix the GlRenderer not take GradientStroke into consider when prepare Geometry vertices. --- src/renderer/gl_engine/tvgGlGeometry.cpp | 2 +- src/renderer/gl_engine/tvgGlRenderer.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/renderer/gl_engine/tvgGlGeometry.cpp b/src/renderer/gl_engine/tvgGlGeometry.cpp index 13069df1..96d31f60 100644 --- a/src/renderer/gl_engine/tvgGlGeometry.cpp +++ b/src/renderer/gl_engine/tvgGlGeometry.cpp @@ -45,7 +45,7 @@ bool GlGeometry::tesselate(const RenderShape& rshape, RenderUpdateFlag flag) mBounds = bwTess.bounds(); } - if (flag & (RenderUpdateFlag::Stroke | RenderUpdateFlag::Transform)) { + if (flag & (RenderUpdateFlag::Stroke | RenderUpdateFlag::GradientStroke | RenderUpdateFlag::Transform)) { strokeVertex.clear(); strokeIndex.clear(); diff --git a/src/renderer/gl_engine/tvgGlRenderer.cpp b/src/renderer/gl_engine/tvgGlRenderer.cpp index 94fdb14c..ca944b57 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.cpp +++ b/src/renderer/gl_engine/tvgGlRenderer.cpp @@ -415,9 +415,9 @@ RenderData GlRenderer::prepare(const RenderShape& rshape, RenderData data, const rshape.fillColor(nullptr, nullptr, nullptr, &alphaF); rshape.strokeFill(nullptr, nullptr, nullptr, &alphaS); - if ( ((sdata->updateFlag & RenderUpdateFlag::Gradient) == 0) && - ((sdata->updateFlag & RenderUpdateFlag::Color) && alphaF == 0) && - ((sdata->updateFlag & RenderUpdateFlag::Stroke) && alphaS == 0) ) + if ( ((flags & RenderUpdateFlag::Gradient) == 0) && + ((flags & RenderUpdateFlag::Color) && alphaF == 0) && + ((flags & RenderUpdateFlag::Stroke) && alphaS == 0) ) { return sdata; } @@ -441,7 +441,7 @@ RenderData GlRenderer::prepare(const RenderShape& rshape, RenderData data, const 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; }