/// @file WasmScreenCoords.ino /// @brief Simple test for screen coordinates in the web compiled version of FastLED. /// @author Zach Vorhies /// /// This sketch is fully compatible with the FastLED web compiler. To use it do the following: /// 1. Install Fastled: `pip install fastled` /// 2. cd into this examples page. /// 3. Run the FastLED web compiler at root: `fastled` // printf #include #include #include #include #include "fl/json.h" #include "fl/slice.h" #include "fl/screenmap.h" #include "fl/math_macros.h" #define LED_PIN 3 #define BRIGHTNESS 96 #define COLOR_ORDER GRB #define NUM_LEDS 256 CRGB leds[NUM_LEDS]; CRGB leds2[NUM_LEDS]; void make_map(int stepx, int stepy, int num, std::vector* _map) { float x = 0; float y = 0; std::vector& map = *_map; for (int16_t i = 0; i < num; i++) { map.push_back(vec2f{x, y}); x += stepx; y += stepy; } } void setup() { for (CRGB& c : leds) { c = CRGB::Blue; } for (CRGB& c : leds2) { c = CRGB::Red; } FastLED.setBrightness(255); std::vector map; make_map(1, 1, NUM_LEDS, &map); ScreenMap screenmap = ScreenMap(map.data(), map.size()); std::vector map2; make_map(-1, -1, NUM_LEDS, &map2); ScreenMap screenmap2 = ScreenMap(map2.data(), map2.size()); FastLED.addLeds(leds, NUM_LEDS) .setScreenMap(screenmap); FastLED.addLeds(leds2, NUM_LEDS) .setScreenMap(screenmap2); } void loop() { FastLED.show(); }