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

◆ ui()

ui_state ui ( )

Definition at line 256 of file wavefx.cpp.

256 {
257 // Set the easing function based on the checkbox
258 // Easing controls how wave heights are calculated:
259 // - LINEAR: Simple linear mapping (sharper waves)
260 // - SQRT: Square root mapping (more natural, rounded waves)
262 ? U8EasingFunction::WAVE_U8_MODE_SQRT
263 : U8EasingFunction::WAVE_U8_MODE_LINEAR;
264
265 // Apply all settings from UI controls to the lower wave layer
266 waveFxLower.setSpeed(speedLower); // Wave propagation speed
267 waveFxLower.setDampening(dampeningLower); // How quickly waves lose energy
268 waveFxLower.setHalfDuplex(halfDuplexLower); // Whether waves can go negative
269 waveFxLower.setSuperSample(getSuperSample()); // Anti-aliasing quality
270 waveFxLower.setEasingMode(easeMode); // Wave height calculation method
271
272 // Apply all settings from UI controls to the upper wave layer
273 waveFxUpper.setSpeed(speedUpper); // Wave propagation speed
274 waveFxUpper.setDampening(dampeningUpper); // How quickly waves lose energy
275 waveFxUpper.setHalfDuplex(halfDuplexUpper); // Whether waves can go negative
276 waveFxUpper.setSuperSample(getSuperSample()); // Anti-aliasing quality
277 waveFxUpper.setEasingMode(easeMode); // Wave height calculation method
278
279 // Apply global blur settings to the blender
280 fxBlend.setGlobalBlurAmount(blurAmount); // Overall blur strength
281 fxBlend.setGlobalBlurPasses(blurPasses); // Number of blur passes
282
283 // Create parameter structures for each wave layer's blur settings
284 Blend2dParams lower_params = {
285 .blur_amount = blurAmountLower, // Blur amount for lower layer
286 .blur_passes = blurPassesLower, // Blur passes for lower layer
287 };
288
289 Blend2dParams upper_params = {
290 .blur_amount = blurAmountUpper, // Blur amount for upper layer
291 .blur_passes = blurPassesUpper, // Blur passes for upper layer
292 };
293
294 // Apply the layer-specific blur parameters
295 fxBlend.setParams(waveFxLower, lower_params);
296 fxBlend.setParams(waveFxUpper, upper_params);
297
298 // Return the current state of the UI buttons
299 ui_state state{
300 .button = button, // Regular ripple button
301 .bigButton = buttonFancy, // Fancy effect button
302 };
303 return state;
304}
U8EasingFunction
UISlider blurAmount("Global Blur Amount", 0, 0, 172, 1)
UISlider blurPassesLower("Wave Lower: Blur Passes", 1, 1, 10, 1)
UISlider blurPasses("Global Blur Passes", 1, 1, 10, 1)
Blend2d fxBlend(xyMap)
UISlider blurAmountLower("Wave Lower: Blur Amount", 0, 0, 172, 1)
UISlider speedLower("Wave Lower: Speed", 0.26f, 0.0f, 1.0f)
UISlider blurPassesUpper("Wave Upper: Blur Passes", 1, 1, 10, 1)
WaveFx waveFxLower(xyRect, CreateArgsLower())
UICheckbox halfDuplexUpper("Wave Upper: Half Duplex", true)
UISlider speedUpper("Wave Upper: Speed", 0.12f, 0.0f, 1.0f)
UIButton button("Trigger")
UISlider dampeningUpper("Wave Upper: Dampening", 8.9f, 0.0f, 20.0f, 0.1f)
UICheckbox easeModeSqrt("Ease Mode Sqrt", false)
UIButton buttonFancy("Trigger Fancy")
UISlider blurAmountUpper("Wave Upper: Blur Amount", 95, 0, 172, 1)
SuperSample getSuperSample()
Definition wavefx.cpp:130
UISlider dampeningLower("Wave Lower: Dampening", 9.0f, 0.0f, 20.0f, 0.1f)
UICheckbox halfDuplexLower("Wave Lower: Half Duplex", true)
WaveFx waveFxUpper(xyRect, CreateArgsUpper())

References blurAmount, blurAmountLower, blurAmountUpper, blurPasses, blurPassesLower, blurPassesUpper, button, buttonFancy, dampeningLower, dampeningUpper, easeModeSqrt, fxBlend, getSuperSample(), halfDuplexLower, halfDuplexUpper, speedLower, speedUpper, fl::WAVE_U8_MODE_LINEAR, fl::WAVE_U8_MODE_SQRT, waveFxLower, and waveFxUpper.

Referenced by wavefx_loop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: