diff options
Diffstat (limited to 'peripheral/libupm/src/ili9341/gfx.h')
-rw-r--r-- | peripheral/libupm/src/ili9341/gfx.h | 406 |
1 files changed, 0 insertions, 406 deletions
diff --git a/peripheral/libupm/src/ili9341/gfx.h b/peripheral/libupm/src/ili9341/gfx.h deleted file mode 100644 index c62e81e..0000000 --- a/peripheral/libupm/src/ili9341/gfx.h +++ /dev/null @@ -1,406 +0,0 @@ -/** - * Author: Shawn Hymel - * Copyright (c) 2016 SparkFun Electronics - * - * Based on GFX interface by Yevgeniy Kiveisha and Adafruit Industries. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -#pragma once - -#include <mraa.hpp> - -#define adagfxswap(a, b) { int16_t t = a; a = b; b = t; } - -namespace upm -{ - /** - * @brief GFX helper class - */ - class GFX { - public: - - /** - * Creates a GFX object - * - * @param w Screen width - * @param h Screen height - */ - GFX(int16_t w, int16_t h); - - /** - * Sends a pixel color (RGB) to the driver chip. This must be - * defined by the subclass (pure virtual function). - * - * @param x Axis on the horizontal scale - * @param y Axis on the vertical scale - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0; - - /** - * Draw a line. - * - * @param x0 Start of line x coordinate - * @param y0 Start of line y coordinate - * @param x1 End of line x coordinate - * @param y1 End of line y coordinate - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void drawLine(int16_t x0, - int16_t y0, - int16_t x1, - int16_t y1, - uint16_t color); - - /** - * Draws a vertical line using minimal SPI writes. - * - * @param x Axis on the horizontal scale to begin line - * @param y Axis on the vertical scale to begin line - * @param h Height of line in pixels - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void drawFastVLine(int16_t x, - int16_t y, - int16_t h, - uint16_t color); - - /** - * Draws a horizontal line using minimal SPI writes. - * - * @param x Axis on the horizontal scale to begin line - * @param y Axis on the vertical scale to begin line - * @param w Width of line in pixels - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void drawFastHLine(int16_t x, - int16_t y, - int16_t w, - uint16_t color); - - /** - * Draws a rectangle (not filled). - * - * @param x Position of upper left corner on horizontal axis - * @param y Position of upper left corner on vertical axis - * @param w Width of rectangle - * @param h Height of rectangle - * @color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void drawRect(int16_t x, - int16_t y, - int16_t w, - int16_t h, - uint16_t color); - - /** - * Draw a filled rectangle. - * - * @param x Axis on the horizontal scale of upper-left corner - * @param y Axis on the vertical scale of upper-left corner - * @param w Width of rectangle in pixels - * @param h Height of rectangle in pixels - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void fillRect(int16_t x, - int16_t y, - int16_t w, - int16_t h, - uint16_t color); - - /** - * Fill the screen with a single color. - * - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - virtual void fillScreen(uint16_t color); - - /** - * Invert colors on the display. - * - * @param i True or false to invert colors - */ - virtual void invertDisplay(bool i); - - /** - * Draw a circle outline. - * - * @param x0 Center point of circle on x-axis - * @param y0 Center point of circle on y-axis - * @param r Radius of circle - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color); - - /** - * Used to draw rounded corners. - * - * @param x0 Center point of circle on x-axis - * @param y0 Center point of circle on y-axis - * @param r Radius of circle - * @param cornername Mask of corner number (1, 2, 4, 8) - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void drawCircleHelper(int16_t x0, - int16_t y0, - int16_t r, - uint8_t cornername, - uint16_t color); - - /** - * Draws a filled circle. - * - * @param x0 Center point of circle on x-axis - * @param y0 Center point of circle on y-axis - * @param r Radius of circle - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color); - - /** - * Used to draw a filled circle and rounded rectangles. - * - * @param x0 Center point of circle on x-axis - * @param y0 Center point of circle on y-axis - * @param r Radius of circle - * @param cornername Mask of corner number (1, 2, 4, 8) - * @param delta Line offset - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void fillCircleHelper(int16_t x0, - int16_t y0, - int16_t r, - uint8_t cornername, - int16_t delta, - uint16_t color); - - /** - * Draw a triangle. - * - * @param x0 First point coordinate on x-axis - * @param y0 First point coordinate on y-axis - * @param x1 Second point coordinate on x-axis - * @param y1 Second point coordinate on y-axis - * @param x2 Third point coordinate on x-axis - * @param y2 Third point coordinate on y-axis - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - 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 filled triangle. - * - * @param x0 First point coordinate on x-axis - * @param y0 First point coordinate on y-axis - * @param x1 Second point coordinate on x-axis - * @param y1 Second point coordinate on y-axis - * @param x2 Third point coordinate on x-axis - * @param y2 Third point coordinate on y-axis - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - 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 rectangle with rounded corners - * - * @param x0 X-axis coordinate of top-left corner - * @param y0 Y-axis coordinate of top-left corner - * @param w Width of rectangle - * @param h height of rectangle - * @param radius Radius of rounded corners - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void drawRoundRect(int16_t x0, - int16_t y0, - int16_t w, - int16_t h, - int16_t radius, - uint16_t color); - - /** - * Draw a filled rectangle with rounded corners - * - * @param x0 X-axis coordinate of top-left corner - * @param y0 Y-axis coordinate of top-left corner - * @param w Width of rectangle - * @param h height of rectangle - * @param radius Radius of rounded corners - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void fillRoundRect(int16_t x0, - int16_t y0, - int16_t w, - int16_t h, - int16_t radius, - uint16_t color); - - /** - * Draw a character at the specified point. - * - * @param x X-axis coordinate of the top-left corner - * @param y Y-axis coordinate of the top-left corner - * @param c Character to draw - * @param color RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - * @param bg Background color (16-bit RGB) - * @param size Font size - */ - void drawChar(int16_t x, - int16_t y, - unsigned char c, - uint16_t color, - uint16_t bg, - uint8_t size); - - /** - * Get the x-axis coordinate of the upper-left corner of the cursor. - * - * @return X-axis coordinate of the cursor - */ - int16_t getCursorX(void) const; - - /** - * Get the y-axis coordinate of the upper-left corner of the cursor. - * - * @return Y-axis coordinate of the cursor - */ - int16_t getCursorY(void) const; - - /** - * Set the cursor for writing text. - * - * @param x X-axis coordinate of the top-left corner of the cursor - * @param y Y-axis coordinate of the top-left corner of the cursor - */ - void setCursor(int16_t x, int16_t y); - - /** - * Set the color for text. - * - * @param c RGB (16-bit) color (R[0-4], G[5-10], B[11-15] - */ - void setTextColor(uint16_t c); - - /** - * Set the color for text and text background (highlight). - * - * @param c Text color (RGB, 16-bit) - * @param bg Background text color (RGB, 16-bit) - */ - void setTextColor(uint16_t c, uint16_t bg); - - /** - * Set the size of the text. - * - * @param s Font size (multiples of 8 pixel text height) - */ - void setTextSize(uint8_t s); - - /** - * Enable or disable text wrapping. - * - * @param w True to wrap text. False to truncate. - */ - void setTextWrap(bool w); - - /** - * Get the current rotation configuration of the screen. - * - * @return current rotation 0-3 - */ - uint8_t getRotation(void) const; - - /** - * Sets the rotation of the screen. Can be overridden with another - * screen-specific definition. - * - * @param r Rotation 0-3 - */ - void setRotation(uint8_t r); - - /** - * Enable (or disable) Code Page 437-compatible charset. - * - * @param x True to enable CP437 charset. False to disable. - */ - void cp437(bool x); - - /** - * Write a character at the current cursor position. Definition - * can be overridden with board-specific code. - * - * @param c Character to draw - */ - virtual void write(uint8_t c); - - /** - * Prints a string to the screen. - * - * @param s Message to print - */ - void print(std::string msg); - - /** - * Get the current width of the screen. - * - * @return the width in pixels - */ - int16_t width(void) const; - - /** - * Get the current height of the screen. - * - * @return the height in pixels - */ - int16_t height(void) const; - - protected: - - const int16_t WIDTH; - const int16_t HEIGHT; - - int16_t _width; - int16_t _height; - - uint8_t rotation; - - uint16_t textcolor; - uint16_t textbgcolor; - int16_t cursor_x; - int16_t cursor_y; - uint8_t textsize; - bool wrap; - bool _cp437; - static const unsigned char font[]; - }; -}
\ No newline at end of file |