• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • krita API Reference
  • KDE Home
  • Contact Us
 

plugins/paintops/libpaintop

  • sources
  • kfour-appscomplete
  • krita
  • plugins
  • paintops
  • libpaintop
kis_pressure_darken_option.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2  * Copyright (C) Boudewijn Rempt <[email protected]>, (C) 2008
3  *
4  * SPDX-License-Identifier: LGPL-2.0-or-later
5  */
6 #include "kis_pressure_darken_option.h"
7 #include <klocalizedstring.h>
8 #include <kis_painter.h>
9 #include <KoColor.h>
10 #include <KoColorSpace.h>
11 #include "kis_color_source.h"
12 #include <kis_paint_device.h>
13 
14 KisPressureDarkenOption::KisPressureDarkenOption()
15  : KisCurveOption("Darken", KisPaintOpOption::COLOR, false)
16 {
17 }
18 
19 
20 KoColor KisPressureDarkenOption::apply(KisPainter * painter, const KisPaintInformation& info) const
21 {
22  if (!isChecked()) {
23  return painter->paintColor();
24  }
25 
26  KoColor darkened = painter->paintColor();
27  KoColor origColor = darkened;
28 
29  // Darken docs aren't really clear about what exactly the amount param can have as value...
30  quint32 darkenAmount = (qint32)(255 - 255 * computeSizeLikeValue(info));
31 
32  KoColorTransformation* darkenTransformation = darkened.colorSpace()->createDarkenAdjustment(darkenAmount, false, 0.0);
33  if (!darkenTransformation) return origColor;
34  darkenTransformation ->transform(painter->paintColor().data(), darkened.data(), 1);
35  painter->setPaintColor(darkened);
36  delete darkenTransformation;
37 
38  return origColor;
39 }
40 
41 void KisPressureDarkenOption::apply(KisColorSource* colorSource, const KisPaintInformation& info) const
42 {
43  if (!isChecked()) return;
44 
45  // Darken docs aren't really clear about what exactly the amount param can have as value...
46  quint32 darkenAmount = (qint32)(255 - 255 * computeSizeLikeValue(info));
47 
48  KoColorTransformation* darkenTransformation = colorSource->colorSpace()->createDarkenAdjustment(darkenAmount, false, 0.0);
49  if (!darkenTransformation) return;
50  colorSource->applyColorTransformation(darkenTransformation);
51 
52  delete darkenTransformation;
53 }
KisCurveOption
KisCurveOption is the base class for paintop options that are defined through one or more curves.
Definition: kis_curve_option.h:34
KisPressureDarkenOption::apply
KoColor apply(KisPainter *painter, const KisPaintInformation &info) const
Definition: kis_pressure_darken_option.cpp:20
KisPressureDarkenOption::KisPressureDarkenOption
KisPressureDarkenOption()
Definition: kis_pressure_darken_option.cpp:14
kis_pressure_darken_option.h
KisColorSource
A color source allow to abstract how a brush is colorized, and to apply transformation.
Definition: kis_color_source.h:29
kis_color_source.h
KisColorSource::colorSpace
virtual const KoColorSpace * colorSpace() const =0
KisCurveOption::computeSizeLikeValue
qreal computeSizeLikeValue(const KisPaintInformation &info) const
Definition: kis_curve_option.cpp:461
KisColorSource::applyColorTransformation
virtual void applyColorTransformation(const KoColorTransformation *transfo)=0
Apply a color transformation on the selected color.
KisCurveOption::isChecked
bool isChecked() const
Definition: kis_curve_option.cpp:319
KisPaintOpOption
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Wed Jan 20 2021 23:47:25 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

plugins/paintops/libpaintop

Skip menu "plugins/paintops/libpaintop"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

krita API Reference

Skip menu "krita API Reference"
  • libs
  •   KritaBasicFlakes
  •   brush
  •   KritaUndo2
  •   KritaFlake
  •   image
  •   KritaPlugin
  •   Krita
  •   KritaPigment
  •   KritaResources
  •   KritaStore
  •   ui
  •   KritaWidgets
  •   KritaWidgetUtils
  • plugins
  •   Assitants
  •   Extensions
  •   Filters
  •   Generators
  •   Formats
  •           src
  •   PaintOps
  •     libpaintop

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal