From 9e690895242eb71a60ecafecff99b4defcc903d0 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Mon, 5 Feb 2024 17:12:38 +0900 Subject: [PATCH] renderer/canvas: Optimize logic by removing paint verification. Allow direct updates to the paint object without prior validation. The verification process is deemed inefficient; users are expected to ensure the paint is updated using a canvas that contains it. This might break the backward compatibility. --- src/renderer/tvgCanvas.h | 11 +---------- test/testSwCanvasBase.cpp | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/renderer/tvgCanvas.h b/src/renderer/tvgCanvas.h index c12bb14a..9e7f9867 100644 --- a/src/renderer/tvgCanvas.h +++ b/src/renderer/tvgCanvas.h @@ -96,17 +96,8 @@ struct Canvas::Impl auto flag = RenderUpdateFlag::None; if (refresh || force) flag = RenderUpdateFlag::All; - //Update single paint node if (paint) { - //TODO: Leave this for backward compatibility. Remove this when 1.0 out. - for (auto paint2 : paints) { - if (paint2 == paint) { - paint->pImpl->update(renderer, nullptr, clips, 255, flag); - return Result::Success; - } - } - return Result::InvalidArguments; - //Update all retained paint nodes + paint->pImpl->update(renderer, nullptr, clips, 255, flag); } else { for (auto paint : paints) { paint->pImpl->update(renderer, nullptr, clips, 255, flag); diff --git a/test/testSwCanvasBase.cpp b/test/testSwCanvasBase.cpp index aa5691b5..252bf2a0 100644 --- a/test/testSwCanvasBase.cpp +++ b/test/testSwCanvasBase.cpp @@ -160,7 +160,7 @@ TEST_CASE("Update", "[tvgSwCanvasBase]") //No pushed shape auto shape = Shape::gen(); - REQUIRE(canvas->update(shape.get()) == Result::InvalidArguments); + REQUIRE(canvas->update(shape.get()) == Result::Success); //Normal case auto ptr = shape.get();