Quellcode durchsuchen

Fixed rotation bug in drawBitmap()

Phillip Burgess vor 13 Jahren
Ursprung
Commit
4c865e0f29
1 geänderte Dateien mit 6 neuen und 3 gelöschten Zeilen
  1. 6 3
      Adafruit_GFX.cpp

+ 6 - 3
Adafruit_GFX.cpp

@@ -334,9 +334,12 @@ void Adafruit_GFX::fillTriangle ( int16_t x0, int16_t y0,
 void Adafruit_GFX::drawBitmap(int16_t x, int16_t y, 
 			      const uint8_t *bitmap, int16_t w, int16_t h,
 			      uint16_t color) {
-  for (int16_t j=0; j<h; j++) {
-    for (int16_t i=0; i<w; i++ ) {
-      if (pgm_read_byte(bitmap + i + (j/8)*w) & _BV(j%8)) {
+
+  int16_t i, j, byteWidth = (w + 7) / 8;
+
+  for(j=0; j<h; j++) {
+    for(i=0; i<w; i++ ) {
+      if(pgm_read_byte(bitmap + j * byteWidth + i / 8) & _BV(i & 7)) {
 	drawPixel(x+i, y+j, color);
       }
     }