Switch to BITMAP_FMT_PLANAR_V_LSB.
authorbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 15 Feb 2006 09:13:16 +0000 (09:13 +0000)
committerbernie <bernie@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 15 Feb 2006 09:13:16 +0000 (09:13 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@514 38d2e660-2303-0410-9eaa-f027e97ec537

appconfig.h
drv/lcd_gfx.h
drv/lcd_gfx_qt.cpp
drv/lcd_gfx_qt.h

index a30746dab91711056796fadd4e7265697ea14051..2a71457bb007b8eb8011cc3dd31349cd66f08d6c 100755 (executable)
@@ -46,6 +46,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.6  2006/02/15 09:12:56  bernie
+ *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
+ *#*
  *#* Revision 1.5  2006/02/10 12:34:33  bernie
  *#* Add missing config options for gfx and kbd.
  *#*
 #define CONFIG_EEPROM_TYPE EEPROM_24XX256
 
 /// Select bitmap pixel format.
-#define CONFIG_BITMAP_FMT  BITMAP_FMT_PLANAR_H_MSB
+#define CONFIG_BITMAP_FMT  BITMAP_FMT_PLANAR_V_LSB
 
 /// Enable line clipping algorithm.
 #define CONFIG_GFX_CLIPPING 1
index d8626313b196a4202ba7a4617a0f70b5232a92d4..3bff2ee15467a3c397fa2ad08cc1fe47751d954c 100755 (executable)
@@ -16,6 +16,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.4  2006/02/15 09:13:16  bernie
+ *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
+ *#*
  *#* Revision 1.3  2006/02/10 12:33:51  bernie
  *#* Make emulator display a bit larger.
  *#*
@@ -35,8 +38,8 @@
 #define LCD_MIN_PWM 130
 
 /* Display bitmap dims */
-#define LCD_WIDTH  320
-#define LCD_HEIGHT 200
+#define LCD_WIDTH  128
+#define LCD_HEIGHT 64
 
 /* fwd decl */
 struct Bitmap;
index 7c2b25f2f8dc18bffc41fb43b51bbd311a99892b..9ec7f8a57f24acc9b7afac19b176e2947d83eb6e 100755 (executable)
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.5  2006/02/15 09:13:16  bernie
+ *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
+ *#*
  *#* Revision 1.4  2006/02/10 12:33:49  bernie
  *#* Make emulator display a bit larger.
  *#*
@@ -31,6 +34,7 @@
 #include "lcd_gfx_qt.h"
 #include <emul/emul.h>
 #include <cfg/debug.h>
+#include <gfx/gfx.h> // CONFIG_BITMAP_FMT
 
 #include <qpainter.h>
 #include <qimage.h>
@@ -88,8 +92,31 @@ void EmulLCD::drawContents(QPainter *p)
 
 void EmulLCD::writeRaster(uint8_t *new_raster)
 {
+#if CONFIG_BITMAP_FMT == BITMAP_FMT_PLANAR_H_MSB
+
+       /* Straight copy */
        memcpy(raster, new_raster, sizeof(raster));
 
+#elif CONFIG_BITMAP_FMT == BITMAP_FMT_PLANAR_V_LSB
+
+       /* Rotation */
+       for (int y = 0; y < HEIGHT; ++y)
+       {
+               for (int xbyte = 0; xbyte < WIDTH/8; ++xbyte)
+               {
+                       uint8_t v = 0;
+                       for (int xbit = 0; xbit < 8; ++xbit)
+                               v |= (new_raster[(xbyte * 8 + xbit) + (y / 8) * WIDTH] & (1 << (y%8)) )
+                                       ? (1 << (7 - xbit)) : 0;
+
+                       raster[y * ((WIDTH + 7) / 8) + xbyte] = v;
+               }
+       }
+
+#else
+       #error Unsupported bitmap format
+#endif
+
        QPainter p(this);
        drawContents(&p);
 }
index 0b7e1d237ebae6a05862b4decd849346496dd0a0..b6864e439bb01582f5a91f7b8eff2a22f80f944a 100755 (executable)
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.3  2006/02/15 09:13:16  bernie
+ *#* Switch to BITMAP_FMT_PLANAR_V_LSB.
+ *#*
  *#* Revision 1.2  2006/02/10 12:33:51  bernie
  *#* Make emulator display a bit larger.
  *#*
@@ -40,7 +43,7 @@ class EmulLCD : public QFrame
 
 public:
 // Attributes
-       enum { WIDTH = 320, HEIGHT = 200 };
+       enum { WIDTH = 128, HEIGHT = 64 };
 
 // Construction
        EmulLCD(QWidget *parent = 0, const char *name = 0);