diff options
author | mrwastl <mrwastl@users.sourceforge.net> | 2011-10-13 13:03:25 +0200 |
---|---|---|
committer | mrwastl <mrwastl@users.sourceforge.net> | 2011-10-13 13:03:25 +0200 |
commit | ab3acde2326a9d8f942995325b71b3aeaf24b918 (patch) | |
tree | ec1c3ed9de1dde8280aee9e011777f4161236572 | |
parent | 9647922aa1f9d2b3fa1e8eb8693511cd7cbb6db6 (diff) | |
download | graphlcd-base-ab3acde2326a9d8f942995325b71b3aeaf24b918.tar.gz graphlcd-base-ab3acde2326a9d8f942995325b71b3aeaf24b918.tar.bz2 |
bug fix for bit order in SetPixel(): verified: image, not verified yet: hd61830, ks0108, network, sed1330, sed1520; beauty fix in object.c (compiler warning)
-rw-r--r-- | glcddrivers/hd61830.c | 2 | ||||
-rw-r--r-- | glcddrivers/image.c | 6 | ||||
-rw-r--r-- | glcddrivers/ks0108.c | 1 | ||||
-rw-r--r-- | glcddrivers/network.c | 1 | ||||
-rw-r--r-- | glcddrivers/sed1330.c | 1 | ||||
-rw-r--r-- | glcddrivers/sed1520.c | 1 | ||||
-rw-r--r-- | glcdskin/object.c | 2 |
7 files changed, 10 insertions, 4 deletions
diff --git a/glcddrivers/hd61830.c b/glcddrivers/hd61830.c index 69fee54..25f39ff 100644 --- a/glcddrivers/hd61830.c +++ b/glcddrivers/hd61830.c @@ -311,7 +311,7 @@ void cDriverHD61830::SetPixel(int x, int y, uint32_t data) { x = width - 1 - x; y = height - 1 - y; - } else { + //} else { pos = 7 - pos; // reverse bit position } diff --git a/glcddrivers/image.c b/glcddrivers/image.c index 6a89ffa..a3d123f 100644 --- a/glcddrivers/image.c +++ b/glcddrivers/image.c @@ -136,18 +136,20 @@ void cDriverImage::SetPixel(int x, int y, uint32_t data) if (x >= width || y >= height) return; + int cols = (width + 7 ) >> 3; int pos = x % 8; if (config->upsideDown) { x = width - 1 - x; y = height - 1 - y; + } else { pos = 7 - pos; // reverse bit position } if (data == GRAPHLCD_White) - newLCD[y * x] |= ( 1 << pos ); + newLCD[y * cols + (x >> 3)] |= ( 1 << pos ); else - newLCD[y * x] &= ( 0xFF ^ ( 1 << pos) ); + newLCD[y * cols + (x >> 3)] &= ( 0xFF ^ ( 1 << pos) ); } void cDriverImage::Refresh(bool refreshAll) diff --git a/glcddrivers/ks0108.c b/glcddrivers/ks0108.c index 2a723f9..042f286 100644 --- a/glcddrivers/ks0108.c +++ b/glcddrivers/ks0108.c @@ -429,6 +429,7 @@ void cDriverKS0108::SetPixel(int x, int y, uint32_t data) { x = width - 1 - x; y = height - 1 - y; + } else { pos = 7 - pos; // reverse bit position } diff --git a/glcddrivers/network.c b/glcddrivers/network.c index 40399bc..5000fda 100644 --- a/glcddrivers/network.c +++ b/glcddrivers/network.c @@ -128,6 +128,7 @@ void cDriverNetwork::SetPixel(int x, int y, uint32_t data) { x = width - 1 - x; y = height - 1 - y; + } else { pos = 7 - pos; // reverse bit position } diff --git a/glcddrivers/sed1330.c b/glcddrivers/sed1330.c index 588d8d3..872cf89 100644 --- a/glcddrivers/sed1330.c +++ b/glcddrivers/sed1330.c @@ -549,6 +549,7 @@ void cDriverSED1330::SetPixel(int x, int y, uint32_t data) { x = width - 1 - x; y = height - 1 - y; + } else { pos = 7 - pos; // reverse bit position } diff --git a/glcddrivers/sed1520.c b/glcddrivers/sed1520.c index d48f11e..4692c64 100644 --- a/glcddrivers/sed1520.c +++ b/glcddrivers/sed1520.c @@ -312,6 +312,7 @@ void cDriverSED1520::SetPixel (int x, int y, uint32_t data) { x = width - 1 - x; y = height - 1 - y; + } else { pos = 7 - pos; // reverse bit position } diff --git a/glcdskin/object.c b/glcdskin/object.c index 5c1e514..b2dffe7 100644 --- a/glcdskin/object.c +++ b/glcdskin/object.c @@ -658,7 +658,7 @@ void cSkinObject::Render(GLCD::cBitmap * screen) mMultilineScrollPosition = 0; } else if (multilineRelScroll > 0) { mMultilineScrollPosition += multilineRelScroll; - if (mMultilineScrollPosition > (lines.size() - amount_lines) ) + if (mMultilineScrollPosition > (int)((lines.size() - amount_lines)) ) mMultilineScrollPosition = lines.size() - amount_lines; } } |