modm API documentation
modm::GraphicDisplay Class Referenceabstract

#include <modm/ui/display/graphic_display.hpp>

Inheritance diagram for modm::GraphicDisplay:
modm::IOStream modm::ColorGraphicDisplay modm::MonochromeGraphicDisplay< Width, Height, BufferWidth, BufferHeight > modm::MonochromeGraphicDisplay< Width, Height, Width, Height/8 > modm::MonochromeGraphicDisplay< Width, Height, Width/8, Height > modm::ili9341< Interface, Reset, Backlight, BufferSize > modm::ParallelTft< INTERFACE > modm::St7789< Interface, Width, Height > modm::VirtualGraphicDisplay modm::MonochromeGraphicDisplayVertical< Width, Height > modm::MonochromeGraphicDisplayVertical< 128, Height > modm::MonochromeGraphicDisplayVertical< 132, 176 > modm::MonochromeGraphicDisplayVertical< 176, 136 > modm::MonochromeGraphicDisplayVertical< 8 *COLUMNS, 8 *ROWS > modm::MonochromeGraphicDisplayVertical< 84, 48 > modm::MonochromeGraphicDisplayVertical< WIDTH, HEIGHT > modm::MonochromeGraphicDisplayHorizontal< Width, Height > modm::MonochromeGraphicDisplayHorizontal< 8 *COLUMNS, 8 *ROWS >

Classes

class  Writer
 

Public Member Functions

virtual uint16_t getWidth () const = 0
 
virtual uint16_t getHeight () const = 0
 
virtual std::size_t getBufferWidth () const = 0
 
virtual std::size_t getBufferHeight () const = 0
 
virtual void setPixel (int16_t x, int16_t y) = 0
 
void setPixel (glcd::Point p)
 
virtual void clearPixel (int16_t x, int16_t y) = 0
 
void clearPixel (glcd::Point p)
 
virtual void clear () = 0
 
virtual void update () = 0
 
void drawLine (glcd::Point start, glcd::Point end)
 
void drawLine (int16_t x1, int16_t y1, int16_t x2, int16_t y2)
 
void drawRectangle (glcd::Point start, uint16_t width, uint16_t height)
 
void drawRectangle (int16_t x, int16_t y, uint16_t width, uint16_t height)
 
void fillRectangle (glcd::Point start, uint16_t width, uint16_t height)
 
void fillRectangle (int16_t x, int16_t y, uint16_t width, uint16_t height)
 
void drawRoundedRectangle (glcd::Point start, uint16_t width, uint16_t height, uint16_t radius)
 
void drawCircle (glcd::Point center, uint16_t radius)
 
virtual void fillCircle (glcd::Point center, uint16_t radius)
 
void drawEllipse (glcd::Point center, int16_t rx, int16_t ry)
 
void drawImage (glcd::Point start, modm::accessor::Flash< uint8_t > image)
 
virtual void drawImageRaw (glcd::Point start, uint16_t width, uint16_t height, modm::accessor::Flash< uint8_t > data)
 
void setCursor (glcd::Point position)
 
void setCursor (int16_t x, int16_t y)
 
void setCursorX (int16_t x)
 
void setCursorY (int16_t y)
 
glcd::Point getCursor () const
 
void setFont (const uint8_t *newFont)
 
void setFont (const modm::accessor::Flash< uint8_t > *font)
 
uint8_t getFontHeight () const
 
uint16_t getStringWidth (const char *s) const
 
void write (char c)
 
IOStreamascii ()
 set the output mode to ASCII style for integer types
 
IOStreambin ()
 set the output mode to binary style for integer types
 
IOStreamendl ()
 
IOStreamflush ()
 
IOStreamget (char &c)
 Reads one character and returns it if available. Otherwise, returns IOStream::eof.
 
IOStreamget (char *s, size_t n)
 
template<size_t N>
IOStreamget (char (&s)[N])
 
IOStreamhex ()
 set the output mode to hexadecimal style for integer types
 
IOStreamoperator<< (const bool &v)
 
IOStreamoperator<< (const char &v)
 
IOStreamoperator<< (const uint8_t &v)
 
IOStreamoperator<< (const int16_t &v)
 
IOStreamoperator<< (const uint16_t &v)
 
IOStreamoperator<< (const int32_t &v)
 
IOStreamoperator<< (const uint32_t &v)
 
IOStreamoperator<< (const int64_t &v)
 
IOStreamoperator<< (const uint64_t &v)
 
IOStreamoperator<< (const int &v)
 
IOStreamoperator<< (const unsigned int &v)
 
IOStreamoperator<< (const float &v)
 
IOStreamoperator<< (const double &v)
 
IOStreamoperator<< (const char *s)
 
IOStreamoperator<< (const void *p)
 write the hex value of a pointer
 
template<class Ret , class... Args>
IOStreamoperator<< (Ret (*pointer)(Args...))
 Write the hex value of any function pointer.
 
IOStreamoperator<< (IOStream &(*format)(IOStream &))
 
IOStreamprintf (const char *fmt,...)))
 
IOStreamvprintf (const char *fmt, va_list vlist)))
 

Static Public Member Functions

static uint8_t getFontHeight (const modm::accessor::Flash< uint8_t > *font)
 
static uint16_t getStringWidth (const char *s, const modm::accessor::Flash< uint8_t > *font)
 

Static Public Attributes

static constexpr char eof = -1
 

Protected Member Functions

void drawCircle4 (glcd::Point center, int16_t x, int16_t y)
 helper method for drawCircle() and drawEllipse()
 
virtual void drawHorizontalLine (glcd::Point start, uint16_t length)
 
virtual void drawVerticalLine (glcd::Point start, uint16_t length)
 
void writeBin (uint8_t value)
 
