mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 13:43:43 +00:00
renderer: hotfix a crash
prevent a nullptr memory access
regression by f5337015e9
issue: https://github.com/godotengine/godot/issues/97078
This commit is contained in:
parent
a633322b8b
commit
5fc52ea6b0
2 changed files with 4 additions and 4 deletions
|
@ -202,7 +202,6 @@ void GlRenderer::drawPrimitive(GlShape& sdata, uint8_t r, uint8_t g, uint8_t b,
|
||||||
|
|
||||||
void GlRenderer::drawPrimitive(GlShape& sdata, const Fill* fill, RenderUpdateFlag flag, int32_t depth)
|
void GlRenderer::drawPrimitive(GlShape& sdata, const Fill* fill, RenderUpdateFlag flag, int32_t depth)
|
||||||
{
|
{
|
||||||
|
|
||||||
const auto& vp = currentPass()->getViewport();
|
const auto& vp = currentPass()->getViewport();
|
||||||
auto bbox = sdata.geometry->getViewport();
|
auto bbox = sdata.geometry->getViewport();
|
||||||
|
|
||||||
|
@ -1006,7 +1005,6 @@ bool GlRenderer::renderImage(void* data)
|
||||||
bool GlRenderer::renderShape(RenderData data)
|
bool GlRenderer::renderShape(RenderData data)
|
||||||
{
|
{
|
||||||
auto sdata = static_cast<GlShape*>(data);
|
auto sdata = static_cast<GlShape*>(data);
|
||||||
if (!sdata) return false;
|
|
||||||
|
|
||||||
if (currentPass()->isEmpty()) return true;
|
if (currentPass()->isEmpty()) return true;
|
||||||
|
|
||||||
|
|
|
@ -51,8 +51,9 @@ struct Shape::Impl
|
||||||
|
|
||||||
bool render(RenderMethod* renderer)
|
bool render(RenderMethod* renderer)
|
||||||
{
|
{
|
||||||
|
if (!rd) return false;
|
||||||
|
|
||||||
Compositor* cmp = nullptr;
|
Compositor* cmp = nullptr;
|
||||||
bool ret;
|
|
||||||
|
|
||||||
renderer->blend(shape->blend());
|
renderer->blend(shape->blend());
|
||||||
|
|
||||||
|
@ -61,7 +62,7 @@ struct Shape::Impl
|
||||||
renderer->beginComposite(cmp, CompositeMethod::None, opacity);
|
renderer->beginComposite(cmp, CompositeMethod::None, opacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = renderer->renderShape(rd);
|
auto ret = renderer->renderShape(rd);
|
||||||
if (cmp) renderer->endComposite(cmp);
|
if (cmp) renderer->endComposite(cmp);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -117,6 +118,7 @@ struct Shape::Impl
|
||||||
|
|
||||||
RenderRegion bounds(RenderMethod* renderer)
|
RenderRegion bounds(RenderMethod* renderer)
|
||||||
{
|
{
|
||||||
|
if (!rd) return {0, 0, 0, 0};
|
||||||
return renderer->region(rd);
|
return renderer->region(rd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue