FastLED 3.9.15
Loading...
Searching...
No Matches
tile2x2.cpp
Go to the documentation of this file.
1#include "fl/tile2x2.h"
2#include "crgb.h"
3#include "fl/draw_visitor.h"
4#include "fl/raster.h"
5#include "fl/raster_sparse.h"
6#include "fl/unused.h"
7#include "fl/warn.h"
8#include "fl/xymap.h"
9
10using namespace fl;
11
12namespace fl {
13
15 XYRasterU8Sparse *out_raster) {
16 out_raster->rasterize(tiles);
17}
18
19void Tile2x2_u8::draw(const CRGB &color, const XYMap &xymap, CRGB *out) const {
20 XYDrawComposited visitor(color, xymap, out);
21 draw(xymap, visitor);
22}
23
24void Tile2x2_u8::scale(uint8_t scale) {
25 // scale the tile
26 if (scale == 255) {
27 return;
28 }
29 for (int x = 0; x < 2; ++x) {
30 for (int y = 0; y < 2; ++y) {
31 uint16_t value = at(x, y);
32 at(x, y) = (value * scale) >> 8;
33 }
34 }
35}
36
37} // namespace fl
XYMap xymap(WIDTH, HEIGHT, SERPENTINE)
uint32_t x[NUM_LAYERS]
Definition Fire2023.ino:82
uint32_t y[NUM_LAYERS]
Definition Fire2023.ino:83
void scale(uint8_t scale)
Definition tile2x2.cpp:24
static void Rasterize(const Slice< const Tile2x2_u8 > &tiles, XYRasterU8Sparse *output)
Definition tile2x2.cpp:14
void draw(const CRGB &color, const XYMap &xymap, CRGB *out) const
Definition tile2x2.cpp:19
uint8_t & at(int x, int y)
Definition tile2x2.h:35
void rasterize(const vec2< int > &pt, uint8_t value)
Defines the red, green, and blue (RGB) pixel struct.
Implements a simple red square effect for 2D LED grids.
Definition crgb.h:16
Representation of an RGB pixel (Red, Green, Blue)
Definition crgb.h:55