FastLED 3.10.8
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 22 of file fx2d_to_1d.cpp.hpp.

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

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

+ Here is the call graph for this function: