5 #ifndef MARBLE_BLENDING_ALGORITHMS_H
6 #define MARBLE_BLENDING_ALGORITHMS_H
15 class OverpaintBlending:
public Blending
18 void blend(
QImage *
const bottom, TextureTile
const *
const top )
const override;
21 class IndependentChannelBlending:
public Blending
24 void blend(
QImage *
const bottom, TextureTile
const *
const top )
const override;
30 virtual qreal blendChannel( qreal
const bottomColorIntensity,
31 qreal
const topColorIntensity )
const = 0;
37 class AllanonBlending:
public IndependentChannelBlending
39 qreal blendChannel( qreal
const bottomColorIntensity,
40 qreal
const topColorIntensity )
const override;
43 class ArcusTangentBlending:
public IndependentChannelBlending
45 qreal blendChannel( qreal
const bottomColorIntensity,
46 qreal
const topColorIntensity )
const override;
49 class GeometricMeanBlending:
public IndependentChannelBlending
51 qreal blendChannel( qreal
const bottomColorIntensity,
52 qreal
const topColorIntensity )
const override;
55 class LinearLightBlending:
public IndependentChannelBlending
57 qreal blendChannel( qreal
const bottomColorIntensity,
58 qreal
const topColorIntensity )
const override;
61 class NoiseBlending:
public Blending
65 class OverlayBlending:
public IndependentChannelBlending
67 qreal blendChannel( qreal
const bottomColorIntensity,
68 qreal
const topColorIntensity )
const override;
71 class ParallelBlending:
public IndependentChannelBlending
73 qreal blendChannel( qreal
const bottomColorIntensity,
74 qreal
const topColorIntensity )
const override;
77 class TextureBlending:
public IndependentChannelBlending
79 qreal blendChannel( qreal
const bottomColorIntensity,
80 qreal
const topColorIntensity )
const override;
86 class ColorBurnBlending:
public IndependentChannelBlending
88 qreal blendChannel( qreal
const bottomColorIntensity,
89 qreal
const topColorIntensity )
const override;
92 class DarkBlending:
public IndependentChannelBlending
94 qreal blendChannel( qreal
const bottomColorIntensity,
95 qreal
const topColorIntensity )
const override;
98 class DarkenBlending:
public IndependentChannelBlending
100 qreal blendChannel( qreal
const bottomColorIntensity,
101 qreal
const topColorIntensity )
const override;
104 class DivideBlending:
public IndependentChannelBlending
106 qreal blendChannel( qreal
const bottomColorIntensity,
107 qreal
const topColorIntensity )
const override;
110 class GammaDarkBlending:
public IndependentChannelBlending
112 qreal blendChannel( qreal
const bottomColorIntensity,
113 qreal
const topColorIntensity )
const override;
116 class LinearBurnBlending:
public IndependentChannelBlending
118 qreal blendChannel( qreal
const bottomColorIntensity,
119 qreal
const topColorIntensity )
const override;
122 class MultiplyBlending:
public IndependentChannelBlending
124 qreal blendChannel( qreal
const bottomColorIntensity,
125 qreal
const topColorIntensity )
const override;
128 class SubtractiveBlending:
public IndependentChannelBlending
130 qreal blendChannel( qreal
const bottomColorIntensity,
131 qreal
const topColorIntensity )
const override;
137 class AdditiveBlending:
public IndependentChannelBlending
139 qreal blendChannel( qreal
const bottomColorIntensity,
140 qreal
const topColorIntensity )
const override;
143 class ColorDodgeBlending:
public IndependentChannelBlending
145 qreal blendChannel( qreal
const bottomColorIntensity,
146 qreal
const topColorIntensity )
const override;
149 class GammaLightBlending:
public IndependentChannelBlending
151 qreal blendChannel( qreal
const bottomColorIntensity,
152 qreal
const topColorIntensity )
const override;
155 class HardLightBlending:
public IndependentChannelBlending
157 qreal blendChannel( qreal
const bottomColorIntensity,
158 qreal
const topColorIntensity )
const override;
161 class LightBlending:
public IndependentChannelBlending
163 qreal blendChannel( qreal
const bottomColorIntensity,
164 qreal
const topColorIntensity )
const override;
167 class LightenBlending:
public IndependentChannelBlending
169 qreal blendChannel( qreal
const bottomColorIntensity,
170 qreal
const topColorIntensity )
const override;
173 class PinLightBlending:
public IndependentChannelBlending
175 qreal blendChannel( qreal
const bottomColorIntensity,
176 qreal
const topColorIntensity )
const override;
179 class ScreenBlending:
public IndependentChannelBlending
181 qreal blendChannel( qreal
const bottomColorIntensity,
182 qreal
const topColorIntensity )
const override;
185 class SoftLightBlending:
public IndependentChannelBlending
187 qreal blendChannel( qreal
const bottomColorIntensity,
188 qreal
const topColorIntensity )
const override;
191 class VividLightBlending:
public IndependentChannelBlending
193 qreal blendChannel( qreal
const bottomColorIntensity,
194 qreal
const topColorIntensity )
const override;
200 class AdditiveSubtractiveBlending:
public IndependentChannelBlending
202 qreal blendChannel( qreal
const bottomColorIntensity,
203 qreal
const topColorIntensity )
const override;
206 class BleachBlending:
public IndependentChannelBlending
208 qreal blendChannel( qreal
const bottomColorIntensity,
209 qreal
const topColorIntensity )
const override;
212 class DifferenceBlending:
public IndependentChannelBlending
214 qreal blendChannel( qreal
const bottomColorIntensity,
215 qreal
const topColorIntensity )
const override;
218 class EquivalenceBlending:
public IndependentChannelBlending
220 qreal blendChannel( qreal
const bottomColorIntensity,
221 qreal
const topColorIntensity )
const override;
224 class HalfDifferenceBlending:
public IndependentChannelBlending
226 qreal blendChannel( qreal
const bottomColorIntensity,
227 qreal
const topColorIntensity )
const override;
233 class CloudsBlending:
public Blending
236 void blend(
QImage *
const bottom, TextureTile
const *
const top )
const override;
239 class GrayscaleBlending:
public Blending
242 void blend(
QImage *
const bottom, TextureTile
const *
const top )
const override;
245 class InvertColorBlending:
public Blending
248 void blend(
QImage *
const bottom, TextureTile
const *
const top )
const override;
251 class InvertHueBlending:
public Blending
254 void blend(
QImage *
const bottom, TextureTile
const *
const top )
const override;