diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-05-28 13:23:09 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-05-28 13:23:09 +0200 |
commit | 9adb8f879bcad24978b4ac4d96920dc8727c17a0 (patch) | |
tree | e1e1790d0c6da0f61de72f986d1710467b3942e0 /glcddrivers/driver.c | |
parent | 219dd7dd5d52d07032b4129a96499c7cbe7a4ab3 (diff) | |
download | graphlcd-base-9adb8f879bcad24978b4ac4d96920dc8727c17a0.tar.gz graphlcd-base-9adb8f879bcad24978b4ac4d96920dc8727c17a0.tar.bz2 |
added generic Set8Pixels() to base class cDriver; serdisp-driver: class members fg/bg_colours now uint32_t, better adaption to new cColor-scheme, use Set8Pixels() from base class
Diffstat (limited to 'glcddrivers/driver.c')
-rw-r--r-- | glcddrivers/driver.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/glcddrivers/driver.c b/glcddrivers/driver.c index 056f8bc..2a823d7 100644 --- a/glcddrivers/driver.c +++ b/glcddrivers/driver.c @@ -65,4 +65,21 @@ void cDriver::SetScreen(const uint32_t * data, int wid, int hgt) */ } +void cDriver::Set8Pixels(int x, int y, unsigned char data) +{ + int n; + // calling GetForegroundColor() and GetBackgroundColor() is slow in some situations. + // will be replaced through setting object-wide (incl. derived objs) class members + uint32_t fg = GetForegroundColor(); + uint32_t bg = GetBackgroundColor(); + + // guarante that x starts at a position divisible by 8 + x &= 0xFFF8; + + for (n = 0; n < 8; ++n) { + SetPixel(x + n, y, (data & (0x80 >> n)) ? fg : bg); + } +} + + } // end of namespace |