summaryrefslogtreecommitdiff
path: root/glcddrivers/driver.c
diff options
context:
space:
mode:
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