Base LCDPanel based, required for all LCDPanel drivers

Committer:
silviogissi
Date:
Sun Mar 11 01:33:10 2012 +0000
Revision:
2:ab4040a7e8c9
Parent:
1:073d4f161f23

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
silviogissi 2:ab4040a7e8c9 1 /* LCDPanel base library for LCD/TFT Panels
silviogissi 2:ab4040a7e8c9 2 * Copyright (c) 2012, Silvio Gissi */
silviogissi 1:073d4f161f23 3
silviogissi 1:073d4f161f23 4 #include "LCDPanel.h"
silviogissi 1:073d4f161f23 5
silviogissi 1:073d4f161f23 6 LCDPanel::LCDPanel(unsigned int width, unsigned int height, PinName cs)
silviogissi 1:073d4f161f23 7 : _ymax(height-1)
silviogissi 1:073d4f161f23 8 , _xmax(width-1)
silviogissi 1:073d4f161f23 9 , _cs(cs)
silviogissi 1:073d4f161f23 10 {
silviogissi 1:073d4f161f23 11 }
silviogissi 1:073d4f161f23 12
silviogissi 1:073d4f161f23 13 // Default implementation, pixel by pixel
silviogissi 2:ab4040a7e8c9 14 void LCDPanel::fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, uint16_t color) {
silviogissi 1:073d4f161f23 15 if (x1>x2) {unsigned int tmp=x1; x1=x2; x2=tmp;}
silviogissi 1:073d4f161f23 16 if (y1>y2) {unsigned int tmp=y1; y1=y2; y2=tmp;}
silviogissi 2:ab4040a7e8c9 17 CsTransaction(this);
silviogissi 1:073d4f161f23 18 window(x1,y1,x2,y2);
silviogissi 1:073d4f161f23 19 for(unsigned int i=0;i<(x2-x1)*(y2-y1);i++) { pixel(color); }
silviogissi 1:073d4f161f23 20 }
silviogissi 1:073d4f161f23 21
silviogissi 1:073d4f161f23 22 // Default implementation, pixel by pixel
silviogissi 2:ab4040a7e8c9 23 void LCDPanel::fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, const uint16_t* color) {
silviogissi 1:073d4f161f23 24 if (x1>x2) {unsigned int tmp=x1; x1=x2; x2=tmp;}
silviogissi 1:073d4f161f23 25 if (y1>y2) {unsigned int tmp=y1; y1=y2; y2=tmp;}
silviogissi 1:073d4f161f23 26 CsTransaction(this);
silviogissi 1:073d4f161f23 27 window(x1,y1,x2,y2);
silviogissi 1:073d4f161f23 28 for(unsigned int i=0;i<(x2-x1)*(y2-y1);i++) { pixel(color[i]); }
silviogissi 1:073d4f161f23 29 }
silviogissi 1:073d4f161f23 30
silviogissi 2:ab4040a7e8c9 31 void LCDPanel::set_pixel(unsigned int x, unsigned int y, uint16_t color) {
silviogissi 1:073d4f161f23 32 CsTransaction(this);
silviogissi 1:073d4f161f23 33 window(x,y,1,1);
silviogissi 1:073d4f161f23 34 pixel(color);
silviogissi 0:3f345274c737 35 }