41 #include "freertos/FreeRTOS.h" 43 #include "driver/spi_master.h" 50 #define TFT_CASET 0x2A 51 #define TFT_RASET 0x2B 52 #define TFT_RAMWR 0x2C 53 #define TFT_MADCTL 0x36 119 void begin(SPIClass * spi, gpio_num_t DC, gpio_num_t RESX = GPIO_UNUSED, gpio_num_t CS = GPIO_UNUSED);
140 void begin(SPIClass * spi,
int DC,
int RESX = -1,
int CS = -1);
162 void begin(
int SCK,
int MOSI,
int DC,
int RESX,
int CS,
int host);
193 void setResolution(
char const * modeline,
int viewPortWidth = -1,
int viewPortHeight = -1,
bool doubleBuffered =
false);
242 void readScreen(
Rect const & rect,
RGB888 * destBuf);
247 void reset() { hardReset(); softReset(); }
273 virtual void softReset() = 0;
275 virtual void setupOrientation();
278 int getBitmapSavePixelSize() {
return 2; }
286 void sendScreenBuffer(Rect updateRect);
287 void writeCommand(uint8_t cmd);
288 void writeByte(uint8_t
data);
289 void writeWord(uint16_t
data);
290 void writeData(
void *
data,
size_t size);
295 void SPIBeginWrite();
297 void SPIWriteByte(uint8_t
data);
298 void SPIWriteWord(uint16_t
data);
299 void SPIWriteBuffer(
void *
data,
size_t size);
301 void allocViewPort();
304 static void updateTaskFunc(
void * pvParameters);
307 void setPixelAt(PixelDesc
const & pixelDesc, Rect & updateRect);
310 void clear(Rect & updateRect);
313 void drawEllipse(Size
const & size, Rect & updateRect);
315 void VScroll(
int scroll, Rect & updateRect);
317 void HScroll(
int scroll, Rect & updateRect);
320 void drawGlyph(Glyph
const & glyph, GlyphOptions glyphOptions, RGB888 penColor, RGB888 brushColor, Rect & updateRect);
326 void invertRect(Rect
const & rect, Rect & updateRect);
329 void copyRect(Rect
const & source, Rect & updateRect);
332 void swapFGBG(Rect
const & rect, Rect & updateRect);
335 void absDrawLine(
int X1,
int Y1,
int X2,
int Y2, RGB888 color);
338 void rawFillRow(
int y,
int x1,
int x2, RGB888 color);
340 void rawFillRow(
int y,
int x1,
int x2, uint16_t pattern);
342 void swapRows(
int yA,
int yB,
int x1,
int x2);
344 void rawInvertRow(
int y,
int x1,
int x2);
347 void rawDrawBitmap_Native(
int destX,
int destY, Bitmap
const * bitmap,
int X1,
int Y1,
int XCount,
int YCount);
350 void rawDrawBitmap_Mask(
int destX,
int destY, Bitmap
const * bitmap,
void * saveBackground,
int X1,
int Y1,
int XCount,
int YCount);
353 void rawDrawBitmap_RGBA2222(
int destX,
int destY, Bitmap
const * bitmap,
void * saveBackground,
int X1,
int Y1,
int XCount,
int YCount);
356 void rawDrawBitmap_RGBA8888(
int destX,
int destY, Bitmap
const * bitmap,
void * saveBackground,
int X1,
int Y1,
int XCount,
int YCount);
363 spi_host_device_t m_SPIHost;
370 spi_device_handle_t m_SPIDevHandle;
372 uint16_t * * m_viewPort;
374 int16_t m_screenWidth;
375 int16_t m_screenHeight;
379 int16_t m_viewPortWidth;
380 int16_t m_viewPortHeight;
383 int16_t m_rot0ViewPortWidth;
384 int16_t m_rot0ViewPortHeight;
387 int16_t m_controllerWidth;
388 int16_t m_controllerHeight;
391 int16_t m_rotOffsetX;
392 int16_t m_rotOffsetY;
394 TaskHandle_t m_updateTaskHandle;
396 volatile int m_updateTaskFuncSuspended;
397 volatile bool m_updateTaskRunning;
400 bool m_reverseHorizontal;
Represents a 24 bit RGB color.
void reset()
Performs display hardware and software.
int screenCol()
Gets initial left column of the viewport.
NativePixelFormat nativePixelFormat()
Represents the native pixel format used by this display.
int screenRow()
Gets initial top row of the viewport.
void resumeBackgroundPrimitiveExecution()
Resumes drawings after suspendBackgroundPrimitiveExecution().
Base abstract class for TFT drivers with SPI connection.
void setScreenRow(int value)
Set initial top row of the viewport.
void suspendBackgroundPrimitiveExecution()
Suspends drawings.
This file contains fabgl::BitmappedDisplayController definition.
void setOrientation(TFTOrientation value, bool force=false)
Set display orientation and rotation.
This file contains some utility classes and functions.
TFTOrientation
This enum defines TFT orientation.
NativePixelFormat
This enum defines the display controller native pixel format.
void setResolution(char const *modeline, int viewPortWidth=-1, int viewPortHeight=-1, bool doubleBuffered=false)
Sets TFT resolution and viewport size.
This file contains FabGL library configuration settings, like number of supported colors...
void setReverseHorizontal(bool value)
Inverts horizontal axis.
void setScreenCol(int value)
Set initial left column of the viewport.
void begin()
Initializes TFT display controller.
int getViewPortWidth()
Determines horizontal size of the viewport.
int getViewPortHeight()
Determines vertical size of the viewport.