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.

Dependents:   testUniGraphic_150217 maze_TFT_MMA8451Q TFT_test_frdm-kl25z TFT_test_NUCLEO-F411RE ... more

Revision:
27:acb2594b8aa4
Parent:
25:daacdcf34e52
--- a/Display/TFT.cpp	Sun Oct 18 17:31:33 2015 +0000
+++ b/Display/TFT.cpp	Mon Oct 26 12:49:02 2015 +0000
@@ -22,13 +22,12 @@
 
 #define SWAP(a, b)  { a ^= b; b ^= a; a ^= b; }
 
+#if DEVICE_PORTINOUT 
 TFT::TFT(proto_t displayproto, PortName port, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const int lcdsize_x, const int lcdsize_y, const char *name)
     : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y)
 {
-#if DEVICE_PORTINOUT    
     if(displayproto==PAR_8) proto = new PAR8(port, CS, reset, DC, WR, RD);
-    else if(displayproto==PAR_16) proto = new PAR16(port, CS, reset, DC, WR, RD);
-#endif    
+    else if(displayproto==PAR_16) proto = new PAR16(port, CS, reset, DC, WR, RD);   
     useNOP=false;
     scrollbugfix=0;
     mipistd=false;
@@ -45,6 +44,8 @@
   //  cls();
   //  locate(0,0);
 }
+#endif 
+
 TFT::TFT(proto_t displayproto, PinName* buspins, PinName CS, PinName reset, PinName DC, PinName WR, PinName RD, const int lcdsize_x, const int lcdsize_y, const char *name)
     : GraphicsDisplay(name), screensize_X(lcdsize_x), screensize_Y(lcdsize_y)
 {