diff --git a/libraries/TFT/src/utility/Adafruit_GFX.cpp b/libraries/TFT/src/utility/Adafruit_GFX.cpp index a7a541cc7..6478c47c9 100644 --- a/libraries/TFT/src/utility/Adafruit_GFX.cpp +++ b/libraries/TFT/src/utility/Adafruit_GFX.cpp @@ -1,40 +1,56 @@ -/****************************************************************** - 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. - ******************************************************************/ +/* +This is the core graphics library for all our displays, providing a common +set of graphics primitives (points, lines, circles, etc.). It needs to be +paired with a hardware-specific library for each display device we carry +(to handle the lower-level functions). + +Adafruit invests time and resources providing this open source code, please +support Adafruit & open-source hardware by purchasing products from Adafruit! + +Copyright (c) 2013 Adafruit Industries. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +*/ #include "Adafruit_GFX.h" #include "glcdfont.c" -#include +#ifdef __AVR__ + #include +#else + #define pgm_read_byte(addr) (*(const unsigned char *)(addr)) +#endif -void Adafruit_GFX::constructor(int16_t w, int16_t h) { - _width = WIDTH = w; - _height = HEIGHT = h; - - rotation = 0; - cursor_y = cursor_x = 0; - textsize = 1; +Adafruit_GFX::Adafruit_GFX(int16_t w, int16_t h) : + WIDTH(w), HEIGHT(h) +{ + _width = WIDTH; + _height = HEIGHT; + rotation = 0; + cursor_y = cursor_x = 0; + textsize = 1; textcolor = textbgcolor = 0xFFFF; wrap = true; - - strokeColor = 0; - useStroke = true; - fillColor = 0; - useFill = false; - } - // draw a circle outline void Adafruit_GFX::drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color) { @@ -66,8 +82,7 @@ void Adafruit_GFX::drawCircle(int16_t x0, int16_t y0, int16_t r, drawPixel(x0 + y, y0 + x, color); drawPixel(x0 - y, y0 + x, color); drawPixel(x0 + y, y0 - x, color); - drawPixel(x0 - y, y0 - x, color); - + drawPixel(x0 - y, y0 - x, color); } } @@ -107,16 +122,17 @@ void Adafruit_GFX::drawCircleHelper( int16_t x0, int16_t y0, } } -void Adafruit_GFX::fillCircle(int16_t x0, int16_t y0, int16_t r, - uint16_t color) { +void Adafruit_GFX::fillCircle(int16_t x0, int16_t y0, int16_t r, + uint16_t color) +{ drawFastVLine(x0, y0-r, 2*r+1, color); fillCircleHelper(x0, y0, r, 3, 0, color); } -// used to do circles and roundrects! +// used to do circles and roundrects void Adafruit_GFX::fillCircleHelper(int16_t x0, int16_t y0, int16_t r, - uint8_t cornername, int16_t delta, uint16_t color) { - + uint8_t cornername, int16_t delta, uint16_t color) +{ int16_t f = 1 - r; int16_t ddF_x = 1; int16_t ddF_y = -2 * r; @@ -144,10 +160,11 @@ void Adafruit_GFX::fillCircleHelper(int16_t x0, int16_t y0, int16_t r, } } -// bresenham's algorithm - thx wikpedia +// Bresenham's algorithm - thx wikpedia void Adafruit_GFX::drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, - uint16_t color) { + uint16_t color) +{ int16_t steep = abs(y1 - y0) > abs(x1 - x0); if (steep) { swap(x0, y0); @@ -187,34 +204,38 @@ void Adafruit_GFX::drawLine(int16_t x0, int16_t y0, } -// draw a rectangle -void Adafruit_GFX::drawRect(int16_t x, int16_t y, +// Draw a rectangle +void Adafruit_GFX::drawRect(int16_t x, int16_t y, int16_t w, int16_t h, - uint16_t color) { + uint16_t color) +{ drawFastHLine(x, y, w, color); drawFastHLine(x, y+h-1, w, color); drawFastVLine(x, y, h, color); drawFastVLine(x+w-1, y, h, color); } -void Adafruit_GFX::drawFastVLine(int16_t x, int16_t y, - int16_t h, uint16_t color) { - // stupidest version - update in subclasses if desired! +void Adafruit_GFX::drawFastVLine(int16_t x, int16_t y, + int16_t h, uint16_t color) +{ + // Update in subclasses if desired! drawLine(x, y, x, y+h-1, color); } -void Adafruit_GFX::drawFastHLine(int16_t x, int16_t y, - int16_t w, uint16_t color) { - // stupidest version - update in subclasses if desired! +void Adafruit_GFX::drawFastHLine(int16_t x, int16_t y, + int16_t w, uint16_t color) +{ + // Update in subclasses if desired! drawLine(x, y, x+w-1, y, color); } -void Adafruit_GFX::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, - uint16_t color) { - // stupidest version - update in subclasses if desired! +void Adafruit_GFX::fillRect(int16_t x, int16_t y, int16_t w, int16_t h, + uint16_t color) +{ + // Update in subclasses if desired! for (int16_t i=x; i= y1 >= y0) @@ -338,8 +360,8 @@ void Adafruit_GFX::fillTriangle ( int16_t x0, int16_t y0, void Adafruit_GFX::drawBitmap(int16_t x, int16_t y, const uint8_t *bitmap, int16_t w, int16_t h, - uint16_t color) { - + uint16_t color) +{ int16_t i, j, byteWidth = (w + 7) / 8; for(j=0; j= _width) || // Clip right - (y >= _height) || // Clip bottom - ((x + 5 * size - 1) < 0) || // Clip left - ((y + 8 * size - 1) < 0)) // Clip top + uint16_t color, uint16_t bg, uint8_t size) +{ + if((x >= _width) || // Clip right + (y >= _height) || // Clip bottom + ((x + 6 * size - 1) < 0) || // Clip left + ((y + 8 * size - 1) < 0)) // Clip top return; for (int8_t i=0; i<6; i++ ) { @@ -410,13 +432,15 @@ void Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, } } -void Adafruit_GFX::setCursor(int16_t x, int16_t y) { +void Adafruit_GFX::setCursor(int16_t x, int16_t y) +{ cursor_x = x; cursor_y = y; } -void Adafruit_GFX::setTextSize(uint8_t s) { +void Adafruit_GFX::setTextSize(uint8_t s) +{ textsize = (s > 0) ? s : 1; } @@ -428,23 +452,25 @@ void Adafruit_GFX::setTextColor(uint16_t c) { // to the same as fg instead of using a flag } - void Adafruit_GFX::setTextColor(uint16_t c, uint16_t b) { + void Adafruit_GFX::setTextColor(uint16_t c, uint16_t b) +{ textcolor = c; textbgcolor = b; - } +} -void Adafruit_GFX::setTextWrap(boolean w) { +void Adafruit_GFX::setTextWrap(boolean w) +{ wrap = w; } -uint8_t Adafruit_GFX::getRotation(void) { - rotation %= 4; +uint8_t Adafruit_GFX::getRotation(void) +{ return rotation; } -void Adafruit_GFX::setRotation(uint8_t x) { - x %= 4; // cant be higher than 3 - rotation = x; +void Adafruit_GFX::setRotation(uint8_t x) +{ + rotation = (x & 3); switch (x) { case 0: case 2: @@ -459,28 +485,32 @@ void Adafruit_GFX::setRotation(uint8_t x) { } } -void Adafruit_GFX::invertDisplay(boolean i) { - // do nothing, can be subclassed -} -// return the size of the display which depends on the rotation! -int16_t Adafruit_GFX::width(void) { +// return the size of the display (per current rotation) +int16_t Adafruit_GFX::width(void) +{ return _width; } -int16_t Adafruit_GFX::height(void) { +int16_t Adafruit_GFX::height(void) +{ return _height; } - - -uint16_t Adafruit_GFX::newColor(uint8_t r, uint8_t g, uint8_t b) { - return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); +void Adafruit_GFX::invertDisplay(boolean i) +{ + // Do nothing, must be subclassed if supported } -void Adafruit_GFX::background(uint8_t red, uint8_t green, uint8_t blue) { +uint16_t Adafruit_GFX::newColor(uint8_t r, uint8_t g, uint8_t b) +{ + return ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3); +} + +void Adafruit_GFX::background(uint8_t red, uint8_t green, uint8_t blue) +{ background(newColor(red, green, blue)); } @@ -488,17 +518,20 @@ void Adafruit_GFX::background(color c) { fillScreen(c); } -void Adafruit_GFX::stroke(uint8_t red, uint8_t green, uint8_t blue) { +void Adafruit_GFX::stroke(uint8_t red, uint8_t green, uint8_t blue) +{ stroke(newColor(red, green, blue)); } -void Adafruit_GFX::stroke(color c) { +void Adafruit_GFX::stroke(color c) +{ useStroke = true; strokeColor = c; setTextColor(c); } -void Adafruit_GFX::noStroke() { +void Adafruit_GFX::noStroke() +{ useStroke = false; } @@ -506,17 +539,20 @@ void Adafruit_GFX::noFill() { useFill = false; } -void Adafruit_GFX::fill(uint8_t red, uint8_t green, uint8_t blue) { +void Adafruit_GFX::fill(uint8_t red, uint8_t green, uint8_t blue) +{ fill(newColor(red, green, blue)); } -void Adafruit_GFX::fill(color c) { +void Adafruit_GFX::fill(color c) +{ useFill = true; fillColor = c; } -void Adafruit_GFX::text(const char * text, int16_t x, int16_t y) { +void Adafruit_GFX::text(const char * text, int16_t x, int16_t y) +{ if (!useStroke) return; @@ -526,7 +562,8 @@ void Adafruit_GFX::text(const char * text, int16_t x, int16_t y) { print(text); } -void Adafruit_GFX::textWrap(const char * text, int16_t x, int16_t y) { +void Adafruit_GFX::textWrap(const char * text, int16_t x, int16_t y) +{ if (!useStroke) return; @@ -537,18 +574,21 @@ void Adafruit_GFX::textWrap(const char * text, int16_t x, int16_t y) { } -void Adafruit_GFX::textSize(uint8_t size) { +void Adafruit_GFX::textSize(uint8_t size) +{ setTextSize(size); } -void Adafruit_GFX::point(int16_t x, int16_t y) { +void Adafruit_GFX::point(int16_t x, int16_t y) +{ if (!useStroke) return; drawPixel(x, y, strokeColor); } -void Adafruit_GFX::line(int16_t x1, int16_t y1, int16_t x2, int16_t y2) { +void Adafruit_GFX::line(int16_t x1, int16_t y1, int16_t x2, int16_t y2) +{ if (!useStroke) return; @@ -569,7 +609,8 @@ void Adafruit_GFX::line(int16_t x1, int16_t y1, int16_t x2, int16_t y2) { } } -void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height) { +void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height) +{ if (useFill) { fillRect(x, y, width, height, fillColor); } @@ -578,7 +619,8 @@ void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height) { } } -void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t radius) { +void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t radius) +{ if (radius == 0) { rect(x, y, width, height); } @@ -590,7 +632,8 @@ void Adafruit_GFX::rect(int16_t x, int16_t y, int16_t width, int16_t height, int } } -void Adafruit_GFX::circle(int16_t x, int16_t y, int16_t r) { +void Adafruit_GFX::circle(int16_t x, int16_t y, int16_t r) +{ if (r == 0) return; @@ -602,7 +645,8 @@ void Adafruit_GFX::circle(int16_t x, int16_t y, int16_t r) { } } -void Adafruit_GFX::triangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3) { +void Adafruit_GFX::triangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3) +{ if (useFill) { fillTriangle(x1, y1, x2, y2, x3, y3, fillColor); } @@ -668,4 +712,4 @@ void Adafruit_GFX::image(PImage & img, uint16_t x, uint16_t y) { } -#endif \ No newline at end of file +#endif diff --git a/libraries/TFT/src/utility/Adafruit_GFX.h b/libraries/TFT/src/utility/Adafruit_GFX.h index b49aa0f33..f5f23c477 100644 --- a/libraries/TFT/src/utility/Adafruit_GFX.h +++ b/libraries/TFT/src/utility/Adafruit_GFX.h @@ -55,9 +55,9 @@ */ #if defined(__SD_H__) // Arduino SD library -# include "PImage.h" + #include "PImage.h" #else -# warning "The SD library was not found. loadImage() and image() won't be supported." + #warning "The SD library was not found. loadImage() and image() won't be supported." #endif #define swap(a, b) { int16_t t = a; a = b; b = t; } @@ -76,61 +76,68 @@ typedef uint16_t color; class Adafruit_GFX : public Print { public: - //Adafruit_GFX(); - // i have no idea why we have to formally call the constructor. kinda sux - void constructor(int16_t w, int16_t h); + 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); - virtual void invertDisplay(boolean i); + // This MUST be defined by the subclass + virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0; - // these are 'generic' drawing functions, so we can share them! - virtual 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); + // 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); - 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); +// 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), - void drawBitmap(int16_t x, int16_t y, + 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); - void drawChar(int16_t x, int16_t y, unsigned char c, - uint16_t color, uint16_t bg, uint8_t size); + 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 - 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); + int16_t + height(void), + width(void); + - void setRotation(uint8_t r); uint8_t getRotation(void); @@ -145,45 +152,40 @@ class Adafruit_GFX : public Print { virtual uint16_t newColor(uint8_t red, uint8_t green, uint8_t blue); - // http://processing.org/reference/background_.html - void background(uint8_t red, uint8_t green, uint8_t blue); - void background(color c); + void + // http://processing.org/reference/background_.html + background(uint8_t red, uint8_t green, uint8_t blue), + background(color c), - // http://processing.org/reference/fill_.html - void fill(uint8_t red, uint8_t green, uint8_t blue); - void fill(color c); + // http://processing.org/reference/fill_.html + fill(uint8_t red, uint8_t green, uint8_t blue), + fill(color c), - // http://processing.org/reference/noFill_.html - void noFill(); + // http://processing.org/reference/noFill_.html + noFill(), - // http://processing.org/reference/stroke_.html - void stroke(uint8_t red, uint8_t green, uint8_t blue); - void stroke(color c); + // http://processing.org/reference/stroke_.html + stroke(uint8_t red, uint8_t green, uint8_t blue), + stroke(color c), - // http://processing.org/reference/noStroke_.html - void noStroke(); + // http://processing.org/reference/noStroke_.html + noStroke(), - void text (const char * text, int16_t x, int16_t y); - void textWrap(const char * text, int16_t x, int16_t y); + text(const char * text, int16_t x, int16_t y), + textWrap(const char * text, int16_t x, int16_t y), - void textSize(uint8_t size); + textSize(uint8_t size), - // similar to ellipse() in Processing, but with - // a single radius. - // http://processing.org/reference/ellipse_.html - void circle(int16_t x, int16_t y, int16_t r); - - void point(int16_t x, int16_t y); - - void line(int16_t x1, int16_t y1, int16_t x2, int16_t y2); - - void quad(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, int16_t x4, int16_t y4); - - void rect(int16_t x, int16_t y, int16_t width, int16_t height); - - void rect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t radius); - - void triangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3); + // similar to ellipse() in Processing, but with + // a single radius. + // http://processing.org/reference/ellipse_.html + circle(int16_t x, int16_t y, int16_t r), + point(int16_t x, int16_t y), + line(int16_t x1, int16_t y1, int16_t x2, int16_t y2), + quad(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3, int16_t x4, int16_t y4), +rect(int16_t x, int16_t y, int16_t width, int16_t height), + rect(int16_t x, int16_t y, int16_t width, int16_t height, int16_t radius), + triangle(int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t x3, int16_t y3); /* TODO void rectMode(RectMode mode); @@ -199,13 +201,18 @@ class Adafruit_GFX : public Print { #endif protected: - 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 + int16_t + WIDTH, HEIGHT; // this is the 'raw' display w/h - never changes + int16_t + _width, _height, // dependent on rotation + cursor_x, cursor_y; + uint16_t + textcolor, textbgcolor; + uint8_t + textsize, + rotation; + boolean + wrap; // If set, 'wrap' text at right edge of display /* * Processing-style graphics state @@ -362,6 +369,4 @@ PImage PImage::loadImage(const char * fileName) { #endif - - -#endif +#endif // _ADAFRUIT_GFX_H diff --git a/libraries/TFT/src/utility/Adafruit_ST7735.cpp b/libraries/TFT/src/utility/Adafruit_ST7735.cpp index ed57bf72b..fee601bcd 100755 --- a/libraries/TFT/src/utility/Adafruit_ST7735.cpp +++ b/libraries/TFT/src/utility/Adafruit_ST7735.cpp @@ -30,7 +30,8 @@ inline uint16_t swapcolor(uint16_t x) { // Constructor when using software SPI. All output pins are configurable. Adafruit_ST7735::Adafruit_ST7735(uint8_t cs, uint8_t rs, uint8_t sid, - uint8_t sclk, uint8_t rst) { + uint8_t sclk, uint8_t rst) : Adafruit_GFX(ST7735_TFTWIDTH, ST7735_TFTHEIGHT) +{ _cs = cs; _rs = rs; _sid = sid; @@ -42,7 +43,9 @@ Adafruit_ST7735::Adafruit_ST7735(uint8_t cs, uint8_t rs, uint8_t sid, // Constructor when using hardware SPI. Faster, but must use SPI pins // specific to each board type (e.g. 11,13 for Uno, 51,52 for Mega, etc.) -Adafruit_ST7735::Adafruit_ST7735(uint8_t cs, uint8_t rs, uint8_t rst) { +Adafruit_ST7735::Adafruit_ST7735(uint8_t cs, uint8_t rs, uint8_t rst) : +Adafruit_GFX(ST7735_TFTWIDTH, ST7735_TFTHEIGHT) +{ _cs = cs; _rs = rs; _rst = rst; @@ -258,8 +261,7 @@ void Adafruit_ST7735::commandList(uint8_t *addr) { // Initialization code common to both 'B' and 'R' type displays void Adafruit_ST7735::commonInit(uint8_t *cmdList) { - constructor(ST7735_TFTWIDTH, ST7735_TFTHEIGHT); - colstart = rowstart = 0; // May be overridden in init func + colstart = rowstart = 0; // May be overridden in init func pinMode(_rs, OUTPUT); pinMode(_cs, OUTPUT); diff --git a/libraries/TFT/src/utility/Adafruit_ST7735.h b/libraries/TFT/src/utility/Adafruit_ST7735.h index a5d560ff5..fb99b645f 100755 --- a/libraries/TFT/src/utility/Adafruit_ST7735.h +++ b/libraries/TFT/src/utility/Adafruit_ST7735.h @@ -1,4 +1,4 @@ -/*************************************************** + /*************************************************** This is a library for the Adafruit 1.8" SPI display. This library works with the Adafruit 1.8" TFT Breakout w/SD card ----> http://www.adafruit.com/products/358