VST3: fetch midi mappings all at once, use it for note/sound-off
[carla.git] / source / modules / juce_graphics / effects / juce_GlowEffect.cpp
blob23005355f1390d0985e74cb7d7afd88d6a7ffbed
1 /*
2 ==============================================================================
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
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.
23 ==============================================================================
26 namespace juce
29 GlowEffect::GlowEffect() {}
30 GlowEffect::~GlowEffect() {}
32 void GlowEffect::setGlowProperties (float newRadius, Colour newColour, Point<int> pos)
34 radius = newRadius;
35 colour = newColour;
36 offset = pos;
39 void GlowEffect::applyEffect (Image& image, Graphics& g, float scaleFactor, float alpha)
41 Image temp (image.getFormat(), image.getWidth(), image.getHeight(), true);
43 ImageConvolutionKernel blurKernel (roundToInt (radius * scaleFactor * 2.0f));
45 blurKernel.createGaussianBlur (radius);
46 blurKernel.rescaleAllValues (radius);
48 blurKernel.applyToImage (temp, image, image.getBounds());
50 g.setColour (colour.withMultipliedAlpha (alpha));
51 g.drawImageAt (temp, offset.x, offset.y, true);
53 g.setOpacity (alpha);
54 g.drawImageAt (image, offset.x, offset.y, false);
57 } // namespace juce