Skip to content

Class daisy::ColorGraphicsDisplayImpl

template <class ChildType>

ClassList > daisy > ColorGraphicsDisplayImpl

More...

  • #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

Type Name
ColorGraphicsDisplay ()
size_t CurrentX ()
size_t CurrentY ()
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) = 0
void DrawCircle (uint_fast8_t x, uint_fast8_t y, uint_fast8_t radius, bool on)
virtual void DrawLine (uint_fast8_t x1, uint_fast8_t y1, uint_fast8_t x2, uint_fast8_t y2, bool on) = 0
virtual void DrawPixel (uint_fast8_t x, uint_fast8_t y, bool on) = 0
virtual void DrawRect (uint_fast8_t x1, uint_fast8_t y1, uint_fast8_t x2, uint_fast8_t y2, bool on, bool fill=false) = 0
void DrawRect (const Rectangle & rect, bool on, bool fill=false)
virtual void Fill (bool on) = 0
Rectangle GetBounds () const
virtual uint16_t Height () const = 0
virtual void SetColorBG (uint8_t red, uint8_t green, uint8_t blue) = 0
virtual void SetColorFG (uint8_t red, uint8_t green, uint8_t blue) = 0
void SetCursor (uint16_t x, uint16_t y)
virtual void Update () = 0
virtual uint16_t Width () const = 0
virtual char WriteChar (char ch, FontDef font, bool on) = 0
virtual char WriteString (const char * str, FontDef font, bool on) = 0
virtual Rectangle WriteStringAligned (const char * str, const FontDef & font, Rectangle boundingBox, Alignment alignment, bool on) = 0
virtual ~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

inline daisy::ColorGraphicsDisplayImpl::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 arc
  • y y Coordinate of the center of the arc
  • radius radius of the arc
  • start_angle angle where to start the arc
  • sweep total angle of the arc
  • on 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 point
  • y1 y Coordinate of the starting point
  • x2 x Coordinate of the ending point
  • y2 y Coordinate of the ending point
  • on 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 point
  • y1 y Coordinate of the first point
  • x2 x Coordinate of the second point
  • y2 y Coordinate of the second point
  • on on or off
  • fill 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 written
  • font font to be written in
  • on 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 written
  • font font to use
  • on 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 written
  • font font to use
  • boundingBox the bounding box to draw the text in
  • alignment the alignment to use
  • on on or off

Returns:

The rectangle that was drawn to

Implements daisy::ColorGraphicsDisplay::WriteStringAligned


function ~ColorGraphicsDisplayImpl

inline virtual daisy::ColorGraphicsDisplayImpl::~ColorGraphicsDisplayImpl () 


The documentation for this class was generated from the following file external-docs/libDaisy/src/hid/disp/color_display.h