From 58e7c97fbb05df63a47182a19ef812f3273d5808 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 25 Dec 2022 03:20:58 +0100 Subject: [PATCH] Added more functions --- src/tftespiimpl.h | 13 +++++++++++++ src/tftinterface.h | 19 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/tftespiimpl.h b/src/tftespiimpl.h index 931a7b8..f22f505 100644 --- a/src/tftespiimpl.h +++ b/src/tftespiimpl.h @@ -73,6 +73,19 @@ public: void pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data) { m_tft.pushImage(x, y, w, h, data); } void pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data, uint16_t transparent) { m_tft.pushImage(x, y, w, h, data, transparent); } + uint16_t decodeUTF8(const uint8_t *buf, uint16_t *index, uint16_t remaining) override { return m_tft.decodeUTF8(buf, index, remaining); } + uint16_t decodeUTF8(uint8_t c) override { return m_tft.decodeUTF8(c); } + + void setSwapBytes(bool swap) override { m_tft.setSwapBytes(swap); } + bool getSwapBytes(void) const override { return m_tft.getSwapBytes(); } + + void startWrite(void) override { m_tft.startWrite(); } + void writeColor(uint16_t color, uint32_t len) override { m_tft.writeColor(color, len); } + void endWrite(void) override { m_tft.endWrite(); } + + void pushColor(uint16_t color, uint32_t len) override { m_tft.pushColor(color, len); } + + void setAddrWindow(int32_t xs, int32_t ys, int32_t w, int32_t h) override { m_tft.setAddrWindow(xs, ys, w, h); } private: TFT_eSPI m_tft; }; diff --git a/src/tftinterface.h b/src/tftinterface.h index a629d4e..2a1d756 100644 --- a/src/tftinterface.h +++ b/src/tftinterface.h @@ -84,6 +84,25 @@ public: // These are used to render images or sprites stored in RAM arrays (used by Sprite class for 16bpp Sprites) virtual void pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data) = 0; virtual void pushImage(int32_t x, int32_t y, int32_t w, int32_t h, const uint16_t *data, uint16_t transparent) = 0; + + // Used by library and Smooth font class to extract Unicode point codes from a UTF8 encoded string + virtual uint16_t decodeUTF8(const uint8_t *buf, uint16_t *index, uint16_t remaining) = 0; + virtual uint16_t decodeUTF8(uint8_t c) = 0; + + // Swap the byte order for pushImage() and pushPixels() - corrects endianness + virtual void setSwapBytes(bool swap) = 0; + virtual bool getSwapBytes(void) const = 0; + + // Bare metal functions + virtual void startWrite(void) = 0; + virtual void writeColor(uint16_t color, uint32_t len) = 0; + virtual void endWrite(void) = 0; + + // Push (aka write pixel) colours to the set window + virtual void pushColor(uint16_t color, uint32_t len) = 0; + + // The TFT_eSprite class inherits the following functions (not all are useful to Sprite class + virtual void setAddrWindow(int32_t xs, int32_t ys, int32_t w, int32_t h) = 0; }; inline bool isLandscape(const TftInterface &tft)