mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-19 14:31:39 +00:00
renderer: delegate the null data handling to engines
This commit is contained in:
parent
e96678df28
commit
033ec78e61
6 changed files with 5 additions and 7 deletions
|
@ -864,7 +864,7 @@ bool GlRenderer::sync()
|
|||
|
||||
RenderRegion GlRenderer::region(RenderData data)
|
||||
{
|
||||
if (currentPass()->isEmpty()) return {};
|
||||
if (!data || currentPass()->isEmpty()) return {};
|
||||
|
||||
auto shape = reinterpret_cast<GlShape*>(data);
|
||||
auto bounds = shape->geometry.getBounds();
|
||||
|
|
|
@ -50,7 +50,6 @@ struct SwTask : Task
|
|||
|
||||
const RenderRegion& bounds()
|
||||
{
|
||||
//Can we skip the synchronization?
|
||||
done();
|
||||
return bbox;
|
||||
}
|
||||
|
@ -488,7 +487,8 @@ bool SwRenderer::blend(BlendMethod method)
|
|||
|
||||
RenderRegion SwRenderer::region(RenderData data)
|
||||
{
|
||||
return static_cast<SwTask*>(data)->bounds();
|
||||
if (data) return static_cast<SwTask*>(data)->bounds();
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -120,7 +120,6 @@ namespace tvg
|
|||
uint8_t unrefx(bool free)
|
||||
{
|
||||
if (refCnt > 0) --refCnt;
|
||||
else TVGERR("RENDERER", "Corrupted Reference Count!");
|
||||
|
||||
if (free && refCnt == 0) {
|
||||
delete(paint);
|
||||
|
|
|
@ -265,9 +265,8 @@ struct PictureImpl : Picture
|
|||
|
||||
RenderRegion bounds(RenderMethod* renderer)
|
||||
{
|
||||
if (impl.rd) return renderer->region(impl.rd);
|
||||
if (vector) return vector->pImpl->bounds(renderer);
|
||||
return {};
|
||||
return renderer->region(impl.rd);
|
||||
}
|
||||
|
||||
Result load(ImageLoader* loader)
|
||||
|
|
|
@ -115,7 +115,6 @@ struct ShapeImpl : Shape
|
|||
|
||||
RenderRegion bounds(RenderMethod* renderer)
|
||||
{
|
||||
if (!impl.rd) return {};
|
||||
return renderer->region(impl.rd);
|
||||
}
|
||||
|
||||
|
|
|
@ -270,6 +270,7 @@ void WgRenderer::dispose(RenderData data) {
|
|||
|
||||
RenderRegion WgRenderer::region(RenderData data)
|
||||
{
|
||||
if (!data) return {};
|
||||
auto renderData = (WgRenderDataPaint*)data;
|
||||
if (renderData->type() == Type::Shape) {
|
||||
auto& v1 = renderData->aabb.min;
|
||||
|
|
Loading…
Add table
Reference in a new issue