Base LCDPanel based, required for all LCDPanel drivers
Diff: LCDPanel.cpp
- Revision:
- 0:3f345274c737
- Child:
- 1:073d4f161f23
diff -r 000000000000 -r 3f345274c737 LCDPanel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LCDPanel.cpp Fri Mar 09 00:55:25 2012 +0000 @@ -0,0 +1,34 @@ +/* +Placeholder for Copyright notice, etc + +Author: silviogissi +*/ +#include "LCDPanel.h" + + LCDPanel::LCDPanel(unsigned int width, unsigned int height) : _ymax(height-1), _xmax(width-1) + { + } + +// Default implementation, pixel by pixel +void LCDPanel::fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, unsigned int color) { + CsTransaction(*this); + if (x1>x2) {unsigned int tmp=x1; x1=x2; x2=tmp;} + if (y1>y2) {unsigned int tmp=y1; y1=y2; y2=tmp;} + window(x1,y1,x2,y2); + for(unsigned int i=0;i<(x2-x1)*(y2-y1);i++) { pixel(color); } +} + +// Default implementation, pixel by pixel +void LCDPanel::fill(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2, const unsigned int* color) { + CsTransaction(*this); + if (x1>x2) {unsigned int tmp=x1; x1=x2; x2=tmp;} + if (y1>y2) {unsigned int tmp=y1; y1=y2; y2=tmp;} + window(x1,y1,x2,y2); + for(unsigned int i=0;i<(x2-x1)*(y2-y1);i++) { pixel(color[i]); } +} + +void LCDPanel::set_pixel(unsigned int x, unsigned int y, unsigned int color) { + CsTransaction(*this); + window(x,y,1,1); + pixel(x,y,color); +} \ No newline at end of file