![]() |
Display_Lib_RPI 2.3.0
A C++ Library to connect electronic displays to Linux single board computers.
|
Class to handle fonts and graphics of color 16 bit display. More...
#include <color16_graphics_RDL.hpp>
Public Types | |
enum | pixel_color565_e : uint16_t { RDLC_BLACK = 0x0000 , RDLC_BLUE = 0x001F , RDLC_RED = 0xF800 , RDLC_GREEN = 0x07E0 , RDLC_CYAN = 0x07FF , RDLC_MAGENTA = 0xF81F , RDLC_YELLOW = 0xFFE0 , RDLC_WHITE = 0xFFFF , RDLC_TAN = 0xED01 , RDLC_GREY = 0x9CD1 , RDLC_BROWN = 0x6201 , RDLC_DGREEN = 0x01C0 , RDLC_ORANGE = 0xFC00 , RDLC_NAVY = 0x000F , RDLC_DCYAN = 0x03EF , RDLC_MAROON = 0x7800 , RDLC_PURPLE = 0x780F , RDLC_OLIVE = 0x7BE0 , RDLC_LGREY = 0xC618 , RDLC_DGREY = 0x7BEF , RDLC_GYELLOW = 0xAFE5 , RDLC_PINK = 0xFC18 , RDLC_LBLUE = 0x7E5F , RDLC_BEIGE = 0xB5D2 } |
16-bit color definitions (RGB565 format). More... | |
enum | display_rotate_e : uint8_t { Degrees_0 = 0 , Degrees_90 , Degrees_180 , Degrees_270 } |
![]() | |
enum | BaseNum : uint8_t { RDL_DEC = 10 , RDL_HEX = 16 , RDL_OCT = 8 , RDL_BIN = 2 } |
Public Member Functions | |
color16_graphics () | |
Construct a new graphics class object. | |
virtual void | setAddrWindow (uint16_t, uint16_t, uint16_t, uint16_t)=0 |
define in the sub class | |
void | fillScreen (uint16_t color) |
Fills the whole screen with a given color. | |
void | setCursor (int16_t x, int16_t y) |
Set the Cursor Position on screen. | |
void | drawPixel (uint16_t, uint16_t, uint16_t) |
Draw a pixel to screen. | |
rdlib::Return_Codes_e | drawDotGrid (int16_t x, int16_t y, int16_t w, int16_t h, uint8_t DotGridGap, uint16_t color) |
Draws a grid of dots on the screen starting from the given coordinates. This function draws a grid of pixels with a specified gap between them. It checks that the provided coordinates and dimensions are within the screen bounds and adjusts them if necessary. It also validates The grid of dots gap value and defaults it to 2 if invalid. | |
void | drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color) |
draws a line from (x0,y0) to (x1,y1). | |
rdlib::Return_Codes_e | drawFastVLine (uint16_t x, uint16_t y, uint16_t h, uint16_t color) |
Draws a vertical line starting at (x,y) with height h. | |
rdlib::Return_Codes_e | drawFastHLine (uint16_t x, uint16_t y, uint16_t w, uint16_t color) |
Draws a horizontal line starting at (x,y) with width w. | |
void | drawLineAngle (int16_t x, int16_t y, int angle, uint8_t start, uint8_t length, int offset, uint16_t color) |
Draws a line using an angle and length as parameters. This function draws a line starting from (x, y) , extending in the direction specified by angle , with a given length . The function also allows applying an offset to the angle before computing the line’s end coordinates. | |
void | drawRectWH (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color) |
draws rectangle at (x,y) where h is height and w is width of the rectangle. | |
rdlib::Return_Codes_e | fillRectangle (uint16_t, uint16_t, uint16_t, uint16_t, uint16_t) |
fills a rectangle starting from coordinates (x,y) with width of w and height of h. | |
void | fillRect (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color) |
fills a rectangle at (x,y) where h is height and w is width of the rectangle. | |
void | drawRoundRect (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t r, uint16_t color) |
draws a rectangle with rounded edges | |
void | fillRoundRect (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t r, uint16_t color) |
Fills a rectangle with rounded edges. | |
void | drawCircle (int16_t x0, int16_t y0, int16_t r, uint16_t color) |
draws a circle where (x0,y0) are center coordinates an r is circle radius. | |
void | fillCircle (int16_t x0, int16_t y0, int16_t r, uint16_t color) |
fills a circle where (x0,y0) are center coordinates an r is circle radius. | |
void | drawEllipse (int16_t cx, int16_t cy, int16_t semiMajorAxis, int16_t semiMinorAxis, bool fill, uint16_t color) |
Draw an ellipse on the display. This function uses the midpoint ellipse algorithm to efficiently draw an ellipse centered at (cx, cy) with the given semi-major (horizontal) and semi-minor (vertical) axes. | |
void | drawTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color) |
draws a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2). | |
void | fillTriangle (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color) |
Fills a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2). | |
void | drawQuadrilateral (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, uint16_t color) |
Draws a quadrilateral (four-sided polygon) by connecting four points with lines. This function draws a quadrilateral by drawing four lines between the given vertices. The lines are drawn in the order: (x0, y0) to (x1, y1), (x1, y1) to (x2, y2), (x2, y2) to (x3, y3), and finally (x3, y3) back to (x0, y0). | |
void | fillQuadrilateral (int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, uint16_t color, bool useTriangleSplit=true) |
Fills a quadrilateral with the specified color using triangles. This function fills a quadrilateral by dividing it into triangles and filling them individually. The quadrilateral is filled by calling the fillTriangle function three times with appropriate vertex coordinates. The useTriangleSplit parameter determines whether the quadrilateral is divided into two triangles or if only one triangle is used. | |
rdlib::Return_Codes_e | drawPolygon (int16_t x, int16_t y, uint8_t sides, int16_t diameter, float rotation, bool fill, uint16_t color) |
Draws a polygon with a specified number of sides, diameter, rotation, and color. This function draws a regular polygon by connecting points equally spaced around a circle, with each point having a distance defined by the diameter. The polygon is rotated by the given angle (in degrees) before being drawn. The number of sides is enforced to be at least 3. | |
void | drawSimpleArc (int16_t cx, int16_t cy, int16_t radius, float startAngle, float endAngle, uint16_t color) |
Draw a simple arc of one pixel on the display( no offsets , thickness or maximum arc calculations) This function draws an arc between two angles (start and end) on a circle with a given radius. | |
void | drawArc (uint16_t cx, uint16_t cy, uint16_t radius, uint16_t thickness, float startAngle, float endAngle, uint16_t color) |
Draw an arc on the TFT display. This function draws an arc between two angles (start and end) on a circle with a given radius. | |
float | getArcAngleMax () const |
Get the current maximum angle of the arc. | |
void | setArcAngleMax (float arcAngleMax) |
Set a new maximum angle for the arc. | |
int | getArcAngleOffset () const |
Get the current angle offset. | |
void | setArcAngleOffset (int arcAngleOffset) |
Set a new angle offset. | |
virtual size_t | write (uint8_t) override |
write method used in the print class when user calls print | |
rdlib::Return_Codes_e | writeChar (int16_t x, int16_t y, char value) |
Write 1 character on Display. | |
rdlib::Return_Codes_e | writeCharString (int16_t x, int16_t y, char *text) |
Write Text character array on display. | |
void | setTextWrap (bool w) |
turn on or off screen wrap of the text (fonts 1-6) | |
void | setTextColor (uint16_t c, uint16_t bg) |
Set text color foreground and background. | |
void | setTextColor (uint16_t c) |
Set text color foreground. | |
rdlib::Return_Codes_e | drawIcon (uint16_t x, uint16_t y, uint16_t w, uint16_t color, uint16_t bgcolor, const std::span< const uint8_t > data) |
Draws an custom Icon of X by 8 size to screen , where X = 0 to 127. | |
rdlib::Return_Codes_e | drawBitmap (uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color, uint16_t bgcolor, const std::span< const uint8_t > data) |
: Draws an bi-color bitmap to screen | |
rdlib::Return_Codes_e | drawBitmap24 (uint16_t x, uint16_t y, const std::span< const uint8_t > data, uint16_t w, uint16_t h) |
Draws an 24 bit color bitmap to screen from a data array. | |
rdlib::Return_Codes_e | drawBitmap16 (uint16_t x, uint16_t y, const std::span< const uint8_t > data, uint16_t w, uint16_t h) |
: Draws an 16 bit color bitmap to screen from a data array | |
rdlib::Return_Codes_e | drawSprite (uint16_t x, uint16_t y, const std::span< const uint8_t > data, uint16_t w, uint16_t h, uint16_t backgroundColor) |
: Draws an 16 bit color sprite bitmap to screen with transparent background | |
int16_t | Color565 (int16_t, int16_t, int16_t) |
: Convert: 24-bit color to 565 16-bit color | |
int | getDisplaySPIBlockSize () const |
Gets the maximum SPI transaction block size. | |
void | setDisplaySPIBlockSize (int size) |
Sets the maximum SPI transaction block size. | |
![]() | |
display_Fonts () | |
init the OLED font class object constructor | |
rdlib::Return_Codes_e | setFont (display_Font_name_e) |
SetFont. | |
void | setInvertFont (bool invertStatus) |
setInvertFont | |
bool | getInvertFont (void) |
getInvertFont | |
![]() | |
int | getWriteError () |
gets the error flag status, zero no error | |
void | clearWriteError () |
clears the error flag by setting it to zero | |
virtual size_t | write (const uint8_t *buffer, size_t size) |
define in the sub class | |
size_t | write (const char *str) |
Writes a string to the output. | |
size_t | write (const char *buffer, size_t size) |
Writes a buffer of a specified size to the output. | |
virtual int | availableForWrite () |
define in the sub class | |
size_t | print (const char[]) |
print an array | |
size_t | print (char) |
print an character | |
size_t | print (int, int=RDL_DEC) |
print an integer of base number system | |
size_t | print (unsigned int, int=RDL_DEC) |
print an unsigned integer of base number system | |
size_t | print (long, int=RDL_DEC) |
print an long integer of base number system | |
size_t | print (unsigned long, int=RDL_DEC) |
print an unsigned long integer of base number system | |
size_t | print (double, int=2) |
print an double | |
size_t | print (const std::string &) |
print an C++ string object | |
size_t | println (const char[]) |
Prints a character array followed by a newline. | |
size_t | println (char) |
print an character followed by new line | |
size_t | println (int, int=RDL_DEC) |
print an integer of base number system followed by new line | |
size_t | println (unsigned int, int=RDL_DEC) |
print an unsigned integer of base number system followed by new line | |
size_t | println (long, int=RDL_DEC) |
print an long integer of base number system followed by new line | |
size_t | println (unsigned long, int=RDL_DEC) |
print an unsigned long integer of base number system followed by new line | |
size_t | println (double, int=2) |
print an double | |
size_t | println (void) |
Goto to new line. | |
size_t | println (const std::string &s) |
print an C++ string object followed by new line | |
template<typename T > | |
size_t | print (const std::vector< T > &v, int format=defaultFormat< T >()) |
Print a vector of any type. | |
template<typename T > | |
size_t | println (const std::vector< T > &vec, int format=defaultFormat< T >()) |
Print a vector of elements followed by a newline. | |
template<typename T , size_t N> | |
size_t | print (const std::array< T, N > &arr, int format=defaultFormat< T >()) |
Print a std::array of any type. | |
template<typename T , size_t N> | |
size_t | println (const std::array< T, N > &arr, int format=defaultFormat< T >()) |
Print a std::array of elements followed by a newline. | |
Protected Member Functions | |
void | pushColor (uint16_t color) |
pushColor | |
void | writeCommand (uint8_t) |
: Write an SPI command to | |
void | writeData (uint8_t) |
Write an SPI data byte to device. | |
void | spiWrite (uint8_t) |
Write byte to SPI. | |
void | spiWriteDataBuffer (uint8_t *spidata, int len) |
Write a buffer to SPI, both Software and hardware SPI supported. | |
![]() | |
void | setWriteError (int err=0) |
Protected Attributes | |
bool | _textwrap = true |
uint16_t | _textcolor = 0xFFFF |
uint16_t | _textbgcolor = 0x0000 |
int16_t | _cursorX = 0 |
int16_t | _cursorY = 0 |
uint16_t | _width |
uint16_t | _height |
uint8_t | _XStart = 0 |
uint8_t | _YStart = 0 |
float | _arcAngleMax = 360.0f |
int | _arcAngleOffset = 0 |
int8_t | _Display_DC |
int8_t | _Display_RST |
int8_t | _Display_CS |
int8_t | _Display_SCLK |
int8_t | _Display_SDATA |
int8_t | _Display_MISO |
int | _DeviceNumGpioChip = 0 |
int | _GpioHandle = 0 |
bool | _hardwareSPI =true |
uint16_t | _HighFreqDelay = 0 |
int | _spiHandle = 0 |
![]() | |
std::span< const uint8_t > | _FontSelect = pFontDefault |
uint8_t | _Font_X_Size = 0x08 |
uint8_t | _Font_Y_Size = 0x08 |
uint8_t | _FontOffset = 0x20 |
uint8_t | _FontNumChars = 0x5F |
Private Attributes | |
int | _Display_SPI_BLK_SIZE = 65536 |
Class to handle fonts and graphics of color 16 bit display.
16-bit color definitions (RGB565 format).
: Convert: 24-bit color to 565 16-bit color
r | color red |
g | color green |
b | color blue |
void color16_graphics::drawArc | ( | uint16_t | cx, |
uint16_t | cy, | ||
uint16_t | radius, | ||
uint16_t | thickness, | ||
float | startAngle, | ||
float | endAngle, | ||
uint16_t | color | ||
) |
Draw an arc on the TFT display. This function draws an arc between two angles (start and end) on a circle with a given radius.
cx | X-coordinate of the center of the circle. |
cy | Y-coordinate of the center of the circle. |
radius | The radius of the circle. |
thickness | the thickness of the arc |
startAngle | The starting angle of the arc (in degrees). |
endAngle | The ending angle of the arc (in degrees). |
color | The color of the arc. |
variables _arcAngleMax and _arcAngleOffset which can be set by user with setters to define behaviour of arc. _arcAngleOffset is zero default, means 0 degree is positive X axis , Arc is drawn counterclockwise XXX 270 XXX 180 XXX 000 XXX 090 XXX This function uses a modified midpoint circle algorithm combined with scanline filling to efficiently draw an arc with a specified thickness. It calculates pixel positions using trigonometric boundary checks and slopes for accurate rendering. For more information, see: https://en.wikipedia.org/wiki/Midpoint_circle_algorithm
rdlib::Return_Codes_e color16_graphics::drawBitmap | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | h, | ||
uint16_t | color, | ||
uint16_t | bgcolor, | ||
const std::span< const uint8_t > | bitmap | ||
) |
: Draws an bi-color bitmap to screen
x | X coordinate |
y | Y coordinate |
w | width of the bitmap in pixels |
h | height of the bitmap in pixels |
color | bitmap foreground colors ,is bi-color |
bgcolor | bitmap background colors ,is bi-color |
bitmap | bitmap data, horizontally addressed. |
rdlib::Return_Codes_e color16_graphics::drawBitmap16 | ( | uint16_t | x, |
uint16_t | y, | ||
const std::span< const uint8_t > | bitmap, | ||
uint16_t | w, | ||
uint16_t | h | ||
) |
: Draws an 16 bit color bitmap to screen from a data array
x | X coordinate |
y | Y coordinate |
bitmap | databuffer containing Bitmap data |
w | width of the bitmap in pixels |
h | height of the bitmap in pixels |
rdlib::Return_Codes_e color16_graphics::drawBitmap24 | ( | uint16_t | x, |
uint16_t | y, | ||
const std::span< const uint8_t > | bitmap, | ||
uint16_t | w, | ||
uint16_t | h | ||
) |
Draws an 24 bit color bitmap to screen from a data array.
x | X coordinate |
y | Y coordinate |
bitmap | A span to the data buffer containing Bitmap data |
w | width of the bitmap in pixels |
h | height of the bitmap in pixels |
draws a circle where (x0,y0) are center coordinates an r is circle radius.
x0 | circle center x position |
y0 | circle center y position |
r | radius of circle |
color | The color of the circle , 565 16 Bit color |
rdlib::Return_Codes_e color16_graphics::drawDotGrid | ( | int16_t | x, |
int16_t | y, | ||
int16_t | w, | ||
int16_t | h, | ||
uint8_t | DotGridGap, | ||
uint16_t | color | ||
) |
Draws a grid of dots on the screen starting from the given coordinates. This function draws a grid of pixels with a specified gap between them. It checks that the provided coordinates and dimensions are within the screen bounds and adjusts them if necessary. It also validates The grid of dots gap value and defaults it to 2 if invalid.
x | The x-coordinate of the top-left corner where The grid of dots will start. |
y | The y-coordinate of the top-left corner where The grid of dots will start. |
w | The width of the area to draw The grid of dots, from the starting x-coordinate. |
h | The height of the area to draw The grid of dots, from the starting y-coordinate. |
DotGridGap | The gap between each dot gap line, controlling the spacing between drawn pixels. |
color | The color of the pixels to draw in The grid of dots. |
void color16_graphics::drawEllipse | ( | int16_t | cx, |
int16_t | cy, | ||
int16_t | semiMajorAxis, | ||
int16_t | semiMinorAxis, | ||
bool | fill, | ||
uint16_t | color | ||
) |
Draw an ellipse on the display. This function uses the midpoint ellipse algorithm to efficiently draw an ellipse centered at (cx, cy) with the given semi-major (horizontal) and semi-minor (vertical) axes.
cx | X-coordinate of the ellipse center. |
cy | Y-coordinate of the ellipse center. |
semiMajorAxis | Length of the semi-major axis (horizontal radius). |
semiMinorAxis | Length of the semi-minor axis (vertical radius). |
fill | if false draw Ellipse , if true fill it! |
color | 16-bit color value for the ellipse. |
rdlib::Return_Codes_e color16_graphics::drawFastHLine | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | color | ||
) |
Draws a horizontal line starting at (x,y) with width w.
x | The starting x coordinate |
y | The starting y coordinate |
w | The width of the line |
color | The color of the line 565 16 Bit color |
rdlib::Return_Codes_e color16_graphics::drawFastVLine | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | h, | ||
uint16_t | color | ||
) |
Draws a vertical line starting at (x,y) with height h.
x | The starting x coordinate |
y | The starting y coordinate |
h | The height of the line |
color | The color of the line 565 16 Bit color |
rdlib::Return_Codes_e color16_graphics::drawIcon | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | color, | ||
uint16_t | backcolor, | ||
const std::span< const uint8_t > | character | ||
) |
Draws an custom Icon of X by 8 size to screen , where X = 0 to 127.
x | X coordinate |
y | Y coordinate |
w | 0-MAX_Y possible values width of icon in pixels , height is fixed at 8 pixels |
color | icon foreground colors ,is bi-color |
backcolor | icon background colors ,is bi-color |
character | icon data vertically addressed. |
draws a line from (x0,y0) to (x1,y1).
x0 | x start coordinate |
y0 | y start coordinate |
x1 | x end coordinate |
y1 | y end coordinate |
color | color to fill rectangle 565 16-bit |
void color16_graphics::drawLineAngle | ( | int16_t | x, |
int16_t | y, | ||
int | angle, | ||
uint8_t | start, | ||
uint8_t | length, | ||
int | offset, | ||
uint16_t | color | ||
) |
Draws a line using an angle and length as parameters. This function draws a line starting from (x, y)
, extending in the direction specified by angle
, with a given length
. The function also allows applying an offset
to the angle before computing the line’s end coordinates.
x | The starting x-coordinate (horizontal position). |
y | The starting y-coordinate (vertical position). |
angle | The angle (in degrees) at which the line is drawn. |
start | calculates a new starting position by moving start units along the given angle. |
length | The length of the line. |
offset | An additional offset applied to the angle before calculating the endpoint. |
color | The color of the line (RGB565 format). |
Draw a pixel to screen.
x | Column co-ord |
y | row co-ord |
color | 565 16-bit |
rdlib::Return_Codes_e color16_graphics::drawPolygon | ( | int16_t | x, |
int16_t | y, | ||
uint8_t | sides, | ||
int16_t | diameter, | ||
float | rotation, | ||
bool | fill, | ||
uint16_t | color | ||
) |
Draws a polygon with a specified number of sides, diameter, rotation, and color. This function draws a regular polygon by connecting points equally spaced around a circle, with each point having a distance defined by the diameter. The polygon is rotated by the given angle (in degrees) before being drawn. The number of sides is enforced to be at least 3.
x | The x-coordinate of the center of the polygon. |
y | The y-coordinate of the center of the polygon. |
sides | The number of sides the polygon will have. Must be at least 3. |
diameter | The diameter of the circle inscribed by the polygon. |
rotation | The angle (in degrees) by which to rotate the polygon. |
fill | if false draw ,if true fill |
color | The color of the polygon edges. |
void color16_graphics::drawQuadrilateral | ( | int16_t | x0, |
int16_t | y0, | ||
int16_t | x1, | ||
int16_t | y1, | ||
int16_t | x2, | ||
int16_t | y2, | ||
int16_t | x3, | ||
int16_t | y3, | ||
uint16_t | color | ||
) |
Draws a quadrilateral (four-sided polygon) by connecting four points with lines. This function draws a quadrilateral by drawing four lines between the given vertices. The lines are drawn in the order: (x0, y0) to (x1, y1), (x1, y1) to (x2, y2), (x2, y2) to (x3, y3), and finally (x3, y3) back to (x0, y0).
x0 | The x-coordinate of the first vertex. |
y0 | The y-coordinate of the first vertex. |
x1 | The x-coordinate of the second vertex. |
y1 | The y-coordinate of the second vertex. |
x2 | The x-coordinate of the third vertex. |
y2 | The y-coordinate of the third vertex. |
x3 | The x-coordinate of the fourth vertex. |
y3 | The y-coordinate of the fourth vertex. |
color | The 565 color used to draw the lines of the quadrilateral. |
void color16_graphics::drawRectWH | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | h, | ||
uint16_t | color | ||
) |
draws rectangle at (x,y) where h is height and w is width of the rectangle.
x | x start coordinate |
y | y start coordinate |
w | width of the rectangle |
h | height of the rectangle |
color | color to fill rectangle 565 16-bit |
void color16_graphics::drawRoundRect | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | h, | ||
uint16_t | r, | ||
uint16_t | color | ||
) |
draws a rectangle with rounded edges
x | x start coordinate |
y | y start coordinate |
w | width of the rectangle |
h | height of the rectangle |
r | r: radius of the rounded edges |
color | color to fill rectangle 565 16-bit |
void color16_graphics::drawSimpleArc | ( | int16_t | cx, |
int16_t | cy, | ||
int16_t | radius, | ||
float | startAngle, | ||
float | endAngle, | ||
uint16_t | color | ||
) |
Draw a simple arc of one pixel on the display( no offsets , thickness or maximum arc calculations) This function draws an arc between two angles (start and end) on a circle with a given radius.
cx | X-coordinate of the center of the circle. |
cy | Y-coordinate of the center of the circle. |
radius | The radius of the circle. |
startAngle | The starting angle of the arc (in degrees). |
endAngle | The ending angle of the arc (in degrees). |
color | The color of the arc. |
0 degree is positive X axis , arc is drawn counterclockwise
rdlib::Return_Codes_e color16_graphics::drawSprite | ( | uint16_t | x, |
uint16_t | y, | ||
const std::span< const uint8_t > | sprite, | ||
uint16_t | w, | ||
uint16_t | h, | ||
uint16_t | backgroundColor | ||
) |
: Draws an 16 bit color sprite bitmap to screen with transparent background
x | X coordinate |
y | Y coordinate |
sprite | span to sprite data |
w | width of the sprite in pixels |
h | height of the sprite in pixels |
backgroundColor | the background color of sprite (16 bit 565) this will be made transparent |
void color16_graphics::drawTriangle | ( | int16_t | x0, |
int16_t | y0, | ||
int16_t | x1, | ||
int16_t | y1, | ||
int16_t | x2, | ||
int16_t | y2, | ||
uint16_t | color | ||
) |
draws a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2).
x0 | x start coordinate point 1 |
y0 | y start coordinate point 1 |
x1 | x start coordinate point 2 |
y1 | y start coordinate point 2 |
x2 | x start coordinate point 3 |
y2 | y start coordinate point 3 |
color | color to draw triangle 565 16-bit |
fills a circle where (x0,y0) are center coordinates an r is circle radius.
x0 | circle center x position |
y0 | circle center y position |
r | radius of circle |
color | color of the circle , 565 16 Bit color |
void color16_graphics::fillQuadrilateral | ( | int16_t | x0, |
int16_t | y0, | ||
int16_t | x1, | ||
int16_t | y1, | ||
int16_t | x2, | ||
int16_t | y2, | ||
int16_t | x3, | ||
int16_t | y3, | ||
uint16_t | color, | ||
bool | useTriangleSplit = true |
||
) |
Fills a quadrilateral with the specified color using triangles. This function fills a quadrilateral by dividing it into triangles and filling them individually. The quadrilateral is filled by calling the fillTriangle
function three times with appropriate vertex coordinates. The useTriangleSplit
parameter determines whether the quadrilateral is divided into two triangles or if only one triangle is used.
x0 | The x-coordinate of the first vertex. |
y0 | The y-coordinate of the first vertex. |
x1 | The x-coordinate of the second vertex. |
y1 | The y-coordinate of the second vertex. |
x2 | The x-coordinate of the third vertex. |
y2 | The y-coordinate of the third vertex. |
x3 | The x-coordinate of the fourth vertex. |
y3 | The y-coordinate of the fourth vertex. |
color | The color used to fill the quadrilateral. |
useTriangleSplit | A boolean flag that determines whether the quadrilateral should be divided into two or three triangles. |
fills a rectangle at (x,y) where h is height and w is width of the rectangle.
x | x start coordinate |
y | y start coordinate |
w | width of the rectangle |
h | height of the rectangle |
color | color to fill rectangle 565 16-bit |
rdlib::Return_Codes_e color16_graphics::fillRectangle | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | h, | ||
uint16_t | color | ||
) |
fills a rectangle starting from coordinates (x,y) with width of w and height of h.
x | x coordinate |
y | y coordinate |
w | width of the rectangle |
h | height of the rectangle |
color | color to fill rectangle 565 16-bit |
void color16_graphics::fillRoundRect | ( | uint16_t | x, |
uint16_t | y, | ||
uint16_t | w, | ||
uint16_t | h, | ||
uint16_t | r, | ||
uint16_t | color | ||
) |
Fills a rectangle with rounded edges.
x | x start coordinate |
y | y start coordinate |
w | width of the rectangle |
h | height of the rectangle |
r | r: radius of the rounded edges |
color | color to fill rectangle 565 16-bit |
Fills the whole screen with a given color.
color | 565 16-bit |
void color16_graphics::fillTriangle | ( | int16_t | x0, |
int16_t | y0, | ||
int16_t | x1, | ||
int16_t | y1, | ||
int16_t | x2, | ||
int16_t | y2, | ||
uint16_t | color | ||
) |
Fills a triangle of coordinates (x0,y0), (x1,y1) and (x2,y2).
x0 | x start coordinate point 1 |
y0 | y start coordinate point 1 |
x1 | x start coordinate point 2 |
y1 | y start coordinate point 2 |
x2 | x start coordinate point 3 |
y2 | y start coordinate point 3 |
color | color to fill , 565 16-bit |
float color16_graphics::getArcAngleMax | ( | ) | const |
Get the current maximum angle of the arc.
int color16_graphics::getArcAngleOffset | ( | ) | const |
Get the current angle offset.
int color16_graphics::getDisplaySPIBlockSize | ( | ) | const |
Gets the maximum SPI transaction block size.
|
pure virtual |
define in the sub class
Implemented in ILI9341_TFT, SSD1331_OLED, ST7735_TFT, and ST7789_TFT.
Set a new maximum angle for the arc.
arcAngleMax | The new maximum angle in degrees (should be positive). |
Set a new angle offset.
arcAngleOffset | The new angle offset in degrees. |
Set the Cursor Position on screen.
x | the x co-ord of the cursor position |
y | the y co-ord of the cursor position |
Sets the maximum SPI transaction block size.
size | The new block size to set. |
Set text color foreground.
c | text foreground color , Color definitions 16-Bit Color Values R5G6B5 |
Set text color foreground and background.
c | text foreground color , Color definitions 16-Bit Color Values R5G6B5 |
b | text background color , Color definitions 16-Bit Color Values R5G6B5 |
turn on or off screen wrap of the text (fonts 1-6)
w | TRUE on |
Write byte to SPI.
spidata | byte to write |
Write a buffer to SPI, both Software and hardware SPI supported.
spidata | to send |
len | length of buffer |
write method used in the print class when user calls print
character | the character to print |
Implements Print.
rdlib::Return_Codes_e color16_graphics::writeChar | ( | int16_t | x, |
int16_t | y, | ||
char | value | ||
) |
Write 1 character on Display.
x | character starting position on x-axis. Valid values |
y | character starting position on x-axis. Valid values |
value | Character to be written. |
rdlib::Return_Codes_e color16_graphics::writeCharString | ( | int16_t | x, |
int16_t | y, | ||
char * | pText | ||
) |
Write Text character array on display.
x | character starting position on x-axis. |
y | character starting position on y-axis. |
pText | Pointer to the array of the text to be written. |
: Write an SPI command to
spicmdbyte | command byte to send |
Write an SPI data byte to device.
spidatabyte | byte to send |
|
protected |
Maximum angle of Arc , used by drawArc
|
protected |
used by drawArc, offset for adjusting the starting angle of arc. default positive X-axis (0°)
|
protected |
Current X co-ord cursor position
|
protected |
Current Y co-ord cursor position
|
protected |
The device number of a gpiochip ls /dev/gpio
|
protected |
GPIO for chip select line, Software SPI only
|
protected |
GPIO for data or command line
|
protected |
GPIO for MISO line, Software SPI only
|
protected |
GPIO for reset line
|
protected |
GPIO for Clock line, Software SPI only
|
protected |
GPIO for MOSI line, Software SPI only
|
private |
max block size SPI Transaction, lgpio lib default(LG_MAX_SPI_DEVICE_COUNT)
|
protected |
This holds a handle to a gpiochip device opened by lgGpiochipOpen
True for Hardware SPI on , false fpr Software SPI on
|
protected |
Display h as modified by current rotation
|
protected |
uS GPIO Communications delay, SW SPI ONLY
|
protected |
Hold a handle for the SPI device on the channel.
|
protected |
16 bit BackGround color for text
|
protected |
16 bit ForeGround color for text
|
protected |
Display w as modified by current rotation
|
protected |
Used to store _colstart changed by current rotation
|
protected |
Used to store _rowstart changed by current rotation