mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 05:33:36 +00:00
gl_engine: introduce the stroke clipper
See Clipping example Issue: https://github.com/thorvg/thorvg/issues/3063
This commit is contained in:
parent
3c836b1b2a
commit
b43177639c
1 changed files with 3 additions and 2 deletions
|
@ -477,7 +477,8 @@ void GlRenderer::drawClip(Array<RenderData>& clips)
|
||||||
|
|
||||||
clipTask->setDrawDepth(clipDepths[i]);
|
clipTask->setDrawDepth(clipDepths[i]);
|
||||||
|
|
||||||
sdata->geometry.draw(clipTask, &mGpuBuffer, RenderUpdateFlag::Path);
|
auto flag = (sdata->geometry.stroke.vertex.count > 0) ? RenderUpdateFlag::Stroke : RenderUpdateFlag::Path;
|
||||||
|
sdata->geometry.draw(clipTask, &mGpuBuffer, flag);
|
||||||
|
|
||||||
auto bbox = sdata->geometry.viewport;
|
auto bbox = sdata->geometry.viewport;
|
||||||
|
|
||||||
|
@ -1226,7 +1227,7 @@ RenderData GlRenderer::prepare(const RenderShape& rshape, RenderData data, const
|
||||||
}
|
}
|
||||||
|
|
||||||
if (clipper) {
|
if (clipper) {
|
||||||
sdata->updateFlag = RenderUpdateFlag::Path;
|
sdata->updateFlag = (rshape.stroke && (rshape.stroke->width > 0)) ? RenderUpdateFlag::Stroke : RenderUpdateFlag::Path;
|
||||||
} else {
|
} else {
|
||||||
if (alphaF) sdata->updateFlag = static_cast<RenderUpdateFlag>(RenderUpdateFlag::Color | sdata->updateFlag);
|
if (alphaF) sdata->updateFlag = static_cast<RenderUpdateFlag>(RenderUpdateFlag::Color | sdata->updateFlag);
|
||||||
if (rshape.fill) sdata->updateFlag = static_cast<RenderUpdateFlag>(RenderUpdateFlag::Gradient | sdata->updateFlag);
|
if (rshape.fill) sdata->updateFlag = static_cast<RenderUpdateFlag>(RenderUpdateFlag::Gradient | sdata->updateFlag);
|
||||||
|
|
Loading…
Add table
Reference in a new issue