LMMS
Loading...
Searching...
No Matches
juce_Colour.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
38{
39public:
40 //==============================================================================
42 Colour() = default;
43
45 Colour (const Colour&) = default;
46
57 explicit Colour (uint32 argb) noexcept;
58
61 uint8 green,
62 uint8 blue) noexcept;
63
65 static Colour fromRGB (uint8 red,
66 uint8 green,
67 uint8 blue) noexcept;
68
71 uint8 green,
72 uint8 blue,
73 uint8 alpha) noexcept;
74
76 static Colour fromRGBA (uint8 red,
77 uint8 green,
78 uint8 blue,
79 uint8 alpha) noexcept;
80
87 uint8 green,
88 uint8 blue,
89 float alpha) noexcept;
90
94 static Colour fromFloatRGBA (float red,
95 float green,
96 float blue,
97 float alpha) noexcept;
98
105 Colour (float hue,
106 float saturation,
107 float brightness,
108 uint8 alpha) noexcept;
109
115 Colour (float hue,
116 float saturation,
117 float brightness,
118 float alpha) noexcept;
119
125 static Colour fromHSV (float hue,
126 float saturation,
127 float brightness,
128 float alpha) noexcept;
129
135 static Colour fromHSL (float hue,
136 float saturation,
137 float lightness,
138 float alpha) noexcept;
139
143 Colour (PixelARGB argb) noexcept;
144
147 Colour (PixelRGB rgb) noexcept;
148
151 Colour (PixelAlpha alpha) noexcept;
152
154 ~Colour() = default;
155
157 Colour& operator= (const Colour&) = default;
158
160 bool operator== (const Colour& other) const noexcept;
162 bool operator!= (const Colour& other) const noexcept;
163
164 //==============================================================================
168 uint8 getRed() const noexcept { return argb.getRed(); }
169
173 uint8 getGreen() const noexcept { return argb.getGreen(); }
174
178 uint8 getBlue() const noexcept { return argb.getBlue(); }
179
183 float getFloatRed() const noexcept;
184
188 float getFloatGreen() const noexcept;
189
193 float getFloatBlue() const noexcept;
194
197 const PixelARGB getPixelARGB() const noexcept;
198
204 uint32 getARGB() const noexcept;
205
206 //==============================================================================
211 uint8 getAlpha() const noexcept { return argb.getAlpha(); }
212
217 float getFloatAlpha() const noexcept;
218
223 bool isOpaque() const noexcept;
224
229 bool isTransparent() const noexcept;
230
232 Colour withAlpha (uint8 newAlpha) const noexcept;
233
235 Colour withAlpha (float newAlpha) const noexcept;
236
240 Colour withMultipliedAlpha (float alphaMultiplier) const noexcept;
241
242 //==============================================================================
246 Colour overlaidWith (Colour foregroundColour) const noexcept;
247
252 Colour interpolatedWith (Colour other, float proportionOfOther) const noexcept;
253
254 //==============================================================================
258 float getHue() const noexcept;
259
263 float getSaturation() const noexcept;
264
268 float getSaturationHSL() const noexcept;
269
273 float getBrightness() const noexcept;
274
278 float getLightness() const noexcept;
279
284 float getPerceivedBrightness() const noexcept;
285
289 void getHSB (float& hue,
290 float& saturation,
291 float& brightness) const noexcept;
292
296 void getHSL (float& hue,
297 float& saturation,
298 float& lightness) const noexcept;
299
300 //==============================================================================
302 JUCE_NODISCARD Colour withHue (float newHue) const noexcept;
303
305 JUCE_NODISCARD Colour withSaturation (float newSaturation) const noexcept;
306
308 JUCE_NODISCARD Colour withSaturationHSL (float newSaturation) const noexcept;
309
313 JUCE_NODISCARD Colour withBrightness (float newBrightness) const noexcept;
314
318 JUCE_NODISCARD Colour withLightness (float newLightness) const noexcept;
319
324 JUCE_NODISCARD Colour withRotatedHue (float amountToRotate) const noexcept;
325
330 JUCE_NODISCARD Colour withMultipliedSaturation (float multiplier) const noexcept;
331
338 JUCE_NODISCARD Colour withMultipliedSaturationHSL (float multiplier) const noexcept;
339
344 JUCE_NODISCARD Colour withMultipliedBrightness (float amount) const noexcept;
345
350 JUCE_NODISCARD Colour withMultipliedLightness (float amount) const noexcept;
351
352 //==============================================================================
358 JUCE_NODISCARD Colour brighter (float amountBrighter = 0.4f) const noexcept;
359
365 JUCE_NODISCARD Colour darker (float amountDarker = 0.4f) const noexcept;
366
367 //==============================================================================
375 JUCE_NODISCARD Colour contrasting (float amount = 1.0f) const noexcept;
376
384 JUCE_NODISCARD Colour contrasting (Colour targetColour, float minLuminosityDiff) const noexcept;
385
390 JUCE_NODISCARD static Colour contrasting (Colour colour1,
391 Colour colour2) noexcept;
392
393 //==============================================================================
397 JUCE_NODISCARD static Colour greyLevel (float brightness) noexcept;
398
399 //==============================================================================
404
406 JUCE_NODISCARD static Colour fromString (StringRef encodedColourString);
407
409 String toDisplayString (bool includeAlphaValue) const;
410
411private:
412 //==============================================================================
413 PixelARGB argb { 0, 0, 0, 0 };
414};
415
416} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
#define final
Definition DistrhoDefines.h:74
Definition juce_Colour.h:38
uint8 getBlue() const noexcept
Definition juce_Colour.h:178
static Colour fromHSL(float hue, float saturation, float lightness, float alpha) noexcept
Definition juce_Colour.cpp:265
PixelARGB argb
Definition juce_Colour.h:413
~Colour()=default
static Colour fromRGBA(uint8 red, uint8 green, uint8 blue, uint8 alpha) noexcept
Definition juce_Colour.cpp:238
Colour(const Colour &)=default
uint8 getGreen() const noexcept
Definition juce_Colour.h:173
static Colour fromRGB(uint8 red, uint8 green, uint8 blue) noexcept
Definition juce_Colour.cpp:228
uint8 getRed() const noexcept
Definition juce_Colour.h:168
uint8 getAlpha() const noexcept
Definition juce_Colour.h:211
static Colour fromHSV(float hue, float saturation, float brightness, float alpha) noexcept
Definition juce_Colour.cpp:260
static Colour fromFloatRGBA(float red, float green, float blue, float alpha) noexcept
Definition juce_Colour.cpp:248
Colour()=default
Definition juce_PixelFormats.h:59
Definition juce_PixelFormats.h:600
Definition juce_PixelFormats.h:354
Definition juce_String.h:53
Definition juce_StringRef.h:62
unsigned f
Definition inflate.c:1572
#define JUCE_NODISCARD
Definition juce_CompilerSupport.h:108
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
juce::String toString(const Steinberg::char8 *string) noexcept
Definition juce_VST3Common.h:159
unsigned int uint32
Definition juce_MathsFunctions.h:45
unsigned char uint8
Definition juce_MathsFunctions.h:37
png_structrp int png_fixed_point red
Definition png.h:1083
#define const
Definition zconf.h:137