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

List:       kde-commits
Subject:    [calligra/krita-testing-kazakov] krita/ui/canvas: Fix default blue color appearing when OCIO is acti
From:       Dmitry Kazakov <dimula73 () gmail ! com>
Date:       2014-04-25 9:00:18
Message-ID: E1WdbzW-0000BI-7n () scm ! kde ! org
[Download RAW message or body]

Git commit 7e853fa8bceabc57675c33dedb048aa57419ca4c by Dmitry Kazakov.
Committed on 25/04/2014 at 09:00.
Pushed by dkazakov into branch 'krita-testing-kazakov'.

Fix default blue color appearing when OCIO is active

Intermediate FG Color should be initialized properly for not generating
stuff and setting real color to blue value.

M  +16   -5    krita/ui/canvas/kis_display_color_converter.cpp

http://commits.kde.org/calligra/7e853fa8bceabc57675c33dedb048aa57419ca4c

diff --git a/krita/ui/canvas/kis_display_color_converter.cpp \
b/krita/ui/canvas/kis_display_color_converter.cpp index 0f7acca..f110065 100644
--- a/krita/ui/canvas/kis_display_color_converter.cpp
+++ b/krita/ui/canvas/kis_display_color_converter.cpp
@@ -76,6 +76,7 @@ struct KisDisplayColorConverter::Private
     void slotUpdateCurrentNodeColorSpace();
     void selectPaintingColorSpace();
 
+    void updateIntermediateFgColor(const KoColor &color);
     void setCurrentNode(KisNodeSP node);
     bool useOcio() const;
 
@@ -130,16 +131,23 @@ bool KisDisplayColorConverter::Private::useOcio() const
     return displayFilter && paintingColorSpace->colorModelId() == RGBAColorModelID;
 }
 
+void KisDisplayColorConverter::Private::updateIntermediateFgColor(const KoColor \
&srcColor) +{
+    KIS_ASSERT_RECOVER_RETURN(displayFilter);
+
+    KoColor color = srcColor;
+    color.convertTo(intermediateColorSpace);
+    displayFilter->approximateForwardTransformation(color.data(), 1);
+    intermediateFgColor = color;
+}
+
 void KisDisplayColorConverter::Private::slotCanvasResourceChanged(int key, const \
QVariant &v)  {
     if (key == KisCanvasResourceProvider::CurrentKritaNode) {
         KisNodeSP currentNode = v.value<KisNodeSP>();
         setCurrentNode(currentNode);
     } else if (useOcio() && key == KoCanvasResourceManager::ForegroundColor) {
-        KoColor color = v.value<KoColor>();
-        color.convertTo(intermediateColorSpace);
-        displayFilter->approximateForwardTransformation(color.data(), 1);
-        intermediateFgColor = color;
+        updateIntermediateFgColor(v.value<KoColor>());
     }
 }
 
@@ -235,9 +243,12 @@ void \
KisDisplayColorConverter::setDisplayFilter(KisDisplayFilterSP displayFilter  \
                KoColorSpaceRegistry::instance()->
             colorSpace(RGBAColorModelID.id(), Float32BitsColorDepthID.id(), 0);
 
-        KIS_ASSERT_RECOVER(m_d->displayFilter) {
+        KIS_ASSERT_RECOVER(m_d->intermediateColorSpace) {
             m_d->intermediateColorSpace = m_d->monitorColorSpace;
         }
+
+        m_d->updateIntermediateFgColor(
+            m_d->parentCanvas->resourceManager()->foregroundColor());
     }
 
 


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

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