From 727e8ca37673559f484a9fb038999578ce39acad Mon Sep 17 00:00:00 2001 From: JonasB2497 <45214989+JonasB2497@users.noreply.github.com> Date: Sun, 20 Jul 2025 00:29:02 +0200 Subject: [PATCH] [sdl][mipi_spi] Respect clipping when drawing (#9722) Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com> --- esphome/components/mipi_spi/mipi_spi.h | 2 ++ esphome/components/sdl/sdl_esphome.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/esphome/components/mipi_spi/mipi_spi.h b/esphome/components/mipi_spi/mipi_spi.h index cdba5a3235..00b861f71b 100644 --- a/esphome/components/mipi_spi/mipi_spi.h +++ b/esphome/components/mipi_spi/mipi_spi.h @@ -534,6 +534,8 @@ class MipiSpiBuffer : public MipiSpiget_clipping().inside(x, y)) + return; rotate_coordinates_(x, y); if (x < 0 || x >= WIDTH || y < this->start_line_ || y >= this->end_line_) return; diff --git a/esphome/components/sdl/sdl_esphome.cpp b/esphome/components/sdl/sdl_esphome.cpp index e55bff58fe..5ad18f6311 100644 --- a/esphome/components/sdl/sdl_esphome.cpp +++ b/esphome/components/sdl/sdl_esphome.cpp @@ -48,6 +48,9 @@ void Sdl::draw_pixels_at(int x_start, int y_start, int w, int h, const uint8_t * } void Sdl::draw_pixel_at(int x, int y, Color color) { + if (!this->get_clipping().inside(x, y)) + return; + SDL_Rect rect{x, y, 1, 1}; auto data = (display::ColorUtil::color_to_565(color, display::COLOR_ORDER_RGB)); SDL_UpdateTexture(this->texture_, &rect, &data, 2);