From 13331e3de01caa21c28988a0253c1ba28d879c73 Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:09:45 +0100 Subject: [PATCH] const WS2812FX::setPixelColorXY small optimization for speed --- wled00/FX.h | 8 ++++---- wled00/FX_2Dfcn.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/wled00/FX.h b/wled00/FX.h index 7559b09e..fedca84a 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -1095,12 +1095,12 @@ class WS2812FX { // 96 bytes void setUpMatrix(), - setPixelColorXY_fast(int x, int y, uint32_t c), - setPixelColorXY(int x, int y, uint32_t c); + setPixelColorXY_fast(int x, int y, uint32_t c) const, + setPixelColorXY(int x, int y, uint32_t c) const; // outsmart the compiler :) by correctly overloading - inline void setPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) { setPixelColorXY(x, y, RGBW32(r,g,b,w)); } // automatically inline - inline void setPixelColorXY(int x, int y, CRGB c) { setPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0)); } + inline void setPixelColorXY(int x, int y, byte r, byte g, byte b, byte w = 0) const { setPixelColorXY(x, y, RGBW32(r,g,b,w)); } // automatically inline + inline void setPixelColorXY(int x, int y, CRGB c) const { setPixelColorXY(x, y, RGBW32(c.r,c.g,c.b,0)); } uint32_t getPixelColorXY(uint16_t, uint16_t) const; diff --git a/wled00/FX_2Dfcn.cpp b/wled00/FX_2Dfcn.cpp index 247f166e..dd2b280a 100644 --- a/wled00/FX_2Dfcn.cpp +++ b/wled00/FX_2Dfcn.cpp @@ -195,7 +195,7 @@ void WS2812FX::setUpMatrix() { } // absolute matrix version of setPixelColor(), without error checking -void IRAM_ATTR __attribute__((hot)) WS2812FX::setPixelColorXY_fast(int x, int y, uint32_t col) //WLEDMM: IRAM_ATTR conditionally +void IRAM_ATTR __attribute__((hot)) WS2812FX::setPixelColorXY_fast(int x, int y, uint32_t col) const //WLEDMM: IRAM_ATTR conditionally { uint_fast16_t index = y * Segment::maxWidth + x; if (index < customMappingSize) index = customMappingTable[index]; @@ -204,7 +204,7 @@ void IRAM_ATTR __attribute__((hot)) WS2812FX::setPixelColorXY_fast(int x, int y, } // absolute matrix version of setPixelColor() -void IRAM_ATTR_YN WS2812FX::setPixelColorXY(int x, int y, uint32_t col) //WLEDMM: IRAM_ATTR conditionally +void IRAM_ATTR_YN WS2812FX::setPixelColorXY(int x, int y, uint32_t col) const //WLEDMM: IRAM_ATTR conditionally { #ifndef WLED_DISABLE_2D if (!isMatrix) return; // not a matrix set-up