FastLED 3.9.15
Loading...
Searching...
No Matches

◆ draw()

void fl::Fx2dTo1d::draw ( DrawContext context)
overridevirtual
Parameters
nowThe current time in milliseconds. Fx writers are encouraged to use this instead of millis() directly as this will more deterministic behavior.

Implements fl::Fx.

Definition at line 21 of file fx2d_to_1d.cpp.hpp.

21 {
22 // Step 1: Render 2D effect to internal grid
23 DrawContext grid_context(context.now, fl::span<CRGB>(mGrid.get(), mFx2d->getNumLeds()));
24 mFx2d->draw(grid_context);
25
26 // Step 2: Sample from grid to 1D output using fl::sample
27 const XYMap &xyMap = mFx2d->getXYMap();
28 SampleMode mode = static_cast<SampleMode>(mInterpolationMode);
29
30 for (u16 i = 0; i < mNumLeds; i++) {
31 vec2f pos = mScreenMap[i];
32 context.leds[i] = fl::sample(mGrid.get(), xyMap, pos.x, pos.y, mode);
33 }
34}
uint8_t pos
Definition Blur.ino:11
u16 xyMap(u16 x) const
Definition fx1d.h:15
InterpolationMode mInterpolationMode
Definition fx2d_to_1d.h:79
fl::unique_ptr< CRGB[]> mGrid
Definition fx2d_to_1d.h:82
ScreenMap mScreenMap
Definition fx2d_to_1d.h:78
Fx2dPtr mFx2d
Definition fx2d_to_1d.h:77
u16 mNumLeds
Definition fx.h:53
::fl::DrawContext DrawContext
Definition fx.h:21
vec2< float > vec2f
Definition geometry.h:333
CRGB sample(const CRGB *grid, const XYMap &xyMap, float x, float y, SampleMode mode)
Sample a pixel from a 2D CRGB grid at floating-point coordinates.
Definition sample.cpp.hpp:9
SampleMode
Interpolation mode for sampling a 2D grid.
Definition sample.h:13

References fl::DrawContext::leds, mFx2d, mGrid, mInterpolationMode, fl::Fx::mNumLeds, mScreenMap, fl::DrawContext::now, pos, fl::sample(), and fl::Fx1d::xyMap().

+ Here is the call graph for this function: