Basically i glued Peter Drescher and Simon Ford libs in a GraphicsDisplay class, then derived TFT or LCD class (which inherits Protocols class), then the most derived ones (Inits), which are per-display and are the only part needed to be adapted to diff hw.
Diff: Display/LCD.h
- Revision:
- 2:713844a55c4e
- Parent:
- 1:ff019d22b275
- Child:
- 4:12ba0ecc2c1f
diff -r ff019d22b275 -r 713844a55c4e Display/LCD.h --- a/Display/LCD.h Fri Feb 13 15:25:10 2015 +0000 +++ b/Display/LCD.h Fri Feb 13 23:17:55 2015 +0000 @@ -8,10 +8,6 @@ #include "SPI16.h" #include "Protocols.h" -#define Black 1 -#define White 0 - - /** Draw mode * NORMAl @@ -76,6 +72,19 @@ * @param color is the pixel color. */ virtual void window_pushpixel(unsigned short color); + + /** Push some pixels of the same color into the window and increment position. + * You must first call window() then push pixels. + * @param color is the pixel color. + * @param count: how many + */ + virtual void window_pushpixel(unsigned short color, unsigned int count); + + /** Push array of pixel colors into the window and increment position. + * You must first call window() then push pixels. + * @param color is the pixel color. + */ + virtual void window_pushpixelbuf(unsigned short* color, unsigned int lenght); /** Framebuffer is used, it needs to be sent to LCD from time to time */ @@ -105,19 +114,7 @@ */ virtual void cls(); - /** setup auto update of screen - * - * @param up 1 = on , 0 = off - * if switched off the program has to call copy_to_lcd() - * to update screen from framebuffer - */ - void set_auto_up(bool up); - - /** get status of the auto update function - * - * @returns if auto update is on - */ - bool get_auto_up(void); + @@ -219,7 +216,7 @@ private: - + Protocols* proto; unsigned char *buffer; unsigned short *buffer16; const int LCDSIZE_X;