ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
esphome::display::Display Class Referenceabstract

#include <display.h>

Inheritance diagram for esphome::display::Display:
esphome::PollingComponent esphome::Component esphome::display::DisplayBuffer esphome::epaper_spi::EPaperBase esphome::hub75::HUB75Display esphome::it8951::IT8951Display esphome::mipi_dsi::MipiDsi esphome::mipi_rgb::MipiRgb esphome::mipi_spi::MipiSpi< BUFFERTYPE, BUFFERPIXEL, IS_BIG_ENDIAN, DISPLAYPIXEL, BUS_TYPE, WIDTH, HEIGHT, OFFSET_WIDTH, OFFSET_HEIGHT, PAD_WIDTH, PAD_HEIGHT, MADCTL, HAS_HARDWARE_ROTATION > esphome::pixoo::Pixoo esphome::rpi_dpi_rgb::RpiDpiRgb esphome::sdl::Sdl esphome::st7701s::ST7701S

Public Member Functions

virtual void fill (Color color)
 Fill the entire screen with the given color.
 
virtual void clear ()
 Clear the entire screen by filling it with OFF pixels.
 
virtual int get_width ()
 Get the calculated width of the display in pixels with rotation applied.
 
virtual int get_height ()
 Get the calculated height of the display in pixels with rotation applied.
 
int get_native_width ()
 Get the native (original) width of the display in pixels.
 
int get_native_height ()
 Get the native (original) height of the display in pixels.
 
void draw_pixel_at (int x, int y)
 Set a single pixel at the specified coordinates to default color.
 
virtual void draw_pixel_at (int x, int y, Color color)=0
 Set a single pixel at the specified coordinates to the given color.
 
void draw_pixels_at (int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad)
 Given an array of pixels encoded in the nominated format, draw these into the display's buffer.
 
void draw_pixels_at (int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian)
 Convenience overload for base case where the pixels are packed into the buffer with no gaps (e.g. suits LVGL.)
 
 ESPDEPRECATED ("Pixels are always RGB: call draw_pixels_at() without the ColorOrder, and override draw_pixels_internal() " "to copy blocks. Removed in 2027.5.0", "2026.11.0") virtual void draw_pixels_at(int x_start
 The block form above with a color order.
 
 ESPDEPRECATED ("Pixels are always RGB, drop the ColorOrder argument. Removed in 2027.5.0", "2026.11.0") void draw_pixels_at(int x_start
 
void line (int x1, int y1, int x2, int y2, Color color=COLOR_ON)
 Draw a straight line from the point [x1,y1] to [x2,y2] with the given color.
 
void line_at_angle (int x, int y, int angle, int length, Color color=COLOR_ON)
 Draw a straight line at the given angle based on the origin [x, y] for a specified length with the given color.
 
void line_at_angle (int x, int y, int angle, int start_radius, int stop_radius, Color color=COLOR_ON)
 Draw a straight line at the given angle based on the origin [x, y] from a specified start and stop radius with the given color.
 
void horizontal_line (int x, int y, int width, Color color=COLOR_ON)
 Draw a horizontal line from the point [x,y] to [x+width,y] with the given color.
 
void vertical_line (int x, int y, int height, Color color=COLOR_ON)
 Draw a vertical line from the point [x,y] to [x,y+width] with the given color.
 
void rectangle (int x1, int y1, int width, int height, Color color=COLOR_ON)
 Draw the outline of a rectangle with the top left point at [x1,y1] and the bottom right point at [x1+width,y1+height].
 
void filled_rectangle (int x1, int y1, int width, int height, Color color=COLOR_ON)
 Fill a rectangle with the top left point at [x1,y1] and the bottom right point at [x1+width,y1+height].
 
void circle (int center_x, int center_xy, int radius, Color color=COLOR_ON)
 Draw the outline of a circle centered around [center_x,center_y] with the radius radius with the given color.
 
void filled_circle (int center_x, int center_y, int radius, Color color=COLOR_ON)
 Fill a circle centered around [center_x,center_y] with the radius radius with the given color.
 
void filled_ring (int center_x, int center_y, int radius1, int radius2, Color color=COLOR_ON)
 Fill a ring centered around [center_x,center_y] between two circles with the radius1 and radius2 with the given color.
 
void filled_gauge (int center_x, int center_y, int radius1, int radius2, int progress, Color color=COLOR_ON)
 Fill a half-ring "gauge" centered around [center_x,center_y] between two circles with the radius1 and radius2 with he given color and filled up to 'progress' percent.
 
void triangle (int x1, int y1, int x2, int y2, int x3, int y3, Color color=COLOR_ON)
 Draw the outline of a triangle contained between the points [x1,y1], [x2,y2] and [x3,y3] with the given color.
 
void filled_triangle (int x1, int y1, int x2, int y2, int x3, int y3, Color color=COLOR_ON)
 Fill a triangle contained between the points [x1,y1], [x2,y2] and [x3,y3] with the given color.
 
void get_regular_polygon_vertex (int vertex_id, int *vertex_x, int *vertex_y, int center_x, int center_y, int radius, int edges, RegularPolygonVariation variation=VARIATION_POINTY_TOP, float rotation_degrees=ROTATION_0_DEGREES)
 Get the specified vertex (x,y) coordinates for the regular polygon inscribed in the circle centered on [center_x,center_y] with the given radius.
 
void regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation=VARIATION_POINTY_TOP, float rotation_degrees=ROTATION_0_DEGREES, Color color=COLOR_ON, RegularPolygonDrawing drawing=DRAWING_OUTLINE)
 Draw the outline of a regular polygon inscribed in the circle centered on [x,y] with the given radius and color.
 
void regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation, Color color, RegularPolygonDrawing drawing=DRAWING_OUTLINE)
 
void regular_polygon (int x, int y, int radius, int edges, Color color, RegularPolygonDrawing drawing=DRAWING_OUTLINE)
 
void filled_regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation=VARIATION_POINTY_TOP, float rotation_degrees=ROTATION_0_DEGREES, Color color=COLOR_ON)
 Fill a regular polygon inscribed in the circle centered on [x,y] with the given radius and color.
 
void filled_regular_polygon (int x, int y, int radius, int edges, RegularPolygonVariation variation, Color color)
 
void filled_regular_polygon (int x, int y, int radius, int edges, Color color)
 
void print (int x, int y, BaseFont *font, Color color, TextAlign align, const char *text, Color background=COLOR_OFF)
 Print text with the anchor point at [x,y] with font.
 
void print (int x, int y, BaseFont *font, Color color, const char *text, Color background=COLOR_OFF)
 Print text with the top left at [x,y] with font.
 
void print (int x, int y, BaseFont *font, TextAlign align, const char *text)
 Print text with the anchor point at [x,y] with font.
 
void print (int x, int y, BaseFont *font, const char *text)
 Print text with the top left at [x,y] with font.
 
