Summary: | The image->monitor color conversion doesn't update with flag changes. | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | wolthera <griffinvalley> |
Component: | Color models | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | nightly build (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/-/commit/ab061b1135acf2cccf89e03ccc19057dfddba18b | Version Fixed In: | |
Sentry Crash Report: |
Description
wolthera
2024-11-17 17:41:27 UTC
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/2277 Git commit 26f30c8caec093ea11cce3c8c01ab7bab2c230e3 by Dmitry Kazakov. Committed on 20/11/2024 at 14:12. Pushed by dkazakov into branch 'master'. Fix display profile conversion flags to be updated on settigns change Basically, our display rendering code should manipulate **not** with the color profice, but with a triplet {profile, intent, flags}. And when comparing for the settings change we should check all the three, not just color profile. The patch implements KisDisplayConfig that abstracts this triplet. Now all display rendering code manipulates with KisDisplayConfig instead of a raw KoColorProfile. Think in the future: we might want to rename KisDisplayProfile into something like KoColorConvertionConfig and use it for color conversions like KoColorSpace::convertTo() instead of passing all three arguments manually. M +1 -0 libs/ui/CMakeLists.txt A +61 -0 libs/ui/KisDisplayConfig.cpp [License: GPL(v2.0+)] A +31 -0 libs/ui/KisDisplayConfig.h [License: GPL(v2.0+)] M +7 -14 libs/ui/canvas/kis_canvas2.cpp M +3 -4 libs/ui/canvas/kis_canvas2.h M +12 -32 libs/ui/canvas/kis_display_color_converter.cpp M +4 -5 libs/ui/canvas/kis_display_color_converter.h M +3 -2 libs/ui/canvas/kis_prescaled_projection.cpp M +2 -2 libs/ui/canvas/kis_prescaled_projection.h M +2 -3 libs/ui/canvas/kis_qpainter_canvas.cpp M +0 -1 libs/ui/kis_canvas_resource_provider.h M +6 -5 libs/ui/kis_clipboard.cc M +5 -3 libs/ui/kis_mimedata.cpp M +0 -1 libs/ui/kis_selection_decoration.h M +11 -6 libs/ui/opengl/KisOpenGLCanvasRenderer.cpp M +5 -12 libs/ui/tests/kis_prescaled_projection_test.cpp M +15 -14 libs/ui/widgets/kis_scratch_pad.cpp M +5 -2 libs/ui/widgets/kis_scratch_pad.h M +41 -10 libs/widgetutils/KisScreenMigrationTracker.cpp M +7 -0 libs/widgetutils/KisScreenMigrationTracker.h M +4 -8 plugins/dockers/channeldocker/ChannelDockerWidget.cpp M +3 -7 plugins/dockers/overview/overviewwidget.cc M +2 -1 plugins/dockers/smallcolorselector/kis_small_color_widget.cc https://invent.kde.org/graphics/krita/-/commit/26f30c8caec093ea11cce3c8c01ab7bab2c230e3 Git commit ab061b1135acf2cccf89e03ccc19057dfddba18b by Dmitry Kazakov. Committed on 20/11/2024 at 14:56. Pushed by dkazakov into branch 'krita/5.2'. Fix display profile conversion flags to be updated on settigns change Basically, our display rendering code should manipulate **not** with the color profice, but with a triplet {profile, intent, flags}. And when comparing for the settings change we should check all the three, not just color profile. The patch implements KisDisplayConfig that abstracts this triplet. Now all display rendering code manipulates with KisDisplayConfig instead of a raw KoColorProfile. Think in the future: we might want to rename KisDisplayProfile into something like KoColorConvertionConfig and use it for color conversions like KoColorSpace::convertTo() instead of passing all three arguments manually. M +1 -0 libs/ui/CMakeLists.txt A +61 -0 libs/ui/KisDisplayConfig.cpp [License: GPL(v2.0+)] A +31 -0 libs/ui/KisDisplayConfig.h [License: GPL(v2.0+)] M +7 -14 libs/ui/canvas/kis_canvas2.cpp M +3 -4 libs/ui/canvas/kis_canvas2.h M +12 -32 libs/ui/canvas/kis_display_color_converter.cpp M +4 -5 libs/ui/canvas/kis_display_color_converter.h M +3 -2 libs/ui/canvas/kis_prescaled_projection.cpp M +2 -2 libs/ui/canvas/kis_prescaled_projection.h M +2 -3 libs/ui/canvas/kis_qpainter_canvas.cpp M +0 -1 libs/ui/kis_canvas_resource_provider.h M +6 -5 libs/ui/kis_clipboard.cc M +5 -3 libs/ui/kis_mimedata.cpp M +0 -1 libs/ui/kis_selection_decoration.h M +11 -6 libs/ui/opengl/KisOpenGLCanvasRenderer.cpp M +5 -12 libs/ui/tests/kis_prescaled_projection_test.cpp M +15 -15 libs/ui/widgets/kis_scratch_pad.cpp M +5 -2 libs/ui/widgets/kis_scratch_pad.h M +41 -10 libs/widgetutils/KisScreenMigrationTracker.cpp M +7 -0 libs/widgetutils/KisScreenMigrationTracker.h M +4 -9 plugins/dockers/channeldocker/channeldocker_dock.cpp M +3 -7 plugins/dockers/overview/overviewwidget.cc M +2 -1 plugins/dockers/smallcolorselector/kis_small_color_widget.cc https://invent.kde.org/graphics/krita/-/commit/ab061b1135acf2cccf89e03ccc19057dfddba18b |