Class daisy::ColorGraphicsDisplayImpl¶
ClassList > daisy > ColorGraphicsDisplayImpl
#include <color_display.h>
Inherits the following classes: daisy::ColorGraphicsDisplay
Public Functions¶
Type | Name |
---|---|
ColorGraphicsDisplayImpl () |
|
virtual void | DrawArc (uint_fast8_t x, uint_fast8_t y, uint_fast8_t radius, int_fast16_t start_angle, int_fast16_t sweep, bool on) override |
virtual void | DrawLine (uint_fast8_t x1, uint_fast8_t y1, uint_fast8_t x2, uint_fast8_t y2, bool on) override |
virtual void | DrawRect (uint_fast8_t x1, uint_fast8_t y1, uint_fast8_t x2, uint_fast8_t y2, bool on, bool fill=false) override |
virtual char | WriteChar (char ch, FontDef font, bool on) override |
virtual char | WriteString (const char * str, FontDef font, bool on) override |
virtual Rectangle | WriteStringAligned (const char * str, const FontDef & font, Rectangle boundingBox, Alignment alignment, bool on) override |
virtual | ~ColorGraphicsDisplayImpl () |
Public Functions inherited from daisy::ColorGraphicsDisplay¶
See daisy::ColorGraphicsDisplay
Protected Attributes inherited from daisy::ColorGraphicsDisplay¶
See daisy::ColorGraphicsDisplay
Type | Name |
---|---|
uint16_t | currentX_ |
uint16_t | currentY_ |
Detailed Description¶
This class is intended as a intermediary class for your actual implementation of the ColorGraphicsDisplay interface. It uses the CRTP design pattern where the template argument is the child class. It provides implementations for most of the functions, except DrawPixel(), SetColorFG(), SetColorBG, Update() and Fill(), which you'll have to provide in your child class. The main goal of this class is to provide common drawing functions without relying on massive amounts of virtual function calls that would result in a performance loss. To achieve this, any drawing function that is implemented here and internally calls other drawing functions (e.g. DrawRect() which internally calls DrawPixel() and DrawLine()) makes these calls via the qualified name of these functions to explicitly suppress the virtual dispatch mechanism like this: To create a custom ColorGraphicsDisplay implementation, you can A) inherit from ColorGraphicsDisplay directly and provide all the drawing functions yourself B) Inherit from ColorGraphicsDisplayImpl and only provide DrawPixel(), Fill() and Update() like this:
class MyDisplayClass : public ColorGraphicsDisplayImpl<MyDisplayClass> { public: void Fill() override { ... }; void DrawPixel(uint_fast8_t x, uint_fast8_t y, bool on) override { ... }; void Update() override { ... } };
Public Functions Documentation¶
function ColorGraphicsDisplayImpl¶
function DrawArc¶
inline virtual void daisy::ColorGraphicsDisplayImpl::DrawArc (
uint_fast8_t x,
uint_fast8_t y,
uint_fast8_t radius,
int_fast16_t start_angle,
int_fast16_t sweep,
bool on
) override
Draws an arc around the specified coordinate
Parameters:
x
x Coordinate of the center of the arcy
y Coordinate of the center of the arcradius
radius of the arcstart_angle
angle where to start the arcsweep
total angle of the arcon
on or off
Implements daisy::ColorGraphicsDisplay::DrawArc
function DrawLine¶
inline virtual void daisy::ColorGraphicsDisplayImpl::DrawLine (
uint_fast8_t x1,
uint_fast8_t y1,
uint_fast8_t x2,
uint_fast8_t y2,
bool on
) override
Draws a line from (x1, y1) to (y1, y2)
Parameters:
x1
x Coordinate of the starting pointy1
y Coordinate of the starting pointx2
x Coordinate of the ending pointy2
y Coordinate of the ending pointon
on or off
Implements daisy::ColorGraphicsDisplay::DrawLine
function DrawRect¶
inline virtual void daisy::ColorGraphicsDisplayImpl::DrawRect (
uint_fast8_t x1,
uint_fast8_t y1,
uint_fast8_t x2,
uint_fast8_t y2,
bool on,
bool fill=false
) override
Draws a rectangle based on two coordinates.
Parameters:
x1
x Coordinate of the first pointy1
y Coordinate of the first pointx2
x Coordinate of the second pointy2
y Coordinate of the second pointon
on or offfill
fill the rectangle or draw only the outline
Implements daisy::ColorGraphicsDisplay::DrawRect
function WriteChar¶
inline virtual char daisy::ColorGraphicsDisplayImpl::WriteChar (
char ch,
FontDef font,
bool on
) override
Writes the character with the specific FontDef to the display buffer at the current Cursor position.
Parameters:
ch
character to be writtenfont
font to be written inon
on or off
Returns:
&
Implements daisy::ColorGraphicsDisplay::WriteChar
function WriteString¶
inline virtual char daisy::ColorGraphicsDisplayImpl::WriteString (
const char * str,
FontDef font,
bool on
) override
Similar to WriteChar, except it will handle an entire String. Wrapping does not happen automatically, so the width of the string must be kept within the dimensions of the screen.
Parameters:
str
string to be writtenfont
font to useon
on or off
Returns:
&
Implements daisy::ColorGraphicsDisplay::WriteString
function WriteStringAligned¶
inline virtual Rectangle daisy::ColorGraphicsDisplayImpl::WriteStringAligned (
const char * str,
const FontDef & font,
Rectangle boundingBox,
Alignment alignment,
bool on
) override
Similar to WriteString but justified within a bounding box.
Parameters:
str
string to be writtenfont
font to useboundingBox
the bounding box to draw the text inalignment
the alignment to useon
on or off
Returns:
The rectangle that was drawn to
Implements daisy::ColorGraphicsDisplay::WriteStringAligned
function ~ColorGraphicsDisplayImpl¶
The documentation for this class was generated from the following file external-docs/libDaisy/src/hid/disp/color_display.h