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
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::Str
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
(uint8_t blur_amount) {
40
mGlobalBlurAmount
= blur_amount;
41
}
42
void
setGlobalBlurPasses
(uint8_t blur_passes) {
43
mGlobalBlurPasses
= blur_passes;
44
}
45
bool
setParams
(Fx2dPtr fx,
const
Params
&
p
);
46
bool
setParams
(
Fx2d
&fx,
const
Params
&
p
);
47
protected
:
48
struct
Entry
{
49
Fx2dPtr
fx
;
50
uint8_t
blur_amount
= 0;
51
uint8_t
blur_passes
= 1;
52
Entry
() =
default
;
53
Entry
(Fx2dPtr
fx
, uint8_t
blur_amount
,
54
uint8_t
blur_passes
)
55
:
fx
(
fx
),
blur_amount
(
blur_amount
),
blur_passes
(
blur_passes
) {}
56
};
57
HeapVector<Entry>
mLayers
;
58
FramePtr
mFrame
;
59
FramePtr
mFrameTransform
;
60
uint8_t
mGlobalBlurAmount
= 0;
61
uint8_t
mGlobalBlurPasses
= 1;
62
};
63
64
}
// namespace fl
xymap
XYMap xymap(WIDTH, HEIGHT, SERPENTINE)
fl::Blend2d::setGlobalBlurAmount
void setGlobalBlurAmount(uint8_t blur_amount)
Definition
blend.h:39
fl::Blend2d::mGlobalBlurPasses
uint8_t mGlobalBlurPasses
Definition
blend.h:61
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:30
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:42
fl::Blend2d::mFrame
FramePtr mFrame
Definition
blend.h:58
fl::Blend2d::mGlobalBlurAmount
uint8_t mGlobalBlurAmount
Definition
blend.h:60
fl::Blend2d::setParams
bool setParams(Fx2dPtr fx, const Params &p)
Definition
blend.cpp:97
fl::Blend2d::mFrameTransform
FramePtr mFrameTransform
Definition
blend.h:59
fl::Blend2d::mLayers
HeapVector< Entry > mLayers
Definition
blend.h:57
fl::Blend2d::draw
void draw(DrawContext context) override
Definition
blend.cpp:47
fl::Blend2d::clear
void clear()
Definition
blend.cpp:95
fl::Fx2d::Fx2d
Fx2d(const XYMap &xyMap)
Definition
fx2d.h:19
fl::Fx2d
Definition
fx2d.h:16
fl::Fx::DrawContext
_DrawContext DrawContext
Definition
fx.h:21
fl::HeapVector
Definition
vector.h:216
fl::Str
Definition
str.h:368
fl::XYMap
Definition
xymap.h:38
ptr.h
xymap.h
frame.h
fx2d.h
fx.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:56
fl::Blend2d::Entry::blur_amount
uint8_t blur_amount
Definition
blend.h:50
fl::Blend2d::Entry::blur_passes
uint8_t blur_passes
Definition
blend.h:51
fl::Blend2d::Entry::fx
Fx2dPtr fx
Definition
blend.h:49
fl::Blend2d::Entry::Entry
Entry(Fx2dPtr fx, uint8_t blur_amount, uint8_t blur_passes)
Definition
blend.h:53
fl::Blend2d::Entry::Entry
Entry()=default
vector.h
warn.h
fx
2d
blend.h
Generated on Fri Apr 18 2025 03:39:31 for FastLED by
1.13.2