mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	[sdl][mipi_spi] Respect clipping when drawing (#9722)
Co-authored-by: clydebarrow <2366188+clydebarrow@users.noreply.github.com>
This commit is contained in:
		| @@ -534,6 +534,8 @@ class MipiSpiBuffer : public MipiSpi<BUFFERTYPE, BUFFERPIXEL, IS_BIG_ENDIAN, DIS | |||||||
|  |  | ||||||
|   // Draw a pixel at the given coordinates. |   // Draw a pixel at the given coordinates. | ||||||
|   void draw_pixel_at(int x, int y, Color color) override { |   void draw_pixel_at(int x, int y, Color color) override { | ||||||
|  |     if (!this->get_clipping().inside(x, y)) | ||||||
|  |       return; | ||||||
|     rotate_coordinates_(x, y); |     rotate_coordinates_(x, y); | ||||||
|     if (x < 0 || x >= WIDTH || y < this->start_line_ || y >= this->end_line_) |     if (x < 0 || x >= WIDTH || y < this->start_line_ || y >= this->end_line_) | ||||||
|       return; |       return; | ||||||
|   | |||||||
| @@ -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) { | 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}; |   SDL_Rect rect{x, y, 1, 1}; | ||||||
|   auto data = (display::ColorUtil::color_to_565(color, display::COLOR_ORDER_RGB)); |   auto data = (display::ColorUtil::color_to_565(color, display::COLOR_ORDER_RGB)); | ||||||
|   SDL_UpdateTexture(this->texture_, &rect, &data, 2); |   SDL_UpdateTexture(this->texture_, &rect, &data, 2); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user