void printf (int x, int y, BaseFont *font, Color color, Color background, TextAlign align, const char *format,...) __attribute__((format(printf
 Evaluate the printf-format format and print the result with the anchor point at [x,y] with font.
 
void void printf (int x, int y, BaseFont *font, Color color, TextAlign align, const char *format,...) __attribute__((format(printf
 Evaluate the printf-format format and print the result with the anchor point at [x,y] with font.
 
void void void printf (int x, int y, BaseFont *font, Color color, const char *format,...) __attribute__((format(printf
 Evaluate the printf-format format and print the result with the top left at [x,y] with font.
 
void void void void printf (int x, int y, BaseFont *font, TextAlign align, const char *format,...) __attribute__((format(printf
 Evaluate the printf-format format and print the result with the anchor point at [x,y] with font.
 
void void void void void printf (int x, int y, BaseFont *font, const char *format,...) __attribute__((format(printf
 Evaluate the printf-format format and print the result with the top left at [x,y] with font.
 
void void void void void void strftime (int x, int y, BaseFont *font, Color color, Color background, TextAlign align, const char *format, ESPTime time) __attribute__((format(strftime
 Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font.
 
void void void void void void void strftime (int x, int y, BaseFont *font, Color color, TextAlign align, const char *format, ESPTime time) __attribute__((format(strftime
 Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font.
 
void void void void void void void void strftime (int x, int y, BaseFont *font, Color color, const char *format, ESPTime time) __attribute__((format(strftime
 Evaluate the strftime-format format and print the result with the top left at [x,y] with font.
 
void void void void void void void void void strftime (int x, int y, BaseFont *font, TextAlign align, const char *format, ESPTime time) __attribute__((format(strftime
 Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font.
 
void void void void void void void void void void strftime (int x, int y, BaseFont *font, const char *format, ESPTime time) __attribute__((format(strftime
 Evaluate the strftime-format format and print the result with the top left at [x,y] with font.
 
void void void void void void void void void void void image (int x, int y, BaseImage *image, Color color_on=COLOR_ON, Color color_off=COLOR_OFF)
 Draw the image with the top-left corner at [x,y] to the screen.
 
void image (int x, int y, BaseImage *image, ImageAlign align, Color color_on=COLOR_ON, Color color_off=COLOR_OFF)
 Draw the image at [x,y] to the screen.
 
void graph (int x, int y, graph::Graph *graph, Color color_on=COLOR_ON)
 Draw the graph with the top-left corner at [x,y] to the screen.
 
void legend (int x, int y, graph::Graph *graph, Color color_on=COLOR_ON)
 Draw the legend for graph with the top-left corner at [x,y] to the screen.
 
void qr_code (int x, int y, qr_code::QrCode *qr_code, Color color_on=COLOR_ON, int scale=1)
 Draw the qr_code with the top-left corner at [x,y] to the screen.
 
void menu (int x, int y, graphical_display_menu::GraphicalDisplayMenu *menu, int width, int height)
 
void get_text_bounds (int x, int y, const char *text, BaseFont *font, TextAlign align, int *x1, int *y1, int *width, int *height)
 Get the text bounds of the given string.
 
void set_writer (display_writer_t &&writer)
 Internal method to set the display writer lambda.
 
void show_page (DisplayPage *page)
 
void show_next_page ()
 
void show_prev_page ()
 
void set_pages (std::vector< DisplayPage * > pages)
 
const DisplayPage * get_active_page () const
 
template<typename F >
void add_on_page_change_callback (F &&callback)
 
virtual void set_rotation (DisplayRotation rotation)
 Internal method to set the display rotation with.
 
void set_auto_clear (bool auto_clear_enabled)
 
virtual DisplayRotation get_rotation () const
 
virtual bool pixel_axes_swapped () const
 True when draw_pixel_at() swaps x and y before writing, so pixels that are neighbours along x land a row apart in the frame buffer.
 
virtual DisplayType get_display_type ()=0
 Get the type of display that the buffer corresponds to.
 
void start_clipping (Rect rect)
 Set the clipping rectangle for further drawing.
 
void start_clipping (int16_t left, int16_t top, int16_t right, int16_t bottom)
 
void extend_clipping (Rect rect)
 Add a rectangular region to the invalidation region.
 
void extend_clipping (int16_t left, int16_t top, int16_t right, int16_t bottom)
 
void shrink_clipping (Rect rect)
 substract a rectangular region to the invalidation region
 
void shrink_clipping (uint16_t left, uint16_t top, uint16_t right, uint16_t bottom)
 
void end_clipping ()
 Reset the invalidation region.
 
Rect get_clipping () const
 Get the current the clipping rectangle.
 
bool is_clipping () const
 
bool ESPHOME_ALWAYS_INLINE is_point_clipped (int x, int y) const
 Whether (x, y) falls outside the active clipping rectangle.
 
bool clip (int x, int y)
 Check if pixel is within region of display.
 
void test_card ()
 
void show_test_card ()
 
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms.
 
void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object.
 
virtual void update ()=0
 
void call_setup () override
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor.
 
void start_poller ()
 
void stop_poller ()
 
- Public Member Functions inherited from esphome::Component
virtual void setup ()
 Where the component's initialization should happen.
 
virtual void loop ()
 This method will be called repeatedly.
 
virtual void dump_config ()
 
virtual float get_setup_priority () const
 priority of setup().
 
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
virtual bool teardown ()
 Called during teardown to allow component to gracefully finish operations.
 
virtual void on_powerdown ()
 Called after teardown is complete to power down hardware.
 
uint8_t get_component_state () const
 
void reset_to_construction_state ()
 Reset this component back to the construction state to allow setup to run again.
 
bool is_in_loop_state () const
 Check if this component has completed setup and is in the loop state.
 
bool is_idle () const
 Check if this component is idle.
 
void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const LogString *message)
 
void disable_loop ()
 Disable this component's loop.
 
void enable_loop ()
 Enable this component's loop.
 
void enable_loop_soon_any_context ()
 Thread and ISR-safe version of enable_loop() that can be called from any context.
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning ()
 
void status_set_warning (const char *message)
 
void status_set_warning (const LogString *message)
 
bool status_comm_result (bool ok)
 Clears the warning when ok, else sets it with message (default "Communication failed"); returns ok.
 
bool status_comm_result (bool ok, const LogString *message)
 
void status_set_error ()
 
void status_set_error (const LogString *message)
 
void status_clear_warning ()
 
void status_clear_error ()
 
 ESPDEPRECATED ("Use status_momentary_warning() without a name. Removed in 2027.5.0", "2026.11.0") void status_momentary_warning(const char *name
 
void status_momentary_warning (uint32_t length=5000)
 Set warning status flag and clear it after length ms.
 
void status_momentary_warning (const LogString *message, uint32_t length=5000)
 
 ESPDEPRECATED ("Use status_momentary_error() without a name. Removed in 2027.5.0", "2026.11.0") void status_momentary_error(const char *name
 
void status_momentary_error (uint32_t length=5000)
 Set error status flag and clear it after length ms.
 
void status_momentary_error (const LogString *message, uint32_t length=5000)
 
bool has_overridden_loop () const
 
const LogString * get_component_log_str () const ESPHOME_ALWAYS_INLINE
 Get the integration where this component was declared as a LogString for logging.
 
bool should_warn_of_blocking (uint32_t blocking_time, uint32_t &threshold_ms_out)
 

Data Fields

int y_start
 
int int w
 
int int int h
 
int int int const uint8_t * ptr
 
int int int const uint8_t ColorOrder order
 
int int int const uint8_t ColorOrder ColorBitness bitness
 
int int int const uint8_t ColorOrder ColorBitness bool big_endian
 
int int int const uint8_t ColorOrder ColorBitness bool int x_offset
 
int int int const uint8_t ColorOrder ColorBitness bool int int y_offset
 
int int int const uint8_t ColorOrder ColorBitness bool int int int x_pad
 
- Data Fields inherited from esphome::Component
uint32_t length = 5000)
 

Protected Member Functions

virtual void draw_pixels_internal (int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad)
 Draws a block for draw_pixels_at(); the parameters are the same.
 
bool clamp_x_ (int x, int w, int &min_x, int &max_x)
 
bool clamp_y_ (int y, int h, int &min_y, int &max_y)
 
void vprintf_ (int x, int y, BaseFont *font, Color color, Color background, TextAlign align, const char *format, va_list arg)
 
void do_update_ ()
 
void clear_clipping_ ()
 
void ESPHOME_ALWAYS_INLINE feed_wdt_per_pixel_ ()
 Watchdog feed for per pixel loops.
 
void feed_wdt_pixel_slow_ ()
 
virtual int get_height_internal ()=0
 
virtual int get_width_internal ()=0
 
void filled_flat_side_triangle_ (int x1, int y1, int x2, int y2, int x3, int y3, Color color)
 This method fills a triangle using only integer variables by using a modified bresenham algorithm.
 
void sort_triangle_points_by_y_ (int *x1, int *y1, int *x2, int *y2, int *x3, int *y3)
 
- Protected Member Functions inherited from esphome::Component
friend void::setup ()
 
friend void::original_setup ()
 
void set_component_source_ (uint8_t index)
 Set where this component was loaded from for some debug messages.
 
void call_dump_config_ ()
 
void enable_loop_slow_path_ ()
 
void set_component_state_ (uint8_t state)
 Helper to set component state (clears state bits and sets new state)
 
bool set_status_flag_ (uint8_t flag)
 Helper to set a status LED flag on both this component and the app.
 
bool set_error_flag_ (const LogString *message)
 Set the error flag and log it; true when it was not set before.
 
void set_interval (const char *name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a const char* name.
 
void set_interval (uint32_t id, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a numeric ID (zero heap allocation).
 
void set_interval (InternalSchedulerID id, uint32_t interval, std::function< void()> &&f)
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const char *name)
 Cancel an interval function.
 
bool cancel_interval (uint32_t id)
 
bool cancel_interval (InternalSchedulerID id)
 
void set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a const char* name.
 
void set_timeout (uint32_t id, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a numeric ID (zero heap allocation).
 
void set_timeout (InternalSchedulerID id, uint32_t timeout, std::function< void()> &&f)
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const char *name)
 Cancel a timeout function.
 
bool cancel_timeout (uint32_t id)
 
bool cancel_timeout (InternalSchedulerID id)
 
void defer (const char *name, std::function< void()> &&f)
 Defer a callback to the next loop() call with a const char* name.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (uint32_t id, std::function< void()> &&f)
 Defer a callback with a numeric ID (zero heap allocation)
 
bool cancel_defer (const char *name)
 Cancel a defer callback using the specified name, name must not be empty.
 
bool cancel_defer (uint32_t id)
 
void status_clear_warning_slow_path_ ()
 
void status_clear_error_slow_path_ ()
 

Protected Attributes

DisplayRotation rotation_ {DISPLAY_ROTATION_0_DEGREES}
 
display_writer_t writer_ {}
 
DisplayPage * page_ {nullptr}
 
StaticCallbackManager< DISPLAY_PAGE_CHANGE_CALLBACK_COUNT, void(DisplayPage *, DisplayPage *)> page_change_callback_
 
bool auto_clear_enabled_ {true}
 
std::vector< Rect > clipping_rectangle_
 
uint8_t wdt_pixel_counter_ {0}
 
bool show_test_card_ {false}
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- Protected Attributes inherited from esphome::Component
uint8_t component_source_index_ {0}
 Index into component source PROGMEM lookup table (0 = not set)
 
uint8_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_CS}
 Warn threshold in centiseconds (max 2550ms)
 
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bit 5: Has overridden loop() (set at registration time) Bits 6-7: Unused - reserved for future expansion.
 
volatile bool pending_enable_loop_ {false}
 ISR-safe flag for enable_loop_soon_any_context.
 
ComponentRuntimeStats runtime_stats_
 

Detailed Description

Definition at line 328 of file display.h.

Member Function Documentation

◆ add_on_page_change_callback()

template<typename F >
void esphome::display::Display::add_on_page_change_callback ( F && callback)
inline

Definition at line 740 of file display.h.

◆ circle()

void HOT esphome::display::Display::circle ( int center_x,
int center_xy,
int radius,
Color color = COLOR_ON )

Draw the outline of a circle centered around [center_x,center_y] with the radius radius with the given color.

Definition at line 180 of file display.cpp.

◆ clamp_x_()

bool esphome::display::Display::clamp_x_ ( int x,
int w,
int & min_x,
int & max_x )
protected

Definition at line 846 of file display.cpp.

◆ clamp_y_()

bool esphome::display::Display::clamp_y_ ( int y,
int h,
int & min_y,
int & max_y )
protected

Definition at line 862 of file display.cpp.

◆ clear()

void esphome::display::Display::clear ( )
virtual

Clear the entire screen by filling it with OFF pixels.

Reimplemented in esphome::epaper_spi::EPaper4bpp, esphome::epaper_spi::EPaperBase, esphome::epaper_spi::EPaperInkplate2, esphome::epaper_spi::EPaperWeAct3C, and esphome::it8951::IT8951Display.

Definition at line 17 of file display.cpp.

◆ clear_clipping_()

void esphome::display::Display::clear_clipping_ ( )
protected

Definition at line 834 of file display.cpp.

◆ clip()

bool esphome::display::Display::clip ( int x,
int y )

Check if pixel is within region of display.

Definition at line 838 of file display.cpp.

◆ do_update_()

void esphome::display::Display::do_update_ ( )
protected

Definition at line 756 of file display.cpp.

◆ draw_pixel_at() [1/2]

void esphome::display::Display::draw_pixel_at ( int x,
int y )
inline

Set a single pixel at the specified coordinates to default color.

Definition at line 346 of file display.h.

◆ draw_pixel_at() [2/2]

◆ draw_pixels_at() [1/2]

void esphome::display::Display::draw_pixels_at ( int x_start,
int y_start,
int w,
int h,
const uint8_t * ptr,
ColorBitness bitness,
bool big_endian )
inline

Convenience overload for base case where the pixels are packed into the buffer with no gaps (e.g. suits LVGL.)

Definition at line 376 of file display.h.

◆ draw_pixels_at() [2/2]

void esphome::display::Display::draw_pixels_at ( int x_start,
int y_start,
int w,
int h,
const uint8_t * ptr,
ColorBitness bitness,
bool big_endian,
int x_offset,
int y_offset,
int x_pad )
inline

Given an array of pixels encoded in the nominated format, draw these into the display's buffer.

The parameters describe a rectangular block of pixels, potentially within a larger buffer.

Parameters
x_startThe starting destination x position
y_startThe starting destination y position
wthe width of the pixel block
hthe height of the pixel block
ptrA pointer to the start of the data to be copied
bitnessDefines the number of bits and their format for each pixel. Red is always in the most significant bits.
big_endianTrue if 16 bit values are stored big-endian. Ignored for 888, which is always b,g,r in memory, as LVGL and ESPHome images store it.
x_offsetThe initial x-offset into the source buffer.
y_offsetThe initial y-offset into the source buffer.
x_padHow many pixels are in each line after the end of the pixels to be copied.

The length of each source buffer line (stride) will be x_offset + w + x_pad. The block must lie on the screen. A driver that can copy blocks itself overrides draw_pixels_internal().

Definition at line 370 of file display.h.

◆ draw_pixels_internal()

void esphome::display::Display::draw_pixels_internal ( int x_start,
int y_start,
int w,
int h,
const uint8_t * ptr,
ColorBitness bitness,
bool big_endian,
int x_offset,
int y_offset,
int x_pad )
protectedvirtual

◆ end_clipping()

void esphome::display::Display::end_clipping ( )

Reset the invalidation region.

Definition at line 802 of file display.cpp.

◆ ESPDEPRECATED() [1/2]

esphome::display::Display::ESPDEPRECATED ( "Pixels are always RGB,
drop the ColorOrder argument. Removed in 2027.5.0" ,
"2026.11.0"  )

◆ ESPDEPRECATED() [2/2]

esphome::display::Display::ESPDEPRECATED ( "Pixels are always RGB: call draw_pixels_at() without the ColorOrder,
and override draw_pixels_internal() " "to copy blocks. Removed in 2027.5.0" ,
"2026.11.0"  )

The block form above with a color order.

The base version draws per pixel and honors the order; a driver that still overrides this one keeps receiving every block, since draw_pixels_internal() calls it. Such a driver needs using display::Display::draw_pixels_at; so the forms above stay visible through it, and its fallback must call Display::draw_pixels_at() with the order: Display::draw_pixels_internal() would call the override again.

◆ extend_clipping() [1/2]

void esphome::display::Display::extend_clipping ( int16_t left,
int16_t top,
int16_t right,
int16_t bottom )
inline

Definition at line 781 of file display.h.

◆ extend_clipping() [2/2]

void esphome::display::Display::extend_clipping ( Rect rect)

Add a rectangular region to the invalidation region.

  • This is usually called when an element has been modified
Parameters
[in]rectRectangle to add to the invalidation region

Definition at line 810 of file display.cpp.

◆ feed_wdt_per_pixel_()

void ESPHOME_ALWAYS_INLINE esphome::display::Display::feed_wdt_per_pixel_ ( )
inlineprotected

Watchdog feed for per pixel loops.

App.feed_wdt() is already rate limited, but every call reads the clock; only every 256th pixel makes that call, so the real feeds are unchanged and a pixel costs a counter. At 20 us per pixel on the slowest e-paper path that is about 5 ms between clock reads.

Definition at line 845 of file display.h.

◆ feed_wdt_pixel_slow_()

void esphome::display::Display::feed_wdt_pixel_slow_ ( )
protected

Definition at line 836 of file display.cpp.

◆ fill()

◆ filled_circle()

void esphome::display::Display::filled_circle ( int center_x,
int center_y,
int radius,
Color color = COLOR_ON )

Fill a circle centered around [center_x,center_y] with the radius radius with the given color.

Definition at line 204 of file display.cpp.

◆ filled_flat_side_triangle_()

void esphome::display::Display::filled_flat_side_triangle_ ( int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
Color color )
protected

This method fills a triangle using only integer variables by using a modified bresenham algorithm.

It is mandatory that [x2,y2] and [x3,y3] lie on the same horizontal line, so y2 must be equal to y3.

Definition at line 403 of file display.cpp.

◆ filled_gauge()

void esphome::display::Display::filled_gauge ( int center_x,
int center_y,
int radius1,
int radius2,
int progress,
Color color = COLOR_ON )

Fill a half-ring "gauge" centered around [center_x,center_y] between two circles with the radius1 and radius2 with he given color and filled up to 'progress' percent.

Definition at line 288 of file display.cpp.

◆ filled_rectangle()

void esphome::display::Display::filled_rectangle ( int x1,
int y1,
int width,
int height,
Color color = COLOR_ON )

Fill a rectangle with the top left point at [x1,y1] and the bottom right point at [x1+width,y1+height].

Definition at line 173 of file display.cpp.

◆ filled_regular_polygon() [1/3]

void esphome::display::Display::filled_regular_polygon ( int x,
int y,
int radius,
int edges,
Color color )

Definition at line 568 of file display.cpp.

◆ filled_regular_polygon() [2/3]

void esphome::display::Display::filled_regular_polygon ( int x,
int y,
int radius,
int edges,
RegularPolygonVariation variation,
Color color )

Definition at line 563 of file display.cpp.

◆ filled_regular_polygon() [3/3]

void esphome::display::Display::filled_regular_polygon ( int x,
int y,
int radius,
int edges,
RegularPolygonVariation variation = VARIATION_POINTY_TOP,
float rotation_degrees = ROTATION_0_DEGREES,
Color color = COLOR_ON )

Fill a regular polygon inscribed in the circle centered on [x,y] with the given radius and color.

Use the edges constants (e.g.: EDGES_HEXAGON) or any integer to specify the number of edges of the polygon. Use the variation to switch between the flat-topped or the pointy-topped variation of the polygon. Use the rotation in degrees to rotate the shape clockwise.

Definition at line 558 of file display.cpp.

◆ filled_ring()

void esphome::display::Display::filled_ring ( int center_x,
int center_y,
int radius1,
int radius2,
Color color = COLOR_ON )

Fill a ring centered around [center_x,center_y] between two circles with the radius1 and radius2 with the given color.

Definition at line 231 of file display.cpp.

◆ filled_triangle()

void esphome::display::Display::filled_triangle ( int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
Color color = COLOR_ON )

Fill a triangle contained between the points [x1,y1], [x2,y2] and [x3,y3] with the given color.

Definition at line 486 of file display.cpp.

◆ get_active_page()

const DisplayPage * esphome::display::Display::get_active_page ( ) const
inline

Definition at line 737 of file display.h.

◆ get_clipping()

Rect esphome::display::Display::get_clipping ( ) const

Get the current the clipping rectangle.

return rect for active clipping region

Definition at line 826 of file display.cpp.

◆ get_display_type()

◆ get_height()

◆ get_height_internal()

virtual int esphome::display::Display::get_height_internal ( )
protectedpure virtual

Implemented in esphome::addressable_light::AddressableLightDisplay, esphome::epaper_spi::EPaperBase, esphome::hub75::HUB75Display, esphome::ili9xxx::ILI9XXXDisplay, esphome::inkplate::Inkplate, esphome::it8951::IT8951Display, esphome::max7219digit::MAX7219Component, esphome::mipi_dsi::MipiDsi, esphome::mipi_rgb::MipiRgb, esphome::mipi_spi::MipiSpi< BUFFERTYPE, BUFFERPIXEL, IS_BIG_ENDIAN, DISPLAYPIXEL, BUS_TYPE, WIDTH, HEIGHT, OFFSET_WIDTH, OFFSET_HEIGHT, PAD_WIDTH, PAD_HEIGHT, MADCTL, HAS_HARDWARE_ROTATION >, esphome::pcd8544::PCD8544, esphome::pixoo::Pixoo, esphome::qspi_dbi::QspiDbi, esphome::rpi_dpi_rgb::RpiDpiRgb, esphome::sdl::Sdl, esphome::sh1122_base::SH1122, esphome::snapshot::SnapshotDisplay, esphome::ssd1306_base::SSD1306, esphome::ssd1322_base::SSD1322, esphome::ssd1325_base::SSD1325, esphome::ssd1327_base::SSD1327, esphome::ssd1331_base::SSD1331, esphome::ssd1351_base::SSD1351, esphome::st7305::ST7305, esphome::st7567_base::ST7567, esphome::st7701s::ST7701S, esphome::st7735::ST7735, esphome::st7789v::ST7789V, esphome::st7920::ST7920, esphome::waveshare_epaper::GDEW0154M09, esphome::waveshare_epaper::GDEW029T5, esphome::waveshare_epaper::GDEY029T94, esphome::waveshare_epaper::GDEY042T81, esphome::waveshare_epaper::GDEY0583T81, esphome::waveshare_epaper::WaveshareEPaper13P3InK, esphome::waveshare_epaper::WaveshareEPaper1P54InBV2, esphome::waveshare_epaper::WaveshareEPaper2P13InDKE, esphome::waveshare_epaper::WaveshareEPaper2P13InV3, esphome::waveshare_epaper::WaveshareEPaper2P7In, esphome::waveshare_epaper::WaveshareEPaper2P7InB, esphome::waveshare_epaper::WaveshareEPaper2P7InBV2, esphome::waveshare_epaper::WaveshareEPaper2P7InV2, esphome::waveshare_epaper::WaveshareEPaper2P9InB, esphome::waveshare_epaper::WaveshareEPaper2P9InBV3, esphome::waveshare_epaper::WaveshareEPaper2P9InD, esphome::waveshare_epaper::WaveshareEPaper2P9InDKE, esphome::waveshare_epaper::WaveshareEPaper2P9InV2R2, esphome::waveshare_epaper::WaveshareEPaper4P2In, esphome::waveshare_epaper::WaveshareEPaper4P2InBV2, esphome::waveshare_epaper::WaveshareEPaper4P2InBV2BWR, esphome::waveshare_epaper::WaveshareEPaper5P65InF, esphome::waveshare_epaper::WaveshareEPaper5P8In, esphome::waveshare_epaper::WaveshareEPaper5P8InV2, esphome::waveshare_epaper::WaveshareEPaper7P3InF, esphome::waveshare_epaper::WaveshareEPaper7P5In, esphome::waveshare_epaper::WaveshareEPaper7P5InBC, esphome::waveshare_epaper::WaveshareEPaper7P5InBV2, esphome::waveshare_epaper::WaveshareEPaper7P5InBV3, esphome::waveshare_epaper::WaveshareEPaper7P5InBV3BWR, esphome::waveshare_epaper::WaveshareEPaper7P5InHDB, esphome::waveshare_epaper::WaveshareEPaper7P5InV2, esphome::waveshare_epaper::WaveshareEPaper7P5InV2P, and esphome::waveshare_epaper::WaveshareEPaperTypeA.

◆ get_native_height()

int esphome::display::Display::get_native_height ( )
inline

Get the native (original) height of the display in pixels.

Definition at line 343 of file display.h.

◆ get_native_width()

int esphome::display::Display::get_native_width ( )
inline

Get the native (original) width of the display in pixels.

Definition at line 341 of file display.h.

◆ get_regular_polygon_vertex()

void HOT esphome::display::Display::get_regular_polygon_vertex ( int vertex_id,
int * vertex_x,
int * vertex_y,
int center_x,
int center_y,
int radius,
int edges,
RegularPolygonVariation variation = VARIATION_POINTY_TOP,
float rotation_degrees = ROTATION_0_DEGREES )

Get the specified vertex (x,y) coordinates for the regular polygon inscribed in the circle centered on [center_x,center_y] with the given radius.

Vertex id are 0-indexed and rotate clockwise. In a pointy-topped variation of a polygon with a 0° rotation, the vertex #0 is located at the top of the polygon. In a flat-topped variation of a polygon with a 0° rotation, the vertex #0 is located on the left-side of the horizontal top edge, and the vertex #1 is located on the right-side of the horizontal top edge. Use the edges constants (e.g.: EDGES_HEXAGON) or any integer to specify the number of edges of the polygon. Use the variation to switch between the flat-topped or the pointy-topped variation of the polygon. Use the rotation in degrees to rotate the shape clockwise.

Definition at line 504 of file display.cpp.

◆ get_rotation()

virtual DisplayRotation esphome::display::Display::get_rotation ( ) const
inlinevirtual

Reimplemented in esphome::hub75::HUB75Display.

Definition at line 751 of file display.h.

◆ get_text_bounds()

void esphome::display::Display::get_text_bounds ( int x,
int y,
const char * text,
BaseFont * font,
TextAlign align,
int * x1,
int * y1,
int * width,
int * height )

Get the text bounds of the given string.

Parameters
xThe x coordinate to place the string at, can be 0 if only interested in dimensions.
yThe y coordinate to place the string at, can be 0 if only interested in dimensions.
textThe text to measure.
fontThe font to measure the text bounds with.
alignThe alignment of the text. Set to TextAlign::TOP_LEFT if only interested in dimensions.
x1A pointer to store the returned x coordinate of the upper left corner in.
y1A pointer to store the returned y coordinate of the upper left corner in.
widthA pointer to store the returned text width in.
heightA pointer to store the returned text height in.

Definition at line 640 of file display.cpp.

◆ get_width()

◆ get_width_internal()

virtual int esphome::display::Display::get_width_internal ( )
protectedpure virtual

Implemented in esphome::addressable_light::AddressableLightDisplay, esphome::epaper_spi::EPaperBase, esphome::hub75::HUB75Display, esphome::ili9xxx::ILI9XXXDisplay, esphome::inkplate::Inkplate, esphome::it8951::IT8951Display, esphome::max7219digit::MAX7219Component, esphome::mipi_dsi::MipiDsi, esphome::mipi_rgb::MipiRgb, esphome::mipi_spi::MipiSpi< BUFFERTYPE, BUFFERPIXEL, IS_BIG_ENDIAN, DISPLAYPIXEL, BUS_TYPE, WIDTH, HEIGHT, OFFSET_WIDTH, OFFSET_HEIGHT, PAD_WIDTH, PAD_HEIGHT, MADCTL, HAS_HARDWARE_ROTATION >, esphome::pcd8544::PCD8544, esphome::pixoo::Pixoo, esphome::qspi_dbi::QspiDbi, esphome::rpi_dpi_rgb::RpiDpiRgb, esphome::sdl::Sdl, esphome::sh1122_base::SH1122, esphome::snapshot::SnapshotDisplay, esphome::ssd1306_base::SSD1306, esphome::ssd1322_base::SSD1322, esphome::ssd1325_base::SSD1325, esphome::ssd1327_base::SSD1327, esphome::ssd1331_base::SSD1331, esphome::ssd1351_base::SSD1351, esphome::st7305::ST7305, esphome::st7567_base::ST7567, esphome::st7701s::ST7701S, esphome::st7735::ST7735, esphome::st7789v::ST7789V, esphome::st7920::ST7920, esphome::waveshare_epaper::GDEW0154M09, esphome::waveshare_epaper::GDEW029T5, esphome::waveshare_epaper::GDEY029T94, esphome::waveshare_epaper::GDEY042T81, esphome::waveshare_epaper::GDEY0583T81, esphome::waveshare_epaper::WaveshareEPaper13P3InK, esphome::waveshare_epaper::WaveshareEPaper1P54InBV2, esphome::waveshare_epaper::WaveshareEPaper2P13InDKE, esphome::waveshare_epaper::WaveshareEPaper2P13InV3, esphome::waveshare_epaper::WaveshareEPaper2P7In, esphome::waveshare_epaper::WaveshareEPaper2P7InB, esphome::waveshare_epaper::WaveshareEPaper2P7InBV2, esphome::waveshare_epaper::WaveshareEPaper2P7InV2, esphome::waveshare_epaper::WaveshareEPaper2P9InB, esphome::waveshare_epaper::WaveshareEPaper2P9InBV3, esphome::waveshare_epaper::WaveshareEPaper2P9InD, esphome::waveshare_epaper::WaveshareEPaper2P9InDKE, esphome::waveshare_epaper::WaveshareEPaper2P9InV2R2, esphome::waveshare_epaper::WaveshareEPaper4P2In, esphome::waveshare_epaper::WaveshareEPaper4P2InBV2, esphome::waveshare_epaper::WaveshareEPaper4P2InBV2BWR, esphome::waveshare_epaper::WaveshareEPaper5P65InF, esphome::waveshare_epaper::WaveshareEPaper5P8In, esphome::waveshare_epaper::WaveshareEPaper5P8InV2, esphome::waveshare_epaper::WaveshareEPaper7P3InF, esphome::waveshare_epaper::WaveshareEPaper7P5In, esphome::waveshare_epaper::WaveshareEPaper7P5InBC, esphome::waveshare_epaper::WaveshareEPaper7P5InBV2, esphome::waveshare_epaper::WaveshareEPaper7P5InBV3, esphome::waveshare_epaper::WaveshareEPaper7P5InBV3BWR, esphome::waveshare_epaper::WaveshareEPaper7P5InHDB, esphome::waveshare_epaper::WaveshareEPaper7P5InV2, esphome::waveshare_epaper::WaveshareEPaper7P5InV2P, and esphome::waveshare_epaper::WaveshareEPaperTypeA.

◆ graph()

void esphome::display::Display::graph ( int x,
int y,
graph::Graph * graph,
Color color_on = COLOR_ON )

Draw the graph with the top-left corner at [x,y] to the screen.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
graphThe graph id to draw
color_onThe color to replace in binary images for the on bits.

Definition at line 623 of file display.cpp.

◆ horizontal_line()

void HOT esphome::display::Display::horizontal_line ( int x,
int y,
int width,
Color color = COLOR_ON )

Draw a horizontal line from the point [x,y] to [x+width,y] with the given color.

Definition at line 154 of file display.cpp.

◆ image() [1/2]

void esphome::display::Display::image ( int x,
int y,
BaseImage * image,
Color color_on = COLOR_ON,
Color color_off = COLOR_OFF )

Draw the image with the top-left corner at [x,y] to the screen.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
imageThe image to draw.
color_onThe color to replace in binary images for the on bits.
color_offThe color to replace in binary images for the off bits.

Definition at line 587 of file display.cpp.

◆ image() [2/2]

void esphome::display::Display::image ( int x,
int y,
BaseImage * image,
ImageAlign align,
Color color_on = COLOR_ON,
Color color_off = COLOR_OFF )

Draw the image at [x,y] to the screen.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
imageThe image to draw.
alignThe alignment of the image.
color_onThe color to replace in binary images for the on bits.
color_offThe color to replace in binary images for the off bits.

Definition at line 591 of file display.cpp.

◆ is_clipping()

bool esphome::display::Display::is_clipping ( ) const
inline

Definition at line 805 of file display.h.

◆ is_point_clipped()

bool ESPHOME_ALWAYS_INLINE esphome::display::Display::is_point_clipped ( int x,
int y ) const
inline

Whether (x, y) falls outside the active clipping rectangle.

Tests the stack top in place: get_clipping() is out of line and returns the Rect by value, which per pixel drawing cannot afford.

Definition at line 810 of file display.h.

◆ legend()

void esphome::display::Display::legend ( int x,
int y,
graph::Graph * graph,
Color color_on = COLOR_ON )

Draw the legend for graph with the top-left corner at [x,y] to the screen.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
graphThe graph id for which the legend applies to
graphThe graph id for which the legend applies to
graphThe graph id for which the legend applies to
name_fontThe font used for the trace name
value_fontThe font used for the trace value and units
color_onThe color of the border

Definition at line 624 of file display.cpp.

◆ line()

void HOT esphome::display::Display::line ( int x1,
int y1,
int x2,
int y2,
Color color = COLOR_ON )

Draw a straight line from the point [x1,y1] to [x2,y2] with the given color.

Definition at line 20 of file display.cpp.

◆ line_at_angle() [1/2]

void esphome::display::Display::line_at_angle ( int x,
int y,
int angle,
int length,
Color color = COLOR_ON )

Draw a straight line at the given angle based on the origin [x, y] for a specified length with the given color.

Definition at line 41 of file display.cpp.

◆ line_at_angle() [2/2]

void esphome::display::Display::line_at_angle ( int x,
int y,
int angle,
int start_radius,
int stop_radius,
Color color = COLOR_ON )

Draw a straight line at the given angle based on the origin [x, y] from a specified start and stop radius with the given color.

Definition at line 45 of file display.cpp.

◆ menu()

void esphome::display::Display::menu ( int x,
int y,
graphical_display_menu::GraphicalDisplayMenu * menu,
int width,
int height )
Parameters
xThe x coordinate of the upper left corner
yThe y coordinate of the upper left corner
menuThe GraphicalDisplayMenu to draw
widthWidth of the menu
heightHeight of the menu

Definition at line 634 of file display.cpp.

◆ pixel_axes_swapped()

virtual bool esphome::display::Display::pixel_axes_swapped ( ) const
inlinevirtual

True when draw_pixel_at() swaps x and y before writing, so pixels that are neighbours along x land a row apart in the frame buffer.

Not the same as get_width()/get_height() swapping: a display that rotates in hardware reports swapped dimensions but writes unswapped pixels.

Reimplemented in esphome::epaper_spi::EPaperBase, esphome::it8951::IT8951Display, and esphome::mipi_spi::MipiSpiBuffer< BUFFERTYPE, BUFFERPIXEL, IS_BIG_ENDIAN, DISPLAYPIXEL, BUS_TYPE, WIDTH, HEIGHT, OFFSET_WIDTH, OFFSET_HEIGHT, PAD_WIDTH, PAD_HEIGHT, MADCTL, HAS_HARDWARE_ROTATION, FRACTION, ROUNDING >.

Definition at line 757 of file display.h.

◆ print() [1/4]

void esphome::display::Display::print ( int x,
int y,
BaseFont * font,
Color color,
const char * text,
Color background = COLOR_OFF )

Print text with the top left at [x,y] with font.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
fontThe font to draw the text with.
colorThe color to draw the text with.
textThe text to draw.
backgroundWhen using multi-bit (anti-aliased) fonts, blend this background color into pixels

Definition at line 679 of file display.cpp.

◆ print() [2/4]

void esphome::display::Display::print ( int x,
int y,
BaseFont * font,
Color color,
TextAlign align,
const char * text,
Color background = COLOR_OFF )

Print text with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
colorThe color to draw the text with.
alignThe alignment of the text.
textThe text to draw.
backgroundWhen using multi-bit (anti-aliased) fonts, blend this background color into pixels

Definition at line 572 of file display.cpp.

◆ print() [3/4]

void esphome::display::Display::print ( int x,
int y,
BaseFont * font,
const char * text )

Print text with the top left at [x,y] with font.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
fontThe font to draw the text with.
textThe text to draw.

Definition at line 687 of file display.cpp.

◆ print() [4/4]

void esphome::display::Display::print ( int x,
int y,
BaseFont * font,
TextAlign align,
const char * text )

Print text with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
alignThe alignment of the text.
textThe text to draw.

Definition at line 683 of file display.cpp.

◆ printf() [1/5]

void esphome::display::Display::printf ( int x,
int y,
BaseFont * font,
Color color,
Color background,
TextAlign align,
const char * format,
... )

Evaluate the printf-format format and print the result with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
colorThe color to draw the text with.
backgroundThe background color to use for anti-aliasing
alignThe alignment of the text.
formatThe format to use.
...The arguments to use for the text formatting.

Definition at line 691 of file display.cpp.

◆ printf() [2/5]

void esphome::display::Display::printf ( int x,
int y,
BaseFont * font,
Color color,
const char * format,
... )

Evaluate the printf-format format and print the result with the top left at [x,y] with font.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
fontThe font to draw the text with.
colorThe color to draw the text with.
formatThe format to use.
...The arguments to use for the text formatting.

Definition at line 706 of file display.cpp.

◆ printf() [3/5]

void esphome::display::Display::printf ( int x,
int y,
BaseFont * font,
Color color,
TextAlign align,
const char * format,
... )

Evaluate the printf-format format and print the result with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
colorThe color to draw the text with.
alignThe alignment of the text.
formatThe format to use.
...The arguments to use for the text formatting.

Definition at line 699 of file display.cpp.

◆ printf() [4/5]

void esphome::display::Display::printf ( int x,
int y,
BaseFont * font,
const char * format,
... )

Evaluate the printf-format format and print the result with the top left at [x,y] with font.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
fontThe font to draw the text with.
formatThe format to use.
...The arguments to use for the text formatting.

Definition at line 720 of file display.cpp.

◆ printf() [5/5]

void esphome::display::Display::printf ( int x,
int y,
BaseFont * font,
TextAlign align,
const char * format,
... )

Evaluate the printf-format format and print the result with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
alignThe alignment of the text.
formatThe format to use.
...The arguments to use for the text formatting.

Definition at line 713 of file display.cpp.

◆ qr_code()

void esphome::display::Display::qr_code ( int x,
int y,
qr_code::QrCode * qr_code,
Color color_on = COLOR_ON,
int scale = 1 )

Draw the qr_code with the top-left corner at [x,y] to the screen.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
qr_codeThe qr_code to draw
color_onThe color to replace in binary images for the on bits.

Definition at line 628 of file display.cpp.

◆ rectangle()

void esphome::display::Display::rectangle ( int x1,
int y1,
int width,
int height,
Color color = COLOR_ON )

Draw the outline of a rectangle with the top left point at [x1,y1] and the bottom right point at [x1+width,y1+height].

Definition at line 166 of file display.cpp.

◆ regular_polygon() [1/3]

void HOT esphome::display::Display::regular_polygon ( int x,
int y,
int radius,
int edges,
Color color,
RegularPolygonDrawing drawing = DRAWING_OUTLINE )

Definition at line 554 of file display.cpp.

◆ regular_polygon() [2/3]

void HOT esphome::display::Display::regular_polygon ( int x,
int y,
int radius,
int edges,
RegularPolygonVariation variation,
Color color,
RegularPolygonDrawing drawing = DRAWING_OUTLINE )

Definition at line 549 of file display.cpp.

◆ regular_polygon() [3/3]

void HOT esphome::display::Display::regular_polygon ( int x,
int y,
int radius,
int edges,
RegularPolygonVariation variation = VARIATION_POINTY_TOP,
float rotation_degrees = ROTATION_0_DEGREES,
Color color = COLOR_ON,
RegularPolygonDrawing drawing = DRAWING_OUTLINE )

Draw the outline of a regular polygon inscribed in the circle centered on [x,y] with the given radius and color.

Use the edges constants (e.g.: EDGES_HEXAGON) or any integer to specify the number of edges of the polygon. Use the variation to switch between the flat-topped or the pointy-topped variation of the polygon. Use the rotation in degrees to rotate the shape clockwise. Use the drawing to switch between outlining or filling the polygon.

Definition at line 527 of file display.cpp.

◆ set_auto_clear()

void esphome::display::Display::set_auto_clear ( bool auto_clear_enabled)
inline

Definition at line 749 of file display.h.

◆ set_pages()

void esphome::display::Display::set_pages ( std::vector< DisplayPage * > pages)

Definition at line 729 of file display.cpp.

◆ set_rotation()

◆ set_writer()

void esphome::display::Display::set_writer ( display_writer_t && writer)

Internal method to set the display writer lambda.

Definition at line 727 of file display.cpp.

◆ show_next_page()

void esphome::display::Display::show_next_page ( )
inline

Definition at line 893 of file display.h.

◆ show_page()

void esphome::display::Display::show_page ( DisplayPage * page)

Definition at line 745 of file display.cpp.

◆ show_prev_page()

void esphome::display::Display::show_prev_page ( )
inline

Definition at line 894 of file display.h.

◆ show_test_card()

void esphome::display::Display::show_test_card ( )
inline

Definition at line 819 of file display.h.

◆ shrink_clipping() [1/2]

void esphome::display::Display::shrink_clipping ( Rect rect)

substract a rectangular region to the invalidation region

  • This is usually called when an element has been modified
Parameters
[in]rectRectangle to add to the invalidation region

Definition at line 818 of file display.cpp.

◆ shrink_clipping() [2/2]

void esphome::display::Display::shrink_clipping ( uint16_t left,
uint16_t top,
uint16_t right,
uint16_t bottom )
inline

Definition at line 791 of file display.h.

◆ sort_triangle_points_by_y_()

void esphome::display::Display::sort_triangle_points_by_y_ ( int * x1,
int * y1,
int * x2,
int * y2,
int * x3,
int * y3 )
protected

Definition at line 385 of file display.cpp.

◆ start_clipping() [1/2]

void esphome::display::Display::start_clipping ( int16_t left,
int16_t top,
int16_t right,
int16_t bottom )
inline

Definition at line 771 of file display.h.

◆ start_clipping() [2/2]

void esphome::display::Display::start_clipping ( Rect rect)

Set the clipping rectangle for further drawing.

Parameters
[in]rectPointer to Rect for clipping (or NULL for entire screen)

return true if success, false if error

Definition at line 794 of file display.cpp.

◆ strftime() [1/5]

void esphome::display::Display::strftime ( int x,
int y,
BaseFont * font,
Color color,
Color background,
TextAlign align,
const char * format,
ESPTime time )

Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
colorThe color to draw the text with.
backgroundThe background color to draw the text with.
alignThe alignment of the text.
formatThe format to use.
...The arguments to use for the text formatting.

Definition at line 770 of file display.cpp.

◆ strftime() [2/5]

void esphome::display::Display::strftime ( int x,
int y,
BaseFont * font,
Color color,
const char * format,
ESPTime time )

Evaluate the strftime-format format and print the result with the top left at [x,y] with font.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
fontThe font to draw the text with.
colorThe color to draw the text with.
formatThe strftime format to use.
timeThe time to format.

Definition at line 782 of file display.cpp.

◆ strftime() [3/5]

void esphome::display::Display::strftime ( int x,
int y,
BaseFont * font,
Color color,
TextAlign align,
const char * format,
ESPTime time )

Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
colorThe color to draw the text with.
alignThe alignment of the text.
formatThe strftime format to use.
timeThe time to format.

Definition at line 778 of file display.cpp.

◆ strftime() [4/5]

void esphome::display::Display::strftime ( int x,
int y,
BaseFont * font,
const char * format,
ESPTime time )

Evaluate the strftime-format format and print the result with the top left at [x,y] with font.

Parameters
xThe x coordinate of the upper left corner.
yThe y coordinate of the upper left corner.
fontThe font to draw the text with.
formatThe strftime format to use.
timeThe time to format.

Definition at line 790 of file display.cpp.

◆ strftime() [5/5]

void esphome::display::Display::strftime ( int x,
int y,
BaseFont * font,
TextAlign align,
const char * format,
ESPTime time )

Evaluate the strftime-format format and print the result with the anchor point at [x,y] with font.

Parameters
xThe x coordinate of the text alignment anchor point.
yThe y coordinate of the text alignment anchor point.
fontThe font to draw the text with.
alignThe alignment of the text.
formatThe strftime format to use.
timeThe time to format.

Definition at line 786 of file display.cpp.

◆ test_card()

void esphome::display::Display::test_card ( )

Definition at line 882 of file display.cpp.

◆ triangle()

void HOT esphome::display::Display::triangle ( int x1,
int y1,
int x2,
int y2,
int x3,
int y3,
Color color = COLOR_ON )

Draw the outline of a triangle contained between the points [x1,y1], [x2,y2] and [x3,y3] with the given color.

Definition at line 379 of file display.cpp.

◆ vertical_line()

void HOT esphome::display::Display::vertical_line ( int x,
int y,
int height,
Color color = COLOR_ON )

Draw a vertical line from the point [x,y] to [x,y+width] with the given color.

Definition at line 160 of file display.cpp.

◆ vprintf_()

void esphome::display::Display::vprintf_ ( int x,
int y,
BaseFont * font,
Color color,
Color background,
TextAlign align,
const char * format,
va_list arg )
protected

Definition at line 579 of file display.cpp.

Field Documentation

◆ auto_clear_enabled_

bool esphome::display::Display::auto_clear_enabled_ {true}
protected

Definition at line 869 of file display.h.

◆ big_endian

int int int const uint8_t ColorOrder ColorBitness bool esphome::display::Display::big_endian
Initial value:
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
int int int const uint8_t ColorOrder ColorBitness bitness
Definition display.h:392
int int int const uint8_t * ptr
Definition display.h:391
int int int const uint8_t ColorOrder order
Definition display.h:391
void draw_pixels_at(int x_start, int y_start, int w, int h, const uint8_t *ptr, ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad)
Given an array of pixels encoded in the nominated format, draw these into the display's buffer.
Definition display.h:370
int int int const uint8_t ColorOrder ColorBitness bool big_endian
Definition display.h:392
static void int x_start
Definition display.cpp:62

Definition at line 392 of file display.h.

◆ bitness

int int int const uint8_t ColorOrder ColorBitness esphome::display::Display::bitness

Definition at line 392 of file display.h.

◆ clipping_rectangle_

std::vector<Rect> esphome::display::Display::clipping_rectangle_
protected

Definition at line 870 of file display.h.

◆ h

int int int esphome::display::Display::h

Definition at line 391 of file display.h.

◆ order

int int int const uint8_t ColorOrder esphome::display::Display::order

Definition at line 391 of file display.h.

◆ page_

DisplayPage* esphome::display::Display::page_ {nullptr}
protected

Definition at line 865 of file display.h.

◆ page_change_callback_

StaticCallbackManager<DISPLAY_PAGE_CHANGE_CALLBACK_COUNT, void(DisplayPage *, DisplayPage *)> esphome::display::Display::page_change_callback_
protected

Definition at line 867 of file display.h.

◆ ptr

int int int const uint8_t * esphome::display::Display::ptr

Definition at line 391 of file display.h.

◆ rotation_

DisplayRotation esphome::display::Display::rotation_ {DISPLAY_ROTATION_0_DEGREES}
protected

Definition at line 863 of file display.h.

◆ show_test_card_

bool esphome::display::Display::show_test_card_ {false}
protected

Definition at line 872 of file display.h.

◆ w

int int esphome::display::Display::w

Definition at line 391 of file display.h.

◆ wdt_pixel_counter_

uint8_t esphome::display::Display::wdt_pixel_counter_ {0}
protected

Definition at line 871 of file display.h.

◆ writer_

display_writer_t esphome::display::Display::writer_ {}
protected

Definition at line 864 of file display.h.

◆ x_offset

int int int const uint8_t ColorOrder ColorBitness bool int esphome::display::Display::x_offset

Definition at line 392 of file display.h.

◆ x_pad

int int int const uint8_t ColorOrder ColorBitness bool int int int esphome::display::Display::x_pad

Definition at line 392 of file display.h.

◆ y_offset

int int int const uint8_t ColorOrder ColorBitness bool int int esphome::display::Display::y_offset

Definition at line 392 of file display.h.

◆ y_start

int esphome::display::Display::y_start

Definition at line 391 of file display.h.


The documentation for this class was generated from the following files: