aboutsummaryrefslogtreecommitdiff
path: root/examples/ChainedPanelsScreenBuffer/FastLED_Pixel_Buffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ChainedPanelsScreenBuffer/FastLED_Pixel_Buffer.cpp')
-rw-r--r--examples/ChainedPanelsScreenBuffer/FastLED_Pixel_Buffer.cpp116
1 files changed, 0 insertions, 116 deletions
diff --git a/examples/ChainedPanelsScreenBuffer/FastLED_Pixel_Buffer.cpp b/examples/ChainedPanelsScreenBuffer/FastLED_Pixel_Buffer.cpp
deleted file mode 100644
index 79e19c9..0000000
--- a/examples/ChainedPanelsScreenBuffer/FastLED_Pixel_Buffer.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * Experimental layer class to do play with pixel in an off-screen buffer before painting to the DMA
- *
- * Requires FastLED
- *
- * Faptastic 2020-2021
- **/
-
-#include "FastLED_Pixel_Buffer.h"
-
-/**
- * The one for 256+ matrices
- * otherwise this:
- * for (uint8_t i = 0; i < MATRIX_WIDTH; i++) {}
- * turns into an infinite loop
- */
-inline uint16_t VirtualMatrixPanel_FastLED_Pixel_Buffer::XY16( uint16_t x, uint16_t y) {
-
- if (x >= virtualResX) return 0;
- if (y >= virtualResY) return 0;
-
- return (y * virtualResX) + x + 1; // everything offset by one to compute out of bounds stuff - never displayed by ShowFrame()
-}
-
-// For adafruit
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::drawPixel(int16_t x, int16_t y, uint16_t color) {
-
- //Serial.println("calling our drawpixel!");
-
- // 565 color conversion
- uint8_t r = ((((color >> 11) & 0x1F) * 527) + 23) >> 6;
- uint8_t g = ((((color >> 5) & 0x3F) * 259) + 33) >> 6;
- uint8_t b = (((color & 0x1F) * 527) + 23) >> 6;
-
- this->drawPixel(x, y, CRGB(r,g,b));
-}
-
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::drawPixel(int16_t x, int16_t y, int r, int g, int b) {
- this->drawPixel(x, y, CRGB(r,g,b));
-}
-
-// We actually just draw to ourselves... to our buffer
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::drawPixel(int16_t x, int16_t y, CRGB color)
-{
- //Serial.printf("updated x y : %d %d", x, y);
- buffer[XY16(x,y)] = color;
-}
-
-CRGB VirtualMatrixPanel_FastLED_Pixel_Buffer::getPixel(int16_t x, int16_t y)
-{
- return buffer[XY16(x,y)];
-}
-
-/**
- * Dim all the pixels on the layer.
- */
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::dimAll(byte value) {
-
- //Serial.println("performing dimall");
- // nscale8 max value is 255, or it'll flip back to 0
- // (documentation is wrong when it says x/256), it's actually x/255
- /*
- for (int y = 0; y < LAYER_HEIGHT; y++) {
- for (int x = 0; x < LAYER_WIDTH; x++) {
- pixels->data[y][x].nscale8(value);
- }}
- */
- dimRect(0,0, virtualResX, virtualResY, value);
-}
-
-/**
- * Dim all the pixels in a rectangular option of the layer the layer.
- */
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::dimRect(int16_t x, int16_t y, int16_t w, int16_t h, byte value) {
- for (int16_t i = x; i < x + w; i++)
- {
- for (int16_t j = y; j < y + h; j++)
- {
- buffer[XY16(i,j)].nscale8(value);
- }
- }
-}
-
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::clear() {
- memset(buffer, CRGB(0,0,0), (virtualResX * virtualResY) );
-}
-
-/**
- * Actually Send the CRGB FastLED buffer to the DMA engine / Physical Panels!
- * Do this via the underlying 'VirtualMatrixPanel' that does all the pixel-remapping for
- * all sorts of chained panels, and panel scan types.
- */
-void VirtualMatrixPanel_FastLED_Pixel_Buffer::show() {
-
- //Serial.println("Doing Show");
-
- CRGB _pixel = 0;
- for (int16_t y = 0; y < virtualResY; y++) {
- for (int16_t x = 0; x < virtualResX; x++)
- {
- //VirtualMatrixPanel::getCoords(x, y); // call to base to update coords for chaining approach
- _pixel = buffer[XY16(x,y)];
- drawPixelRGB888( x, y, _pixel.r, _pixel.g, _pixel.b); // call VirtualMatrixPanel::drawPixelRGB888(...)
- //drawPixelRGB888( x, y, 0, 0, 128); // call VirtualMatrixPanel::drawPixelRGB888(...)
- } // end loop to copy fast led to the dma matrix
- }
-
-} // show
-
-/**
- * Cleanup should we delete this buffer class. Unlikely during runtime.
- */
-VirtualMatrixPanel_FastLED_Pixel_Buffer::~VirtualMatrixPanel_FastLED_Pixel_Buffer(void)
-{
- delete(buffer);
-} \ No newline at end of file