renderer: minor code clean++

This commit is contained in:
Hermet Park 2025-01-15 11:52:55 +09:00 committed by Hermet Park
parent 1c3b958d5b
commit 8f98681ea7
7 changed files with 11 additions and 20 deletions

View file

@ -1116,7 +1116,6 @@ bool GlRenderer::renderShape(RenderData data)
void GlRenderer::dispose(RenderData data) void GlRenderer::dispose(RenderData data)
{ {
auto sdata = static_cast<GlShape*>(data); auto sdata = static_cast<GlShape*>(data);
if (!sdata) return;
//dispose the non thread-safety resources on clearDisposes() call //dispose the non thread-safety resources on clearDisposes() call
if (sdata->texId) { if (sdata->texId) {

View file

@ -721,7 +721,6 @@ ColorSpace SwRenderer::colorSpace()
void SwRenderer::dispose(RenderData data) void SwRenderer::dispose(RenderData data)
{ {
auto task = static_cast<SwTask*>(data); auto task = static_cast<SwTask*>(data);
if (!task) return;
task->done(); task->done();
task->dispose(); task->dispose();

View file

@ -53,6 +53,8 @@ namespace tvg
Mask* maskData = nullptr; Mask* maskData = nullptr;
Paint* clipper = nullptr; Paint* clipper = nullptr;
RenderMethod* renderer = nullptr; RenderMethod* renderer = nullptr;
RenderData rd = nullptr;
struct { struct {
Matrix m; //input matrix Matrix m; //input matrix
Matrix cm; //multipled parents matrix Matrix cm; //multipled parents matrix
@ -91,8 +93,13 @@ namespace tvg
maskData->target->unref(); maskData->target->unref();
free(maskData); free(maskData);
} }
if (clipper) clipper->unref(); if (clipper) clipper->unref();
if (renderer && (renderer->unref() == 0)) delete(renderer);
if (renderer) {
if (rd) renderer->dispose(rd);
if (renderer->unref() == 0) delete(renderer);
}
} }
uint8_t ref() uint8_t ref()

View file

@ -60,7 +60,6 @@ struct Picture::Impl : Paint::Impl
ImageLoader* loader = nullptr; ImageLoader* loader = nullptr;
Paint* vector = nullptr; //vector picture uses Paint* vector = nullptr; //vector picture uses
RenderSurface* bitmap = nullptr; //bitmap picture uses RenderSurface* bitmap = nullptr; //bitmap picture uses
RenderData rd = nullptr;
float w = 0, h = 0; float w = 0, h = 0;
uint8_t compFlag = CompositionFlag::Invalid; uint8_t compFlag = CompositionFlag::Invalid;
bool resizing = false; bool resizing = false;
@ -72,7 +71,6 @@ struct Picture::Impl : Paint::Impl
~Impl() ~Impl()
{ {
LoaderMgr::retrieve(loader); LoaderMgr::retrieve(loader);
if (bitmap && renderer) renderer->dispose(rd);
delete(vector); delete(vector);
} }
@ -96,7 +94,7 @@ struct Picture::Impl : Paint::Impl
resizing = false; resizing = false;
} }
queryComposition(opacity); queryComposition(opacity);
rd = vector->pImpl->update(renderer, transform, clips, opacity, flag, false); return vector->pImpl->update(renderer, transform, clips, opacity, flag, false);
} }
return rd; return rd;
} }

View file

@ -62,7 +62,6 @@ struct SceneIterator : Iterator
struct Scene::Impl : Paint::Impl struct Scene::Impl : Paint::Impl
{ {
list<Paint*> paints; //children list list<Paint*> paints; //children list
RenderData rd = nullptr;
RenderRegion vport = {0, 0, INT32_MAX, INT32_MAX}; RenderRegion vport = {0, 0, INT32_MAX, INT32_MAX};
Array<RenderEffect*>* effects = nullptr; Array<RenderEffect*>* effects = nullptr;
uint8_t compFlag = CompositionFlag::Invalid; uint8_t compFlag = CompositionFlag::Invalid;
@ -77,8 +76,6 @@ struct Scene::Impl : Paint::Impl
resetEffects(); resetEffects();
clearPaints(); clearPaints();
if (renderer) renderer->dispose(rd);
} }
uint8_t needComposition(uint8_t opacity) uint8_t needComposition(uint8_t opacity)

View file

@ -32,7 +32,6 @@
struct Shape::Impl : Paint::Impl struct Shape::Impl : Paint::Impl
{ {
RenderShape rs; RenderShape rs;
RenderData rd = nullptr;
uint8_t compFlag = CompositionFlag::Invalid; uint8_t compFlag = CompositionFlag::Invalid;
uint8_t opacity; //for composition uint8_t opacity; //for composition
@ -40,11 +39,6 @@ struct Shape::Impl : Paint::Impl
{ {
} }
~Impl()
{
if (renderer) renderer->dispose(rd);
}
bool render(RenderMethod* renderer) bool render(RenderMethod* renderer)
{ {
if (!rd) return false; if (!rd) return false;

View file

@ -188,11 +188,8 @@ bool WgRenderer::postRender()
void WgRenderer::dispose(RenderData data) { void WgRenderer::dispose(RenderData data) {
if (!mContext.queue) return; if (!mContext.queue) return;
auto renderData = (WgRenderDataPaint*)data; ScopedLock lock(mDisposeKey);
if (renderData) { mDisposeRenderDatas.push(data);
ScopedLock lock(mDisposeKey);
mDisposeRenderDatas.push(data);
}
} }