SSD1306 OLED display driver 1.8.2 This library is developed to control SSD1306/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays

Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | List of all members
NanoCanvasOps< BPP > Class Template Reference

`#include <canvas.h>`

Inheritance diagram for NanoCanvasOps< BPP >:

## Public Member Functions
| NanoCanvasOps ()
| NanoCanvasOps (lcdint_t w, lcdint_t h, uint8_t *bytes)
void | begin (lcdint_t w, lcdint_t h, uint8_t *bytes)
void | setOffset (lcdint_t ox, lcdint_t oy)
const NanoPoint | offsetEnd () const
const NanoRect | rect () const
void | putPixel (lcdint_t x, lcdint_t y)
void | putPixel (const NanoPoint &p)
void | drawVLine (lcdint_t x1, lcdint_t y1, lcdint_t y2)
void | drawHLine (lcdint_t x1, lcdint_t y1, lcdint_t x2)
void | drawLine (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
void | drawLine (const NanoRect &rect)
void | drawRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
void | drawRect (const NanoRect &rect)
void | fillRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
void | fillRect (const NanoRect &rect)
void | drawBitmap1 (lcdint_t x, lcdint_t y, lcduint_t w, lcduint_t h, const uint8_t *bitmap)
| Draws monochrome bitmap in color buffer using color, specified via setColor() method Draws monochrome bitmap in color buffer using color, specified via setColor() method The bitmap is expected in Native ssd1306 controller format. More...
void | drawXBitmap1 (lcdint_t x, lcdint_t y, lcduint_t w, lcduint_t h, const uint8_t *bitmap)
| Draws monochrome bitmap in color buffer using color, specified via setColor() method Draws monochrome bitmap in color buffer using color, specified via setColor() method The bitmap is expected in XBMP format. More...
void | drawBitmap8 (lcdint_t x, lcdint_t y, lcduint_t w, lcduint_t h, const uint8_t *bitmap)
| Draws 8-bit color bitmap in color buffer. Draws 8-bit color bitmap in color buffer. More...
void | clear ()
size_t | write (uint8_t c) override
uint8_t | printChar (uint8_t c)
void | printFixed (lcdint_t xpos, lcdint_t y, const char *ch, EFontStyle style=STYLE_NORMAL)
void | printFixedPgm (lcdint_t xpos, lcdint_t y, const char *ch, EFontStyle style=STYLE_NORMAL)
void | setMode (uint8_t modeFlags)
| Sets canvas drawing mode Sets canvas drawing mode. The set flags define transparency of output images. More...
void | setColor (uint16_t color)
Public Member Functions inherited from Print
| Print ()
size_t | print (const char *str)
size_t | print (int n)
size_t | println (const char *str)
size_t | println (int data)

## Public Attributes
NanoPoint | offset = { 0, 0 }

## Static Public Attributes
static const uint8_t | BITS_PER_PIXEL = BPP

## Protected Attributes
lcduint_t | m_w
| width of NanoCanvas area in pixels
lcduint_t | m_h
| height of NanoCanvas area in pixels
lcduint_t | m_p
| number of bits, used by width value: 3 equals to 8 pixels width
lcdint_t | m_cursorX
| current X cursor position for text output
lcdint_t | m_cursorY
| current Y cursor position for text output
uint8_t | m_textMode
| Flags for current NanoCanvas mode.
EFontStyle | m_fontStyle
| currently active font style
uint8_t * | m_buf
| Canvas data.
uint16_t | m_color
| current color for monochrome operations

## Detailed Description

### template<uint8_t BPP>
class NanoCanvasOps< BPP >

NanoCanvasOps provides operations for drawing in memory buffer. Depending on BPP argument, this class can work with 1,8,16-bit canvas areas.

Definition at line 59 of file canvas.h.

## Constructor & Destructor Documentation

## ◆ NanoCanvasOps() [1/2]

template<uint8_t BPP>

NanoCanvasOps< BPP >::NanoCanvasOps | ( |  | ) |
| inline

Creates new empty canvas object. If you this constructor is used, you must call begin() method before working with canvas.

Definition at line 73 of file canvas.h.

## ◆ NanoCanvasOps() [2/2]

template<uint8_t BPP>

NanoCanvasOps< BPP >::NanoCanvasOps | ( | lcdint_t | w,
|  | lcdint_t | h,
|  | uint8_t * | bytes
| ) |  |
| inline

Creates new canvas object. Width can be of any value. Height should be divided by 8. Memory buffer must be not less than w * h.

Parameters

  w | - width
  h | - height
  bytes | - pointer to memory buffer to use

Definition at line 87 of file canvas.h.

## Member Function Documentation

## ◆ begin()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::begin | ( | lcdint_t | w,
|  | lcdint_t | h,
|  | uint8_t * | bytes
| ) |  |

