upm  1.0.2
Sensor/Actuator repository for libmraa (v1.1.1)
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ili9341_gfx.hpp
1 
27 #pragma once
28 
29 #include <mraa.hpp>
30 
31 #define adagfxswap(a, b) { int16_t t = a; a = b; b = t; }
32 
33 namespace upm
34 {
38  class GFX {
39  public:
40 
47  GFX(int16_t w, int16_t h);
48 
52  virtual ~GFX() {};
53 
62  virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
63 
73  virtual void drawLine(int16_t x0,
74  int16_t y0,
75  int16_t x1,
76  int16_t y1,
77  uint16_t color);
78 
87  virtual void drawFastVLine(int16_t x,
88  int16_t y,
89  int16_t h,
90  uint16_t color);
91 
100  virtual void drawFastHLine(int16_t x,
101  int16_t y,
102  int16_t w,
103  uint16_t color);
104 
114  virtual void drawRect(int16_t x,
115  int16_t y,
116  int16_t w,
117  int16_t h,
118  uint16_t color);
119 
129  virtual void fillRect(int16_t x,
130  int16_t y,
131  int16_t w,
132  int16_t h,
133  uint16_t color);
134 
140  virtual void fillScreen(uint16_t color);
141 
147  virtual void invertDisplay(bool i);
148 
157  void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
158 
168  void drawCircleHelper(int16_t x0,
169  int16_t y0,
170  int16_t r,
171  uint8_t cornername,
172  uint16_t color);
173 
182  void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
183 
194  void fillCircleHelper(int16_t x0,
195  int16_t y0,
196  int16_t r,
197  uint8_t cornername,
198  int16_t delta,
199  uint16_t color);
200 
212  void drawTriangle(int16_t x0,
213  int16_t y0,
214  int16_t x1,
215  int16_t y1,
216  int16_t x2,
217  int16_t y2,
218  uint16_t color);
219 
231  void fillTriangle(int16_t x0,
232  int16_t y0,
233  int16_t x1,
234  int16_t y1,
235  int16_t x2,
236  int16_t y2,
237  uint16_t color);
238 
249  void drawRoundRect(int16_t x0,
250  int16_t y0,
251  int16_t w,
252  int16_t h,
253  int16_t radius,
254  uint16_t color);
255 
266  void fillRoundRect(int16_t x0,
267  int16_t y0,
268  int16_t w,
269  int16_t h,
270  int16_t radius,
271  uint16_t color);
272 
283  void drawChar(int16_t x,
284  int16_t y,
285  unsigned char c,
286  uint16_t color,
287  uint16_t bg,
288  uint8_t size);
289 
295  int16_t getCursorX(void) const;
296 
302  int16_t getCursorY(void) const;
303 
310  void setCursor(int16_t x, int16_t y);
311 
317  void setTextColor(uint16_t c);
318 
325  void setTextColor(uint16_t c, uint16_t bg);
326 
332  void setTextSize(uint8_t s);
333 
339  void setTextWrap(bool w);
340 
346  uint8_t getRotation(void) const;
347 
354  void setRotation(uint8_t r);
355 
361  void cp437(bool x);
362 
369  virtual void write(uint8_t c);
370 
376  void print(std::string msg);
377 
383  int16_t width(void) const;
384 
390  int16_t height(void) const;
391 
392  protected:
393 
394  const int16_t WIDTH;
395  const int16_t HEIGHT;
396 
397  int16_t _width;
398  int16_t _height;
399 
400  uint8_t rotation;
401 
402  uint16_t textcolor;
403  uint16_t textbgcolor;
404  int16_t cursor_x;
405  int16_t cursor_y;
406  uint8_t textsize;
407  bool wrap;
408  bool _cp437;
409  static const unsigned char font[];
410  };
411 }
virtual void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)
Definition: ili9341_gfx.cxx:45
void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
Definition: ili9341_gfx.cxx:254
void setTextSize(uint8_t s)
Definition: ili9341_gfx.cxx:426
virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
Definition: ili9341_gfx.cxx:96
void setTextWrap(bool w)
Definition: ili9341_gfx.cxx:430
GFX helper class.
Definition: ili9341_gfx.hpp:38
virtual void drawPixel(int16_t x, int16_t y, uint16_t color)=0
int16_t height(void) const
Definition: ili9341_gfx.cxx:488
virtual void drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
Definition: ili9341_gfx.cxx:103
void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color)
Definition: ili9341_gfx.cxx:242
int16_t getCursorX(void) const
Definition: ili9341_gfx.cxx:402
virtual void fillScreen(uint16_t color)
Definition: ili9341_gfx.cxx:124
virtual ~GFX()
Definition: ili9341_gfx.hpp:52
void setTextColor(uint16_t c)
Definition: ili9341_gfx.cxx:415
GFX(int16_t w, int16_t h)
Definition: ili9341_gfx.cxx:31
void setRotation(uint8_t r)
Definition: ili9341_gfx.cxx:438
void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint16_t color)
Definition: ili9341_gfx.cxx:165
void setCursor(int16_t x, int16_t y)
Definition: ili9341_gfx.cxx:410
void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Definition: ili9341_gfx.cxx:356
void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color)
Definition: ili9341_gfx.cxx:337
virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
Definition: ili9341_gfx.cxx:89
void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, int16_t delta, uint16_t color)
Definition: ili9341_gfx.cxx:209
void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size)
Definition: ili9341_gfx.cxx:371
void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
Definition: ili9341_gfx.cxx:204
uint8_t getRotation(void) const
Definition: ili9341_gfx.cxx:434
int16_t getCursorY(void) const
Definition: ili9341_gfx.cxx:406
void print(std::string msg)
Definition: ili9341_gfx.cxx:477
int16_t width(void) const
Definition: ili9341_gfx.cxx:484
void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)
Definition: ili9341_gfx.cxx:132
void cp437(bool x)
Definition: ili9341_gfx.cxx:454
virtual void invertDisplay(bool i)
Definition: ili9341_gfx.cxx:128
virtual void write(uint8_t c)
Definition: ili9341_gfx.cxx:458
virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)
Definition: ili9341_gfx.cxx:114