Add display color inversion flag and logic for Feather TFT
This commit is contained in:
@@ -11,29 +11,34 @@ private:
|
||||
int height;
|
||||
bool initialized;
|
||||
uint16_t* rgb_buffer; // Persistent buffer for 1-bit to RGB565 conversion
|
||||
|
||||
bool invert_color; // If true, swap black/white
|
||||
|
||||
public:
|
||||
LowLevelDisplayST7796(const st7796_config* cfg, int w, int h);
|
||||
LowLevelDisplayST7796(const st7796_config* cfg, int w, int h, bool invert = false);
|
||||
~LowLevelDisplayST7796() override;
|
||||
|
||||
|
||||
// Core display operations - converts 1-bit to RGB565 internally
|
||||
bool init() override;
|
||||
void clear(bool white = true) override;
|
||||
void draw_pixel(int x, int y, bool white) override;
|
||||
void draw_buffer(const uint8_t* bit_buffer) override;
|
||||
void refresh() override;
|
||||
|
||||
|
||||
// Display properties
|
||||
int get_width() const override { return width; }
|
||||
int get_height() const override { return height; }
|
||||
DisplayType get_type() const override { return DISPLAY_TYPE_ST7796; }
|
||||
bool is_color() const override { return true; }
|
||||
|
||||
|
||||
// Backlight control
|
||||
void set_backlight(bool on) override;
|
||||
|
||||
|
||||
// Orientation control
|
||||
void set_rotation(uint8_t rotation) override;
|
||||
|
||||
// Color inversion control
|
||||
void set_invert_color(bool inv) { invert_color = inv; }
|
||||
bool get_invert_color() const { return invert_color; }
|
||||
};
|
||||
|
||||
#endif // LOW_LEVEL_DISPLAY_ST7796_H
|
||||
|
||||
Reference in New Issue
Block a user