From f017dd3037efa24eb65a32fc16fe3de628ca9493 Mon Sep 17 00:00:00 2001 From: Rodney Date: Apr 18 2023 00:14:04 +0000 Subject: Merge pull request #4836 from justburner/T2DPort1156 Fix Smart Raster Brush Lock Alpha Tone --- diff --git a/toonz/sources/tnztools/bluredbrush.cpp b/toonz/sources/tnztools/bluredbrush.cpp index ff463e3..44f5214 100644 --- a/toonz/sources/tnztools/bluredbrush.cpp +++ b/toonz/sources/tnztools/bluredbrush.cpp @@ -51,10 +51,12 @@ void putOnRasterCM(const TRasterCM32P &out, const TRaster32P &in, int styleId, continue; } bool sameStyleId = styleId == outPix->getInk(); + // line with lock alpha : use original pixel's tone // line with the same style : multiply tones // line with different style : pick darker tone - int tone = sameStyleId ? outPix->getTone() * (255 - inPix->m) / 255 - : std::min(255 - inPix->m, outPix->getTone()); + int tone = lockAlpha ? outPix->getTone() + : sameStyleId ? outPix->getTone() * (255 - inPix->m) / 255 + : std::min(255 - inPix->m, outPix->getTone()); int ink = !sameStyleId && outPix->getTone() < 255 - inPix->m ? outPix->getInk() : styleId; diff --git a/toonz/sources/tnztools/mypainttoonzbrush.cpp b/toonz/sources/tnztools/mypainttoonzbrush.cpp index deb9b04..cbf0728 100644 --- a/toonz/sources/tnztools/mypainttoonzbrush.cpp +++ b/toonz/sources/tnztools/mypainttoonzbrush.cpp @@ -32,10 +32,12 @@ void putOnRasterCM(const TRasterCM32P &out, const TRaster32P &in, int styleId, continue; } bool sameStyleId = styleId == outPix->getInk(); + // line with lock alpha : use original pixel's tone // line with the same style : multiply tones // line with different style : pick darker tone - int tone = sameStyleId ? outPix->getTone() * (255 - inPix->m) / 255 - : std::min(255 - inPix->m, outPix->getTone()); + int tone = lockAlpha ? outPix->getTone() + : sameStyleId ? outPix->getTone() * (255 - inPix->m) / 255 + : std::min(255 - inPix->m, outPix->getTone()); int ink = !sameStyleId && outPix->getTone() < 255 - inPix->m ? outPix->getInk() : styleId; diff --git a/toonz/sources/toonzlib/rasterstrokegenerator.cpp b/toonz/sources/toonzlib/rasterstrokegenerator.cpp index cb9edf8..aaec5af 100644 --- a/toonz/sources/toonzlib/rasterstrokegenerator.cpp +++ b/toonz/sources/toonzlib/rasterstrokegenerator.cpp @@ -215,7 +215,8 @@ void RasterStrokeGenerator::placeOver(const TRasterCM32P &out, } } if (inTone <= outTone) { - *outPix = TPixelCM32(inPix->getInk(), outPix->getPaint(), inTone); + *outPix = TPixelCM32(inPix->getInk(), outPix->getPaint(), + m_modifierLockAlpha ? outTone : inTone); } } if (m_task == ERASE) {