From c8a8bb5af4efaa004bb04a960d9d82739a88dc40 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Fri, 27 Oct 2023 11:30:23 +0900 Subject: [PATCH] renderer/paint: added a blend update flag. Keep track of the update changes accurately. We can utilize this value change in the backend engine. --- src/renderer/tvgPaint.cpp | 5 ++++- src/renderer/tvgRender.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/renderer/tvgPaint.cpp b/src/renderer/tvgPaint.cpp index 5af63c6d..9b5e338a 100644 --- a/src/renderer/tvgPaint.cpp +++ b/src/renderer/tvgPaint.cpp @@ -457,7 +457,10 @@ uint32_t Paint::identifier() const noexcept Result Paint::blend(BlendMethod method) const noexcept { - pImpl->blendMethod = method; + if (pImpl->blendMethod != method) { + pImpl->blendMethod = method; + pImpl->renderFlag |= RenderUpdateFlag::Blend; + } return Result::Success; } diff --git a/src/renderer/tvgRender.h b/src/renderer/tvgRender.h index cd3f4f3f..6c0a7d5f 100644 --- a/src/renderer/tvgRender.h +++ b/src/renderer/tvgRender.h @@ -32,7 +32,7 @@ namespace tvg using RenderData = void*; using pixel_t = uint32_t; -enum RenderUpdateFlag : uint8_t {None = 0, Path = 1, Color = 2, Gradient = 4, Stroke = 8, Transform = 16, Image = 32, GradientStroke = 64, All = 255}; +enum RenderUpdateFlag : uint8_t {None = 0, Path = 1, Color = 2, Gradient = 4, Stroke = 8, Transform = 16, Image = 32, GradientStroke = 64, Blend = 128, All = 255}; struct Surface;