[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra] krita/plugins/paintops/libpaintop: Fixed an assert in the cache when painting with variou
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2012-10-09 10:51:25
Message-ID: 20121009105125.8345BA605D () git ! kde ! org
[Download RAW message or body]

Git commit 8b0bf39d0e61249778884417bb89b3298612cae5 by Dmitry Kazakov.
Committed on 09/10/2012 at 12:50.
Pushed by dkazakov into branch 'master'.

Fixed an assert in the cache when painting with various color sources

M  +9    -7    krita/plugins/paintops/libpaintop/kis_dab_cache.cpp

http://commits.kde.org/calligra/8b0bf39d0e61249778884417bb89b3298612cae5

diff --git a/krita/plugins/paintops/libpaintop/kis_dab_cache.cpp \
b/krita/plugins/paintops/libpaintop/kis_dab_cache.cpp index 9106012..192fc9f 100644
--- a/krita/plugins/paintops/libpaintop/kis_dab_cache.cpp
+++ b/krita/plugins/paintops/libpaintop/kis_dab_cache.cpp
@@ -227,28 +227,29 @@ KisFixedPaintDeviceSP KisDabCache::fetchDabCommon(const \
KoColorSpace *cs,  }
     else {
         if (!colorSource) {
-            Q_ASSERT(*color.colorSpace() == *cs);
+            KoColor paintColor = color;
+            paintColor.convertTo(cs);
 
-            *m_cachedDabParameters = getDabParameters(color,
+            *m_cachedDabParameters = getDabParameters(paintColor,
                                                       scaleX, scaleY,
                                                       angle, info,
                                                       subPixelX, subPixelY,
                                                       softnessFactor);
 
-            m_brush->mask(m_dab, color, scaleX, scaleY, angle,
+            m_brush->mask(m_dab, paintColor, scaleX, scaleY, angle,
                           info, subPixelX, subPixelY, softnessFactor);
 
         } else if (colorSource->isUniformColor()) {
-            Q_ASSERT(*colorSource->colorSpace() == *cs);
-            KoColor color = colorSource->uniformColor();
+            KoColor paintColor = colorSource->uniformColor();
+            paintColor.convertTo(cs);
 
-            *m_cachedDabParameters = getDabParameters(color,
+            *m_cachedDabParameters = getDabParameters(paintColor,
                                                       scaleX, scaleY,
                                                       angle, info,
                                                       subPixelX, subPixelY,
                                                       softnessFactor);
 
-            m_brush->mask(m_dab, color, scaleX, scaleY, angle,
+            m_brush->mask(m_dab, paintColor, scaleX, scaleY, angle,
                           info, subPixelX, subPixelY, softnessFactor);
         } else {
             if (!m_colorSourceDevice || !(*cs == \
*m_colorSourceDevice->colorSpace())) { @@ -259,6 +260,7 @@ KisFixedPaintDeviceSP \
KisDabCache::fetchDabCommon(const KoColorSpace *cs,  
             QRect maskRect(0, 0, m_brush->maskWidth(scaleX, angle, info), \
                m_brush->maskHeight(scaleY, angle, info));
             colorSource->colorize(m_colorSourceDevice, maskRect, \
info.pos().toPoint()); +            delete m_colorSourceDevice->convertTo(cs);
 
             m_brush->mask(m_dab, m_colorSourceDevice, scaleX, scaleY, angle,
                           info, subPixelX, subPixelY, softnessFactor);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic