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 <
stdint.h
>
10
11
#include "
fl/namespace.h
"
12
#include "
fl/ptr.h
"
13
#include "
fl/vector.h
"
14
#include "
fl/warn.h
"
15
#include "
fl/xymap.h
"
16
#include "
fx/frame.h
"
17
#include "
fx/fx.h
"
18
#include "
fx/fx2d.h
"
19
20
namespace
fl
{
21
22
struct
Blend2dParams
{
23
uint8_t
blur_amount
= 0;
24
uint8_t
blur_passes
= 1;
25
};
26
27
FASTLED_SMART_PTR
(
Blend2d
);
28
29
class
Blend2d
:
public
Fx2d
{
30
public
:
31
using
Params
=
Blend2dParams
;
32
// Note that if this xymap is non rectangular then it's recommended that the
33
// Fx2d layers that are added should be rectangular.
34
Blend2d
(
const
XYMap
&
xymap
);
35
fl::Str
fxName
()
const override
;
36
void
add
(Fx2dPtr layer,
const
Params
&
p
=
Params
());
37
void
add
(
Fx2d
&layer,
const
Params
&
p
=
Params
());
38
void
draw
(
DrawContext
context)
override
;
39
void
clear
();
40
void
setGlobalBlurAmount
(uint8_t blur_amount) {
41
mGlobalBlurAmount
= blur_amount;
42
}
43
void
setGlobalBlurPasses
(uint8_t blur_passes) {
44
mGlobalBlurPasses
= blur_passes;
45
}
46
bool
setParams
(Fx2dPtr fx,
const
Params
&
p
);
47
bool
setParams
(
Fx2d
&fx,
const
Params
&
p
);
48
49
protected
:
50
struct
Entry
{
51
Fx2dPtr
fx
;
52
uint8_t
blur_amount
= 0;
53
uint8_t
blur_passes
= 1;
54
Entry
() =
default
;
55
Entry
(Fx2dPtr
fx
, uint8_t
blur_amount
, uint8_t
blur_passes
)
56
:
fx
(
fx
),
blur_amount
(
blur_amount
),
blur_passes
(
blur_passes
) {}
57
};
58
HeapVector<Entry>
mLayers
;
59
FramePtr
mFrame
;
60
FramePtr
mFrameTransform
;
61
uint8_t
mGlobalBlurAmount
= 0;
62
uint8_t
mGlobalBlurPasses
= 1;
63
};
64
65
}
// namespace fl
xymap
XYMap xymap(WIDTH, HEIGHT, SERPENTINE)
fl::Blend2d::setGlobalBlurAmount
void setGlobalBlurAmount(uint8_t blur_amount)
Definition
blend.h:40
fl::Blend2d::mGlobalBlurPasses
uint8_t mGlobalBlurPasses
Definition
blend.h:62
fl::Blend2d::fxName
fl::Str fxName() const override
Definition
blend.cpp:23
fl::Blend2d::Blend2d
Blend2d(const XYMap &xymap)
Definition
blend.cpp:15
fl::Blend2d::Params
Blend2dParams Params
Definition
blend.h:31
fl::Blend2d::add
void add(Fx2dPtr layer, const Params &p=Params())
Definition
blend.cpp:35
fl::Blend2d::setGlobalBlurPasses
void setGlobalBlurPasses(uint8_t blur_passes)
Definition
blend.h:43
fl::Blend2d::mFrame
FramePtr mFrame
Definition
blend.h:59
fl::Blend2d::mGlobalBlurAmount
uint8_t mGlobalBlurAmount
Definition
blend.h:61
fl::Blend2d::setParams
bool setParams(Fx2dPtr fx, const Params &p)
Definition
blend.cpp:97
fl::Blend2d::mFrameTransform
FramePtr mFrameTransform
Definition
blend.h:60
fl::Blend2d::mLayers
HeapVector< Entry > mLayers
Definition
blend.h:58
fl::Blend2d::draw
void draw(DrawContext context) override
Definition
blend.cpp:47
fl::Blend2d::clear
void clear()
Definition
blend.cpp:95
fl::Blend2d
Definition
blend.h:29
fl::Fx2d::Fx2d
Fx2d(const XYMap &xyMap)
Definition
fx2d.h:20
fl::Fx2d
Definition
fx2d.h:16
fl::Fx::DrawContext
_DrawContext DrawContext
Definition
fx.h:21
fl::HeapVector
Definition
vector.h:305
fl::Str
Definition
str.h:388
fl::XYMap
Definition
xymap.h:43
frame.h
fx2d.h
namespace.h
Implements the FastLED namespace macros.
fl
Implements a simple red square effect for 2D LED grids.
Definition
crgb.h:16
fl::Blend2dParams::blur_passes
uint8_t blur_passes
Definition
blend.h:24
fl::Blend2dParams::blur_amount
uint8_t blur_amount
Definition
blend.h:23
fl::Blend2dParams
Definition
blend.h:22
p
static FASTLED_NAMESPACE_BEGIN uint8_t const p[]
Definition
noise.cpp:30
FASTLED_SMART_PTR
#define FASTLED_SMART_PTR(type)
Definition
ptr.h:31
ptr.h
fx.h
stdint.h
fl::Blend2d::Entry::blur_amount
uint8_t blur_amount
Definition
blend.h:52
fl::Blend2d::Entry::blur_passes
uint8_t blur_passes
Definition
blend.h:53
fl::Blend2d::Entry::fx
Fx2dPtr fx
Definition
blend.h:51
fl::Blend2d::Entry::Entry
Entry(Fx2dPtr fx, uint8_t blur_amount, uint8_t blur_passes)
Definition
blend.h:55
fl::Blend2d::Entry::Entry
Entry()=default
vector.h
warn.h
xymap.h
fx
2d
blend.h
Generated on Thu May 29 2025 04:44:57 for FastLED by
1.13.2