FastLED
3.9.15
Loading...
Searching...
No Matches
blend.h
Go to the documentation of this file.
1
/*
2
Fx2d class that allows to blend multiple Fx2d layers together.
3
The bottom layer is always drawn at full capacity. Upper layers
4
are blended by the the max luminance of the components.
5
*/
6
7
#pragma once
8
9
#include "
fl/stl/stdint.h
"
10
11
#include "
fl/fx/fx2d.h
"
12
#include "
fl/stl/noexcept.h
"
13
14
// Forward declarations to reduce header overhead
15
namespace
fl
{
16
class
Frame
;
17
class
XYMap
;
18
template
<
typename
T>
// IWYU pragma: keep
19
class
vector
;
// IWYU pragma: keep
20
21
struct
Blend2dParams
{
22
u8
blur_amount
= 0;
23
u8
blur_passes
= 1;
24
};
25
26
FASTLED_SHARED_PTR
(
Blend2d
);
27
28
class
Blend2d
:
public
Fx2d
{
29
public
:
30
using
Params
=
Blend2dParams
;
31
// Note that if this xymap is non rectangular then it's recommended that the
32
// Fx2d layers that are added should be rectangular.
33
Blend2d
(
const
XYMap
&
xymap
);
34
fl::string
fxName
()
const override
;
35
void
add
(Fx2dPtr layer,
const
Params
&p =
Params
());
36
void
add
(
Fx2d
&layer,
const
Params
&p =
Params
());
37
void
draw
(
DrawContext
context)
override
;
38
void
clear
();
39
void
setGlobalBlurAmount
(
u8
blur_amount
) {
40
mGlobalBlurAmount
=
blur_amount
;
41
}
42
void
setGlobalBlurPasses
(
u8
blur_passes) {
43
mGlobalBlurPasses
= blur_passes;
44
}
45
bool
setParams
(Fx2dPtr fx,
const
Params
&p);
46
bool
setParams
(
Fx2d
&fx,
const
Params
&p);
47
48
protected
:
49
struct
Entry
{
50
Fx2dPtr
fx
;
51
u8
blur_amount
= 0;
52
u8
blur_passes
= 1;
53
Entry
()
FL_NOEXCEPT
= default;
54
Entry
(Fx2dPtr
fx
,
u8
blur_amount
,
u8
blur_passes
)
55
:
fx
(
fx
),
blur_amount
(
blur_amount
),
blur_passes
(
blur_passes
) {}
56
};
57
vector<Entry>
mLayers
;
58
fl::shared_ptr<Frame>
mFrame
;
59
fl::shared_ptr<Frame>
mFrameTransform
;
60
u8
mGlobalBlurAmount
= 0;
61
u8
mGlobalBlurPasses
= 1;
62
};
63
64
}
// namespace fl
xymap
XYMap xymap
Definition
AnimartrixRing.ino:62
fl::Blend2d::mFrameTransform
fl::shared_ptr< Frame > mFrameTransform
Definition
blend.h:59
fl::Blend2d::fxName
fl::string fxName() const override
Definition
blend.cpp.hpp:26
fl::Blend2d::Blend2d
Blend2d(const XYMap &xymap)
Definition
blend.cpp.hpp:18
fl::Blend2d::Params
Blend2dParams Params
Definition
blend.h:30
fl::Blend2d::mGlobalBlurAmount
u8 mGlobalBlurAmount
Definition
blend.h:60
fl::Blend2d::add
void add(Fx2dPtr layer, const Params &p=Params())
Definition
blend.cpp.hpp:38
fl::Blend2d::setParams
bool setParams(Fx2dPtr fx, const Params &p)
Definition
blend.cpp.hpp:106
fl::Blend2d::setGlobalBlurAmount
void setGlobalBlurAmount(u8 blur_amount)
Definition
blend.h:39
fl::Blend2d::mFrame
fl::shared_ptr< Frame > mFrame
Definition
blend.h:58
fl::Blend2d::mGlobalBlurPasses
u8 mGlobalBlurPasses
Definition
blend.h:61
fl::Blend2d::draw
void draw(DrawContext context) override
Definition
blend.cpp.hpp:56
fl::Blend2d::mLayers
vector< Entry > mLayers
Definition
blend.h:57
fl::Blend2d::clear
void clear()
Definition
blend.cpp.hpp:104
fl::Blend2d::setGlobalBlurPasses
void setGlobalBlurPasses(u8 blur_passes)
Definition
blend.h:42
fl::Blend2d
Definition
blend.h:28
fl::Frame
Definition
frame.h:24
fl::Fx2d::Fx2d
Fx2d(const XYMap &xyMap)
Definition
fx2d.h:19
fl::Fx2d
Definition
fx2d.h:15
fl::XYMap
Definition
xymap.h:41
fl::shared_ptr
Definition
shared_ptr.h:155
fl::string
Definition
string.h:193
fl::vector
Definition
vector.h:449
fx2d.h
fl::u8
unsigned char u8
Definition
stdint.h:131
fl::blur_amount
u8 u8 fract8 blur_amount
Definition
blur.h:186
fl
Base definition for an LED controller.
Definition
crgb.hpp:179
fl::Blend2dParams::blur_amount
u8 blur_amount
Definition
blend.h:22
fl::Blend2dParams::blur_passes
u8 blur_passes
Definition
blend.h:23
fl::Blend2dParams
Definition
blend.h:21
noexcept.h
FL_NOEXCEPT
#define FL_NOEXCEPT
FASTLED_SHARED_PTR
#define FASTLED_SHARED_PTR(type)
Definition
shared_ptr.h:535
stdint.h
fl::Blend2d::Entry::blur_amount
u8 blur_amount
Definition
blend.h:51
fl::Blend2d::Entry::fx
Fx2dPtr fx
Definition
blend.h:50
fl::Blend2d::Entry::Entry
Entry() FL_NOEXCEPT=default
fl::Blend2d::Entry::blur_passes
u8 blur_passes
Definition
blend.h:52
fl::DrawContext
Definition
draw_context.h:10
fl
fx
2d
blend.h
Generated on Tue Jun 16 2026 00:06:59 for FastLED by
1.13.2