void writeDouble (const double &value)
 
void writeFloat (float value)
 
void writeHex (uint8_t value)
 
void writeInteger (int16_t value)
 
void writeInteger (uint16_t value)
 
void writeInteger (int32_t value)
 
void writeInteger (uint32_t value)
 
void writeInteger (int64_t value)
 
void writeInteger (uint64_t value)
 
template<typename T >
void writeIntegerMode (const T v)
 
void writePointer (const void *value)
 

Protected Attributes

Writer writer
 
modm::accessor::Flash< uint8_t > font
 
glcd::Point cursor
 

Friends

class VirtualGraphicDisplay
 

Detailed Description

Base class for graphical displays.

Text mode:

  • left adjusted (default)
  • right adjusted
  • centered

All modes relative to the current viewport. This would make drawing a menu system easier.

Member Function Documentation

void modm::GraphicDisplay::clearPixel ( glcd::Point  p)
inline

Set a pixel to backgroundColor

Parameters
ppoint
void modm::GraphicDisplay::drawCircle ( glcd::Point  center,
uint16_t  radius 
)

Draw a filled rectangle with rounded corners

Parameters
startUpper left corner
widthWidth of rectangle
heightHeight of rectangle
radiusRounding radius

Draw a circle

Uses the midpoint circle algorithm.

Parameters
centerCenter of the circle
radiusRadius of the circle
void modm::GraphicDisplay::drawEllipse ( glcd::Point  center,
int16_t  rx,
int16_t  ry 
)

Draw an ellipse.

Uses a variation of the midpoint algorithm. May be improved through simplification of the used formula.

Parameters
centerCenter of the ellipse
rxRadius in x-direction
ryRadius in y-direction
void modm::GraphicDisplay::drawImage ( glcd::Point  start,
modm::accessor::Flash< uint8_t >  image 
)

Draw an image.

The first byte in the image data specifies the with, the second byte the height. Afterwards the actual image data.

Parameters
startUpper left corner
imageImage data in Flash
See also
drawImage()
void modm::GraphicDisplay::drawLine ( glcd::Point  start,
glcd::Point  end 
)
inline

Draw a line.

Uses the faster drawHorizontalLine() or drawVerticalLine() if possible, otherwise the line is rastered with the Bresenham line algorithm.

Parameters
startfirst point
endsecond point
void modm::GraphicDisplay::drawLine ( int16_t  x1,
int16_t  y1,
int16_t  x2,
int16_t  y2 
)

Draw a line

Parameters
x1Start x-position
y1Start y-position
x2End x-position
y3End y-position
void modm::GraphicDisplay::drawRectangle ( glcd::Point  start,
uint16_t  width,
uint16_t  height 
)

Draw a rectangle.

Parameters
startUpper left corner
widthWidth of rectangle
heightHeight of rectangle
void modm::GraphicDisplay::drawRectangle ( int16_t  x,
int16_t  y,
uint16_t  width,
uint16_t  height 
)
inline

Draw a rectangle.

Parameters
xUpper left corner x-position
yUpper left corner y-position
widthWidth of rectangle
heightHeight of rectangle
void modm::GraphicDisplay::drawRoundedRectangle ( glcd::Point  start,
uint16_t  width,
uint16_t  height,
uint16_t  radius 
)

Draw a rectangle with rounded corners

Parameters
startUpper left corner
widthWidth of rectangle
heightHeight of rectangle
radiusRounding radius
void modm::GraphicDisplay::fillCircle ( glcd::Point  center,
uint16_t  radius 
)
virtual

Draw a filled circle.

Parameters
centerCenter of the circle
radiusRadius of the circle

Reimplemented in modm::ili9341< Interface, Reset, Backlight, BufferSize >.

void modm::GraphicDisplay::fillRectangle ( glcd::Point  start,
uint16_t  width,
uint16_t  height 
)

Draw a filled rectangle.

Parameters
startUpper left corner
widthWidth of rectangle
heightHeight of rectangle
void modm::GraphicDisplay::fillRectangle ( int16_t  x,
int16_t  y,
uint16_t  width,
uint16_t  height 
)
inline

Draw a rectangle.

Parameters
xUpper left corner x-position
yUpper left corner y-position
widthWidth of rectangle
heightHeight of rectangle
IOStream & modm::IOStream::get ( char *  s,
size_t  n 
)
inherited

reads characters into NULL delimited c string in contrast to the standard implementation, this does not care about newline characters in the input

uint8_t modm::GraphicDisplay::getFontHeight ( ) const

Get the height of a character.

uint16_t modm::GraphicDisplay::getStringWidth ( const char *  s) const

Get the width of (null terminated) string.

void modm::GraphicDisplay::setCursor ( glcd::Point  position)
inline

Set the cursor for text drawing.

Parameters
positionCursor position
void modm::GraphicDisplay::setCursor ( int16_t  x,
int16_t  y 
)
inline

Set the cursor for text drawing.

Parameters
xCursor x-position
yCursor y-position
void modm::GraphicDisplay::setCursorX ( int16_t  x)
inline

Set the cursor x-position for text drawing.

Parameters
xCursor x-position
void modm::GraphicDisplay::setCursorY ( int16_t  y)
inline

Set the cursor y-position for text drawing.

Parameters
yCursor y-position
void modm::GraphicDisplay::setFont ( const uint8_t *  newFont)
inline

Set a new font.

Default font is modm::font::FixedWidth5x8.

Parameters
newFontActive font
See also
modm::font
void modm::GraphicDisplay::setPixel ( glcd::Point  p)
inline

Set a pixel to foregroundColor

Parameters
ppoint
void modm::GraphicDisplay::write ( char  c)

Write a single character.


The documentation for this class was generated from the following files: