Base LCDPanel based, required for all LCDPanel drivers
LCDPanel.cpp@2:ab4040a7e8c9, 2012-03-11 (annotated)
- Committer:
- silviogissi
- Date:
- Sun Mar 11 01:33:10 2012 +0000
- Revision:
- 2:ab4040a7e8c9
- Parent:
- 1:073d4f161f23
Who changed what in which revision?
User | Revision | Line number | New 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 | } |