Adafruit GFX Library
Adafruit_GFX.h
1 #ifndef _ADAFRUIT_GFX_H
2 #define _ADAFRUIT_GFX_H
3 
4 #if ARDUINO >= 100
5 #include "Arduino.h"
6 #include "Print.h"
7 #else
8 #include "WProgram.h"
9 #endif
10 #include "gfxfont.h"
11 
12 #include <Adafruit_I2CDevice.h>
13 #include <Adafruit_SPIDevice.h>
14 
18 class Adafruit_GFX : public Print {
19 
20 public:
21  Adafruit_GFX(int16_t w, int16_t h); // Constructor
22 
23  /**********************************************************************/
31  /**********************************************************************/
32  virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
33 
34  // TRANSACTION API / CORE DRAW API
35  // These MAY be overridden by the subclass to provide device-specific
36  // optimized code. Otherwise 'generic' versions are used.
37  virtual void startWrite(void);
38  virtual void writePixel(int16_t x, int16_t y, uint16_t color);
39  virtual void writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h,
40  uint16_t color);
41  virtual void writeFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
42  virtual void writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
43  virtual void writeLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
44  uint16_t color);
45  virtual void endWrite(void);
46 
47  // CONTROL API
48  // These MAY be overridden by the subclass to provide device-specific
49  // optimized code. Otherwise 'generic' versions are used.
50  virtual void setRotation(uint8_t r);
51  virtual void invertDisplay(bool i);
52 
53  // BASIC DRAW API
54  // These MAY be overridden by the subclass to provide device-specific
55  // optimized code. Otherwise 'generic' versions are used.
56 
57  // It's good to implement those, even if using transaction API
58  virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
59  virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
60  virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
61  uint16_t color);
62  virtual void fillScreen(uint16_t color);
63  // Optional and probably not necessary to change
64  virtual void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
65  uint16_t color);
66  virtual void drawRect(int16_t x, int16_t y, int16_t w, int16_t h,
67  uint16_t color);
68 
69  // These exist only with Adafruit_GFX (no subclass overrides)
70  void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
71  void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
72  uint16_t color);
73  void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
74  void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
75  int16_t delta, uint16_t color);
76  void drawEllipse(int16_t x0, int16_t y0, int16_t rw, int16_t rh,
77  uint16_t color);
78  void fillEllipse(int16_t x0, int16_t y0, int16_t rw, int16_t rh,
79  uint16_t color);
80  void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2,
81  int16_t y2, uint16_t color);
82  void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2,
83  int16_t y2, uint16_t color);
84  void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
85  int16_t radius, uint16_t color);
86  void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
87  int16_t radius, uint16_t color);
88  void drawRotatedRect(int16_t cenX, int16_t cenY, int16_t w, int16_t h,
89  int16_t angleDeg, uint16_t color);
90  void fillRotatedRect(int16_t cenX, int16_t cenY, int16_t w, int16_t h,
91  int16_t angleDeg, uint16_t color);
92  void rotatePoint(int16_t &x0, int16_t &y0, int16_t angleDeg);
93  void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w,
94  int16_t h, uint16_t color);
95  void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w,
96  int16_t h, uint16_t color, uint16_t bg);
97  void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h,
98  uint16_t color);
99  void drawBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w, int16_t h,
100  uint16_t color, uint16_t bg);
101  void drawXBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w,
102  int16_t h, uint16_t color);
103  void drawGrayscaleBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
104  int16_t w, int16_t h);
105  void drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap, int16_t w,
106  int16_t h);
107  void drawGrayscaleBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
108  const uint8_t mask[], int16_t w, int16_t h);
109  void drawGrayscaleBitmap(int16_t x, int16_t y, uint8_t *bitmap, uint8_t *mask,
110  int16_t w, int16_t h);
111  void drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[], int16_t w,
112  int16_t h);
113  void drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap, int16_t w,
114  int16_t h);
115  void drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[],
116  const uint8_t mask[], int16_t w, int16_t h);
117  void drawRGBBitmap(int16_t x, int16_t y, uint16_t *bitmap, uint8_t *mask,
118  int16_t w, int16_t h);
119  void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
120  uint16_t bg, uint8_t size);
121  void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
122  uint16_t bg, uint8_t size_x, uint8_t size_y);
123  void getTextBounds(const char *string, int16_t x, int16_t y, int16_t *x1,
124  int16_t *y1, uint16_t *w, uint16_t *h);
125  void getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,
126  int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h);
127  void getTextBounds(const String &str, int16_t x, int16_t y, int16_t *x1,
128  int16_t *y1, uint16_t *w, uint16_t *h);
129  void setTextSize(uint8_t s);
130  void setTextSize(uint8_t sx, uint8_t sy);
131  void setFont(const GFXfont *f = NULL);
132 
133  /**********************************************************************/
139  /**********************************************************************/
140  void setCursor(int16_t x, int16_t y) {
141  cursor_x = x;
142  cursor_y = y;
143  }
144 
145  /**********************************************************************/
152  /**********************************************************************/
153  void setTextColor(uint16_t c) { textcolor = textbgcolor = c; }
154 
155  /**********************************************************************/
161  /**********************************************************************/
162  void setTextColor(uint16_t c, uint16_t bg) {
163  textcolor = c;
164  textbgcolor = bg;
165  }
166 
167  /**********************************************************************/
173  /**********************************************************************/
174  void setTextWrap(bool w) { wrap = w; }
175 
176  /**********************************************************************/
189  /**********************************************************************/
190  void cp437(bool x = true) { _cp437 = x; }
191 
192  using Print::write;
193 #if ARDUINO >= 100
194  virtual size_t write(uint8_t);
195 #else
196  virtual void write(uint8_t);
197 #endif
198 
199  /************************************************************************/
204  /************************************************************************/
205  int16_t width(void) const { return _width; };
206 
207  /************************************************************************/
212  /************************************************************************/
213  int16_t height(void) const { return _height; }
214 
215  /************************************************************************/
220  /************************************************************************/
221  uint8_t getRotation(void) const { return rotation; }
222 
223  // get current cursor position (get rotation safe maximum values,
224  // using: width() for x, height() for y)
225  /************************************************************************/
230  /************************************************************************/
231  int16_t getCursorX(void) const { return cursor_x; }
232 
233  /************************************************************************/
238  /************************************************************************/
239  int16_t getCursorY(void) const { return cursor_y; };
240 
241 protected:
242  void charBounds(unsigned char c, int16_t *x, int16_t *y, int16_t *minx,
243  int16_t *miny, int16_t *maxx, int16_t *maxy);
244  int16_t WIDTH;
245  int16_t HEIGHT;
246  int16_t _width;
247  int16_t _height;
248  int16_t cursor_x;
249  int16_t cursor_y;
250  uint16_t textcolor;
251  uint16_t textbgcolor;
252  uint8_t textsize_x;
253  uint8_t textsize_y;
254  uint8_t rotation;
255  bool wrap;
256  bool _cp437;
258 };
259 
262 
263 public:
264  Adafruit_GFX_Button(void);
265  // "Classic" initButton() uses center & size
266  void initButton(Adafruit_GFX *gfx, int16_t x, int16_t y, uint16_t w,
267  uint16_t h, uint16_t outline, uint16_t fill,
268  uint16_t textcolor, char *label, uint8_t textsize);
269  void initButton(Adafruit_GFX *gfx, int16_t x, int16_t y, uint16_t w,
270  uint16_t h, uint16_t outline, uint16_t fill,
271  uint16_t textcolor, char *label, uint8_t textsize_x,
272  uint8_t textsize_y);
273  // New/alt initButton() uses upper-left corner & size
274  void initButtonUL(Adafruit_GFX *gfx, int16_t x1, int16_t y1, uint16_t w,
275  uint16_t h, uint16_t outline, uint16_t fill,
276  uint16_t textcolor, char *label, uint8_t textsize);
277  void initButtonUL(Adafruit_GFX *gfx, int16_t x1, int16_t y1, uint16_t w,
278  uint16_t h, uint16_t outline, uint16_t fill,
279  uint16_t textcolor, char *label, uint8_t textsize_x,
280  uint8_t textsize_y);
281  void drawButton(bool inverted = false);
282  bool contains(int16_t x, int16_t y);
283 
284  /**********************************************************************/
289  /**********************************************************************/
290  void press(bool p) {
291  laststate = currstate;
292  currstate = p;
293  }
294 
295  bool justPressed();
296  bool justReleased();
297 
298  /**********************************************************************/
303  /**********************************************************************/
304  bool isPressed(void) { return currstate; };
305 
306 private:
307  Adafruit_GFX *_gfx;
308  int16_t _x1, _y1; // Coordinates of top-left corner
309  uint16_t _w, _h;
310  uint8_t _textsize_x;
311  uint8_t _textsize_y;
312  uint16_t _outlinecolor, _fillcolor, _textcolor;
313  char _label[10];
314 
315  bool currstate, laststate;
316 };
317 
319 class GFXcanvas1 : public Adafruit_GFX {
320 public:
321  GFXcanvas1(uint16_t w, uint16_t h, bool allocate_buffer = true);
322  ~GFXcanvas1(void);
323  void drawPixel(int16_t x, int16_t y, uint16_t color);
324  void fillScreen(uint16_t color);
325  void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
326  void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
327  bool getPixel(int16_t x, int16_t y) const;
328  /**********************************************************************/
333  /**********************************************************************/
334  uint8_t *getBuffer(void) const { return buffer; }
335 
336 protected:
337  bool getRawPixel(int16_t x, int16_t y) const;
338  void drawFastRawVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
339  void drawFastRawHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
340  uint8_t *buffer;
342 
344 private:
345 #ifdef __AVR__
346  // Bitmask tables of 0x80>>X and ~(0x80>>X), because X>>Y is slow on AVR
347  static const uint8_t PROGMEM GFXsetBit[], GFXclrBit[];
348 #endif
349 };
350 
352 class GFXcanvas8 : public Adafruit_GFX {
353 public:
354  GFXcanvas8(uint16_t w, uint16_t h, bool allocate_buffer = true);
355  ~GFXcanvas8(void);
356  void drawPixel(int16_t x, int16_t y, uint16_t color);
357  void fillScreen(uint16_t color);
358  void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
359  void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
360  uint8_t getPixel(int16_t x, int16_t y) const;
361  /**********************************************************************/
366  /**********************************************************************/
367  uint8_t *getBuffer(void) const { return buffer; }
368 
369 protected:
370  uint8_t getRawPixel(int16_t x, int16_t y) const;
371  void drawFastRawVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
372  void drawFastRawHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
373  uint8_t *buffer;
375 };
377 
379 class GFXcanvas16 : public Adafruit_GFX {
380 public:
381  GFXcanvas16(uint16_t w, uint16_t h, bool allocate_buffer = true);
382  ~GFXcanvas16(void);
383  void drawPixel(int16_t x, int16_t y, uint16_t color);
384  void fillScreen(uint16_t color);
385  void byteSwap(void);
386  void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
387  void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
388  uint16_t getPixel(int16_t x, int16_t y) const;
389  /**********************************************************************/
394  /**********************************************************************/
395  uint16_t *getBuffer(void) const { return buffer; }
396 
397 protected:
398  uint16_t getRawPixel(int16_t x, int16_t y) const;
399  void drawFastRawVLine(int16_t x, int16_t y, int16_t h, uint16_t color);
400  void drawFastRawHLine(int16_t x, int16_t y, int16_t w, uint16_t color);
401  uint16_t *buffer;
403 };
405 
406 #endif // _ADAFRUIT_GFX_H
uint8_t * getBuffer(void) const
Get a pointer to the internal buffer memory.
Definition: Adafruit_GFX.h:367
void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, int16_t delta, uint16_t color)
Half-circle drawer with fill, used for circles and roundrects.
Definition: Adafruit_GFX.cpp:587
bool isPressed(void)
Query whether the button is currently pressed.
Definition: Adafruit_GFX.h:304
virtual void writePixel(int16_t x, int16_t y, uint16_t color)
Write a pixel, overwrite in subclasses if startWrite is defined!
Definition: Adafruit_GFX.cpp:190
void setTextColor(uint16_t c, uint16_t bg)
Set text font color with custom background color.
Definition: Adafruit_GFX.h:162
void drawXBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)
Draw PROGMEM-resident XBitMap Files (*.xbm), exported from GIMP. Usage: Export from GIMP to *...
Definition: Adafruit_GFX.cpp:1108
Data stored for FONT AS A WHOLE.
Definition: gfxfont.h:21
void setTextWrap(bool w)
Set whether text that is too long for the screen width should automatically wrap around to the next l...
Definition: Adafruit_GFX.h:174
Definition: Adafruit_GFX.h:18
bool buffer_owned
Definition: Adafruit_GFX.h:341
void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
Draw a circle with filled color.
Definition: Adafruit_GFX.cpp:567
uint8_t * getBuffer(void) const
Get a pointer to the internal buffer memory.
Definition: Adafruit_GFX.h:334
virtual void drawPixel(int16_t x, int16_t y, uint16_t color)=0
Draw to the screen/framebuffer/etc. Must be overridden in subclass.
void fillRotatedRect(int16_t cenX, int16_t cenY, int16_t w, int16_t h, int16_t angleDeg, uint16_t color)
Draw a filled rotated rectangle.
Definition: Adafruit_GFX.cpp:781
virtual void endWrite(void)
End a display-writing routine, overwrite in subclasses if startWrite is defined!
Definition: Adafruit_GFX.cpp:253
uint8_t * buffer
Raster data: no longer private, allow subclass access.
Definition: Adafruit_GFX.h:340
void fillEllipse(int16_t x0, int16_t y0, int16_t rw, int16_t rh, uint16_t color)
Draw an ellipse with filled colour.
Definition: Adafruit_GFX.cpp:417
void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size)
Draw a single character.
Definition: Adafruit_GFX.cpp:1372
int16_t getCursorX(void) const
Get text cursor X location.
Definition: Adafruit_GFX.h:231
virtual void writeFillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
Write a rectangle completely with one color, overwrite in subclasses if startWrite is defined! ...
Definition: Adafruit_GFX.cpp:241
int16_t cursor_y
y location to start print()ing text
Definition: Adafruit_GFX.h:249
void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
Draw a triangle with no fill color.
Definition: Adafruit_GFX.cpp:857
GFXfont * gfxFont
Pointer to special font.
Definition: Adafruit_GFX.h:257
void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Draw a rounded rectangle with no fill color.
Definition: Adafruit_GFX.cpp:660
A GFX 1-bit canvas context for graphics.
Definition: Adafruit_GFX.h:319
void setFont(const GFXfont *f=NULL)
Set the font to display when print()ing, either custom or default.
Definition: Adafruit_GFX.cpp:1595
uint8_t textsize_x
Desired magnification in X-axis of text to print()
Definition: Adafruit_GFX.h:252
uint8_t * buffer
Raster data: no longer private, allow subclass access.
Definition: Adafruit_GFX.h:373
A GFX 16-bit canvas context for graphics.
Definition: Adafruit_GFX.h:379
virtual void invertDisplay(bool i)
Invert the display (ideally using built-in hardware command)
Definition: Adafruit_GFX.cpp:1797
void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint16_t color)
Quarter-circle drawer, used to do circles and roundrects.
Definition: Adafruit_GFX.cpp:522
void press(bool p)
Sets button state, should be done by some touch function.
Definition: Adafruit_GFX.h:290
void drawRGBBitmap(int16_t x, int16_t y, const uint16_t bitmap[], int16_t w, int16_t h)
Draw a PROGMEM-resident 16-bit image (RGB 5/6/5) at the specified (x,y) position. For 16-bit display ...
Definition: Adafruit_GFX.cpp:1258
bool _cp437
If set, use correct CP437 charset (default is off)
Definition: Adafruit_GFX.h:256
A GFX 8-bit canvas context for graphics.
Definition: Adafruit_GFX.h:352
void setTextColor(uint16_t c)
Set text font color with transparant background.
Definition: Adafruit_GFX.h:153
virtual void writeLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)
Write a line. Bresenham&#39;s algorithm - thx wikpedia.
Definition: Adafruit_GFX.cpp:132
virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
Fill a rectangle completely with one color. Update in subclasses if desired!
Definition: Adafruit_GFX.cpp:300
int16_t height(void) const
Get height of the display, accounting for current rotation.
Definition: Adafruit_GFX.h:213
void cp437(bool x=true)
Enable (or disable) Code Page 437-compatible charset. There was an error in glcdfont.c for the longest time – one character (#176, the &#39;light shade&#39; block) was missing – this threw off the index of every character that followed it. But a TON of code has been written with the erroneous character indices. By default, the library uses the original &#39;wrong&#39; behavior and old sketches will still work. Pass &#39;true&#39; to this function to use correct CP437 character values in your code.
Definition: Adafruit_GFX.h:190
virtual void setRotation(uint8_t r)
Set rotation setting for display.
Definition: Adafruit_GFX.cpp:1573
void drawRotatedRect(int16_t cenX, int16_t cenY, int16_t w, int16_t h, int16_t angleDeg, uint16_t color)
Draw a rotated rectangle.
Definition: Adafruit_GFX.cpp:721
bool buffer_owned
Definition: Adafruit_GFX.h:374
void drawGrayscaleBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h)
Draw a PROGMEM-resident 8-bit image (grayscale) at the specified (x,y) pos. Specifically for 8-bit di...
Definition: Adafruit_GFX.cpp:1142
bool buffer_owned
Definition: Adafruit_GFX.h:402
void charBounds(unsigned char c, int16_t *x, int16_t *y, int16_t *minx, int16_t *miny, int16_t *maxx, int16_t *maxy)
Helper to determine size of a character with current font/size. Broke this out as it&#39;s used by both t...
Definition: Adafruit_GFX.cpp:1628
uint8_t getRotation(void) const
Get rotation setting for display.
Definition: Adafruit_GFX.h:221
void setTextSize(uint8_t s)
Set text &#39;magnification&#39; size. Each increase in s makes 1 pixel that much bigger. ...
Definition: Adafruit_GFX.cpp:1552
uint16_t textbgcolor
16-bit text color for print()
Definition: Adafruit_GFX.h:251
Adafruit_GFX(int16_t w, int16_t h)
Instatiate a GFX context for graphics! Can only be done by a superclass.
Definition: Adafruit_GFX.cpp:110
int16_t cursor_x
x location to start print()ing text
Definition: Adafruit_GFX.h:248
uint8_t textsize_y
Desired magnification in Y-axis of text to print()
Definition: Adafruit_GFX.h:253
int16_t _height
Display height as modified by current rotation.
Definition: Adafruit_GFX.h:247
void rotatePoint(int16_t &x0, int16_t &y0, int16_t angleDeg)
Rotate a point in standard position.
Definition: Adafruit_GFX.cpp:832
int16_t _width
Display width as modified by current rotation.
Definition: Adafruit_GFX.h:246
void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Draw a rounded rectangle with fill color.
Definition: Adafruit_GFX.cpp:690
virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
Draw a perfectly horizontal line (this is often optimized in a subclass!)
Definition: Adafruit_GFX.cpp:282
int16_t getCursorY(void) const
Get text cursor Y location.
Definition: Adafruit_GFX.h:239
uint8_t rotation
Display rotation (0 thru 3)
Definition: Adafruit_GFX.h:254
void setCursor(int16_t x, int16_t y)
Set text cursor location.
Definition: Adafruit_GFX.h:140
uint16_t * buffer
Raster data: no longer private, allow subclass access.
Definition: Adafruit_GFX.h:401
void drawEllipse(int16_t x0, int16_t y0, int16_t rw, int16_t rh, uint16_t color)
Draw an ellipse outline.
Definition: Adafruit_GFX.cpp:358
uint16_t textcolor
16-bit background color for print()
Definition: Adafruit_GFX.h:250
bool wrap
If set, &#39;wrap&#39; text at right edge of display.
Definition: Adafruit_GFX.h:255
void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
Draw a triangle with color-fill.
Definition: Adafruit_GFX.cpp:876
uint16_t * getBuffer(void) const
Get a pointer to the internal buffer memory.
Definition: Adafruit_GFX.h:395
virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
Draw a perfectly vertical line (this is often optimized in a subclass!)
Definition: Adafruit_GFX.cpp:265
virtual void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)
Draw a line.
Definition: Adafruit_GFX.cpp:330
virtual void startWrite(void)
Start a display-writing routine, overwrite in subclasses.
Definition: Adafruit_GFX.cpp:180
int16_t HEIGHT
This is the &#39;raw&#39; display height - never changes.
Definition: Adafruit_GFX.h:245
void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
Draw a circle outline.
Definition: Adafruit_GFX.cpp:472
virtual void writeFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
Write a perfectly horizontal line, overwrite in subclasses if startWrite is defined! ...
Definition: Adafruit_GFX.cpp:222
void drawBitmap(int16_t x, int16_t y, const uint8_t bitmap[], int16_t w, int16_t h, uint16_t color)
Draw a PROGMEM-resident 1-bit image at the specified (x,y) position, using the specified foreground c...
Definition: Adafruit_GFX.cpp:974
virtual void writeFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
Write a perfectly vertical line, overwrite in subclasses if startWrite is defined! ...
Definition: Adafruit_GFX.cpp:204
A simple drawn button UI element.
Definition: Adafruit_GFX.h:261
virtual void drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
Draw a rectangle with no fill color.
Definition: Adafruit_GFX.cpp:639
void getTextBounds(const char *string, int16_t x, int16_t y, int16_t *x1, int16_t *y1, uint16_t *w, uint16_t *h)
Helper to determine size of a string with current font/size. Pass string and a cursor position...
Definition: Adafruit_GFX.cpp:1705
virtual void write(uint8_t)
Print one byte/character of data, used to support print()
Definition: Adafruit_GFX.cpp:1499
virtual void fillScreen(uint16_t color)
Fill the screen completely with one color. Update in subclasses if desired!
Definition: Adafruit_GFX.cpp:316
int16_t WIDTH
This is the &#39;raw&#39; display width - never changes.
Definition: Adafruit_GFX.h:244
int16_t width(void) const
Get width of the display, accounting for current rotation.
Definition: Adafruit_GFX.h:205