summaryrefslogtreecommitdiff
path: root/glcddrivers/driver.c
diff options
context:
space:
mode:
authormrwastl <mrwastl@users.sourceforge.net>2011-05-28 13:23:09 +0200
committermrwastl <mrwastl@users.sourceforge.net>2011-05-28 13:23:09 +0200
commit9adb8f879bcad24978b4ac4d96920dc8727c17a0 (patch)
treee1e1790d0c6da0f61de72f986d1710467b3942e0 /glcddrivers/driver.c
parent219dd7dd5d52d07032b4129a96499c7cbe7a4ab3 (diff)
downloadgraphlcd-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.c17
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