Initializes canvas object. Width can be of any value. Height should be divided by 8. Memory buffer must be not less than w * h.

Parameters

  w | - width
  h | - height
  bytes | - pointer to memory buffer to use

## ◆ clear()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::clear | ( |  | ) |

Clears canvas

## ◆ drawBitmap1()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawBitmap1 | ( | lcdint_t | x,
|  | lcdint_t | y,
|  | lcduint_t | w,
|  | lcduint_t | h,
|  | const uint8_t * | bitmap
| ) |  |

Draws monochrome bitmap in color buffer using color, specified via setColor() method Draws monochrome bitmap in color buffer using color, specified via setColor() method The bitmap is expected in Native ssd1306 controller format.

Parameters

  x | - position X in pixels
  y | - position Y in pixels
  w | - width in pixels
  h | - height in pixels
  bitmap | - monochrome bitmap data, located in flash

Note
  There are 2 modes: transparent and non-transparent mode, - and 2 colors available: black and white. In non-transparent mode, when black color is selected, the monochrome image just inverted. In transparent mode, those pixels of source monochrome image, which are black, do not overwrite pixels in the screen buffer.

## ◆ drawBitmap8()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawBitmap8 | ( | lcdint_t | x,
|  | lcdint_t | y,
|  | lcduint_t | w,
|  | lcduint_t | h,
|  | const uint8_t * | bitmap
| ) |  |

Draws 8-bit color bitmap in color buffer. Draws 8-bit color bitmap in color buffer.

Parameters

  x | - position X in pixels
  y | - position Y in pixels
  w | - width in pixels
  h | - height in pixels
  bitmap | - 8-bit color bitmap data, located in flash

## ◆ drawHLine()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawHLine | ( | lcdint_t | x1,
|  | lcdint_t | y1,
|  | lcdint_t | x2
| ) |  |

Draws horizontal or vertical line

Parameters

  x1 | - position X
  y1 | - position Y
  x2 | - position X

Note
  color can be set via setColor()

## ◆ drawLine() [1/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawLine | ( | lcdint_t | x1,
|  | lcdint_t | y1,
|  | lcdint_t | x2,
|  | lcdint_t | y2
| ) |  |

Draws line

Parameters

  x1 | - position X
  y1 | - position Y
  x2 | - position X
  y2 | - position Y

Note
  color can be set via setColor()

## ◆ drawLine() [2/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawLine | ( | const NanoRect & | rect | ) |

Draws line

Parameters

  rect | - structure, describing rectangle area

Note
  color can be set via setColor()

## ◆ drawRect() [1/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawRect | ( | lcdint_t | x1,
|  | lcdint_t | y1,
|  | lcdint_t | x2,
|  | lcdint_t | y2
| ) |  |

Draws rectangle

Parameters

  x1 | - position X
  y1 | - position Y
  x2 | - position X
  y2 | - position Y

Note
  color can be set via setColor()

## ◆ drawRect() [2/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawRect | ( | const NanoRect & | rect | ) |

Draws rectangle

Parameters

  rect | - structure, describing rectangle area

Note
  color can be set via setColor()

## ◆ drawVLine()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawVLine | ( | lcdint_t | x1,
|  | lcdint_t | y1,
|  | lcdint_t | y2
| ) |  |

Draws horizontal or vertical line

Parameters

  x1 | - position X
  y1 | - position Y
  y2 | - position Y

Note
  color can be set via setColor()

## ◆ drawXBitmap1()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::drawXBitmap1 | ( | lcdint_t | x,
|  | lcdint_t | y,
|  | lcduint_t | w,
|  | lcduint_t | h,
|  | const uint8_t * | bitmap
| ) |  |

Draws monochrome bitmap in color buffer using color, specified via setColor() method Draws monochrome bitmap in color buffer using color, specified via setColor() method The bitmap is expected in XBMP format.

Parameters

  x | - position X in pixels
  y | - position Y in pixels
  w | - width in pixels
  h | - height in pixels
  bitmap | - monochrome bitmap data, located in flash

Note
  There are 2 modes: transparent and non-transparent mode, - and 2 colors available: black and white. In non-transparent mode, when black color is selected, the monochrome image just inverted. In transparent mode, those pixels of source monochrome image, which are black, do not overwrite pixels in the screen buffer.

