Clone of the Adafruit Graphics Library
Fork of Adafruit_GFX by
Adafruit_GFX.h
- Committer:
- SomeRandomBloke
- Date:
- 2013-08-15
- Revision:
- 1:e67555532f16
- Parent:
- 0:08cfbae05724
- Child:
- 2:a7d4ac7ed08a
File content as of revision 1:e67555532f16:
/****************************************************************** This is the core graphics library for all our displays, providing basic graphics primitives (points, lines, circles, etc.). It needs to be paired with a hardware-specific library for each display device we carry (handling the lower-level functions). Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! Written by Limor Fried/Ladyada for Adafruit Industries. BSD license, check license.txt for more information. All text above must be included in any redistribution. ******************************************************************/ #ifndef _ADAFRUIT_GFX_H #define _ADAFRUIT_GFX_H #include "mbed.h" #include "Stream.h" #define swap(a, b) { int16_t t = a; a = b; b = t; } #define boolean bool class Adafruit_GFX : public Stream { public: //Adafruit_GFX(); Adafruit_GFX(int16_t w, int16_t h); // Constructor // i have no idea why we have to formally call the constructor. kinda sux //void constructor(int16_t w, int16_t h); virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0; virtual void invertDisplay(boolean i); // these are 'generic' drawing functions, so we can share them! void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,uint16_t color); virtual void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color); virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); virtual void drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color); virtual void fillScreen(uint16_t color); void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color); void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, uint16_t color); void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color); void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername, int16_t delta, uint16_t color); void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,int16_t x2, int16_t y2, uint16_t color); void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color); void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color); void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color); void drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, uint16_t color); void drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size); void setCursor(int16_t x, int16_t y); void setTextColor(uint16_t c); void setTextColor(uint16_t c, uint16_t bg); void setTextSize(uint8_t s); void setTextWrap(boolean w); int16_t height(void); int16_t width(void); void setRotation(uint8_t r); uint8_t getRotation(void); protected: virtual int _putc(int value); virtual int _getc(); const int16_t WIDTH, HEIGHT; // this is the 'raw' display w/h - never changes int16_t _width, _height; // dependent on rotation int16_t cursor_x, cursor_y; uint16_t textcolor, textbgcolor; uint8_t textsize; uint8_t rotation; boolean wrap; // If set, 'wrap' text at right edge of display }; #endif