mirror of
https://github.com/adafruit/Adafruit-GFX-Library.git
synced 2024-10-03 18:18:46 -04:00
88 lines
2.7 KiB
C++
88 lines
2.7 KiB
C++
#ifndef _ADAFRUIT_GFX_H
|
|
#define _ADAFRUIT_GFX_H
|
|
|
|
#if ARDUINO >= 100
|
|
#include "Arduino.h"
|
|
#include "Print.h"
|
|
#else
|
|
#include "WProgram.h"
|
|
#endif
|
|
|
|
#define swap(a, b) { int16_t t = a; a = b; b = t; }
|
|
|
|
class Adafruit_GFX : public Print {
|
|
|
|
public:
|
|
|
|
Adafruit_GFX(int16_t w, int16_t h); // Constructor
|
|
|
|
// This MUST be defined by the subclass:
|
|
virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
|
|
|
|
// These MAY be overridden by the subclass to provide device-specific
|
|
// optimized code. Otherwise 'generic' versions are used.
|
|
virtual void
|
|
drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color),
|
|
drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color),
|
|
drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color),
|
|
drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
|
|
fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color),
|
|
fillScreen(uint16_t color),
|
|
invertDisplay(boolean i);
|
|
|
|
// These exist only with Adafruit_GFX (no subclass overrides)
|
|
void
|
|
drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
|
|
drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
|
|
uint16_t color),
|
|
fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color),
|
|
fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,
|
|
int16_t delta, uint16_t color),
|
|
drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
|
|
int16_t x2, int16_t y2, uint16_t color),
|
|
fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
|
|
int16_t x2, int16_t y2, uint16_t color),
|
|
drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
|
|
int16_t radius, uint16_t color),
|
|
fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,
|
|
int16_t radius, uint16_t color),
|
|
drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap,
|
|
int16_t w, int16_t h, uint16_t color),
|
|
drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color,
|
|
uint16_t bg, uint8_t size),
|
|
setCursor(int16_t x, int16_t y),
|
|
setTextColor(uint16_t c),
|
|
setTextColor(uint16_t c, uint16_t bg),
|
|
setTextSize(uint8_t s),
|
|
setTextWrap(boolean w),
|
|
setRotation(uint8_t r);
|
|
|
|
#if ARDUINO >= 100
|
|
virtual size_t write(uint8_t);
|
|
#else
|
|
virtual void write(uint8_t);
|
|
#endif
|
|
|
|
int16_t
|
|
height(void),
|
|
width(void);
|
|
|
|
uint8_t getRotation(void);
|
|
|
|
protected:
|
|
const int16_t
|
|
WIDTH, HEIGHT; // This is the 'raw' display w/h - never changes
|
|
int16_t
|
|
_width, _height, // Display w/h as modified by current rotation
|
|
cursor_x, cursor_y;
|
|
uint16_t
|
|
textcolor, textbgcolor;
|
|
uint8_t
|
|
textsize,
|
|
rotation;
|
|
boolean
|
|
wrap; // If set, 'wrap' text at right edge of display
|
|
};
|
|
|
|
#endif // _ADAFRUIT_GFX_H
|