## ◆ fillRect() [1/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::fillRect | ( | lcdint_t | x1,
|  | lcdint_t | y1,
|  | lcdint_t | x2,
|  | lcdint_t | y2
| ) |  |

Fills rectangle area

Parameters

  x1 | - position X
  y1 | - position Y
  x2 | - position X
  y2 | - position Y

Note
  color can be set via setColor()

## ◆ fillRect() [2/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::fillRect | ( | const NanoRect & | rect | ) |

Fills rectangle area

Parameters

  rect | - structure, describing rectangle area

Note
  color can be set via setColor()

## ◆ offsetEnd()

template<uint8_t BPP>

const NanoPoint NanoCanvasOps< BPP >::offsetEnd | ( |  | ) | const
| inline

Returns right-bottom point of the canvas in offset terms. If offset is (0,0), then offsetEnd() will return (width-1,height-1).

Definition at line 115 of file canvas.h.

## ◆ printChar()

template<uint8_t BPP>

uint8_t NanoCanvasOps< BPP >::printChar | ( | uint8_t | c | ) |

Draws single character to canvas

Parameters

  c | - character code to print

Returns
  0 if char is not printed

## ◆ printFixed()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::printFixed | ( | lcdint_t | xpos,
|  | lcdint_t | y,
|  | const char * | ch,
|  | EFontStyle | style = `STYLE_NORMAL`
| ) |  |

Print text at specified position to canvas

Parameters

  xpos | position in pixels
  y | position in pixels
  ch | pointer to NULL-terminated string.
  style | specific font style to use

Note
  Supports only STYLE_NORMAL and STYLE_BOLD

## ◆ printFixedPgm()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::printFixedPgm | ( | lcdint_t | xpos,
|  | lcdint_t | y,
|  | const char * | ch,
|  | EFontStyle | style = `STYLE_NORMAL`
| ) |  |

Print text at specified position to canvas

Parameters

  xpos | position in pixels
  y | position in pixels
  ch | pointer to NULL-terminated string, located in flash
  style | specific font style to use

Note
  Supports only STYLE_NORMAL and STYLE_BOLD

## ◆ putPixel() [1/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::putPixel | ( | lcdint_t | x,
|  | lcdint_t | y
| ) |  |

Draws pixel on specified position

Parameters

  x | - position X
  y | - position Y

Note
  color can be set via setColor()

## ◆ putPixel() [2/2]

template<uint8_t BPP>

void NanoCanvasOps< BPP >::putPixel | ( | const NanoPoint & | p | ) |

Draws pixel on specified position

Parameters

  p | - NanoPoint

Note
  color can be set via setColor()

## ◆ rect()

template<uint8_t BPP>

const NanoRect NanoCanvasOps< BPP >::rect | ( |  | ) | const
| inline

Returns rectangle area, covered by canvas in offset terms. If offset is (0,0), then rect() will return ((0,0),(width-1,height-1))

Definition at line 124 of file canvas.h.

## ◆ setColor()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::setColor | ( | uint16_t | color | ) |
| inline

Sets color for monochrome operations

Parameters

  color | - color to set (refer to RGB_COLOR8 definition)

Definition at line 313 of file canvas.h.

## ◆ setMode()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::setMode | ( | uint8_t | modeFlags | ) |
| inline

Sets canvas drawing mode Sets canvas drawing mode. The set flags define transparency of output images.

Parameters

  modeFlags | - combination of flags: CANVAS_TEXT_WRAP, CANVAS_MODE_TRANSPARENT

Definition at line 307 of file canvas.h.

## ◆ setOffset()

template<uint8_t BPP>

void NanoCanvasOps< BPP >::setOffset | ( | lcdint_t | ox,
|  | lcdint_t | oy
| ) |  |
| inline

Sets offset

Parameters

  ox | - X offset in pixels
  oy | - Y offset in pixels

Definition at line 109 of file canvas.h.

## ◆ write()

template<uint8_t BPP>

size_t NanoCanvasOps< BPP >::write | ( | uint8_t | c | ) |
| overridevirtual

Writes single character to canvas

Parameters

  c | - character code to print

Implements Print.

## Member Data Documentation

## ◆ BITS_PER_PIXEL

template<uint8_t BPP>

const uint8_t NanoCanvasOps< BPP >::BITS_PER_PIXEL = BPP
| static

number of bits per single pixel in buffer

Definition at line 63 of file canvas.h.

## ◆ offset

template<uint8_t BPP>

NanoPoint NanoCanvasOps< BPP >::offset = { 0, 0 }

Fixed offset for all operation of NanoCanvasOps in pixels

Definition at line 66 of file canvas.h.

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

- nano_engine/canvas.h