mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-20 06:52:03 +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)
|
RenderRegion GlRenderer::region(RenderData data)
|
||||||
{
|
{
|
||||||
if (currentPass()->isEmpty()) return {};
|
if (!data || currentPass()->isEmpty()) return {};
|
||||||
|
|
||||||
auto shape = reinterpret_cast<GlShape*>(data);
|
auto shape = reinterpret_cast<GlShape*>(data);
|
||||||
auto bounds = shape->geometry.getBounds();
|
auto bounds = shape->geometry.getBounds();
|
||||||
|
|
|
@ -50,7 +50,6 @@ struct SwTask : Task
|
||||||
|
|
||||||
const RenderRegion& bounds()
|
const RenderRegion& bounds()
|
||||||
{
|
{
|
||||||
//Can we skip the synchronization?
|
|
||||||
done();
|
done();
|
||||||
return bbox;
|
return bbox;
|
||||||
}
|
}
|
||||||
|
@ -488,7 +487,8 @@ bool SwRenderer::blend(BlendMethod method)
|
||||||
|
|
||||||
RenderRegion SwRenderer::region(RenderData data)
|
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)
|
uint8_t unrefx(bool free)
|
||||||
{
|
{
|
||||||
if (refCnt > 0) --refCnt;
|
if (refCnt > 0) --refCnt;
|
||||||
else TVGERR("RENDERER", "Corrupted Reference Count!");
|
|
||||||
|
|
||||||
if (free && refCnt == 0) {
|
if (free && refCnt == 0) {
|
||||||
delete(paint);
|
delete(paint);
|
||||||
|
|
|
@ -265,9 +265,8 @@ struct PictureImpl : Picture
|
||||||
|
|
||||||
RenderRegion bounds(RenderMethod* renderer)
|
RenderRegion bounds(RenderMethod* renderer)
|
||||||
{
|
{
|
||||||
if (impl.rd) return renderer->region(impl.rd);
|
|
||||||
if (vector) return vector->pImpl->bounds(renderer);
|
if (vector) return vector->pImpl->bounds(renderer);
|
||||||
return {};
|
return renderer->region(impl.rd);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result load(ImageLoader* loader)
|
Result load(ImageLoader* loader)
|
||||||
|
|
|
@ -115,7 +115,6 @@ struct ShapeImpl : Shape
|
||||||
|
|
||||||
RenderRegion bounds(RenderMethod* renderer)
|
RenderRegion bounds(RenderMethod* renderer)
|
||||||
{
|
{
|
||||||
if (!impl.rd) return {};
|
|
||||||
return renderer->region(impl.rd);
|
return renderer->region(impl.rd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -270,6 +270,7 @@ void WgRenderer::dispose(RenderData data) {
|
||||||
|
|
||||||
RenderRegion WgRenderer::region(RenderData data)
|
RenderRegion WgRenderer::region(RenderData data)
|
||||||
{
|
{
|
||||||
|
if (!data) return {};
|
||||||
auto renderData = (WgRenderDataPaint*)data;
|
auto renderData = (WgRenderDataPaint*)data;
|
||||||
if (renderData->type() == Type::Shape) {
|
if (renderData->type() == Type::Shape) {
|
||||||
auto& v1 = renderData->aabb.min;
|
auto& v1 = renderData->aabb.min;
|
||||||
|
|
Loading…
Add table
Reference in a new issue