rit128x96: allow to define starting x and y coordinates with rit128x96_blitRaw().
authorarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 23 Apr 2010 14:58:44 +0000 (14:58 +0000)
committerarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Fri, 23 Apr 2010 14:58:44 +0000 (14:58 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3509 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/drv/lcd_rit128x96.c
bertos/drv/lcd_rit128x96.h

index fd2f359579bdea84b40e566906cbe867a1e08689..9fce45c5f467a6a2bbc8a908d6e3114e4dcb05a0 100644 (file)
@@ -127,7 +127,7 @@ void rit128x96_off(void)
        lcd_dataWrite(exit_cmd, sizeof(exit_cmd));
 }
 
-static void lcd_start_blit(uint8_t width, uint8_t height)
+static void lcd_start_blit(uint8_t x, uint8_t y, uint8_t width, uint8_t height)
 {
        uint8_t buffer[3];
 
@@ -137,21 +137,22 @@ static void lcd_start_blit(uint8_t width, uint8_t height)
        LCD_SET_COMMAND();
 
        buffer[0] = 0x15;
-       buffer[1] = 0;
-       buffer[2] = (width - 2) / 2;
+       buffer[1] = x / 2;
+       buffer[2] = (x + width - 2) / 2;
        lcd_dataWrite(buffer, 3);
 
        buffer[0] = 0x75;
-       buffer[1] = 0;
-       buffer[2] = height - 1;
+       buffer[1] = y;
+       buffer[2] = y + height - 1;
        lcd_dataWrite(buffer, 3);
        lcd_dataWrite((const uint8_t *)&horizontal_inc, sizeof(horizontal_inc));
 }
 
 /* Refresh a raw image on screen */
-void rit128x96_blitRaw(const uint8_t *data, uint8_t width, uint8_t height)
+void rit128x96_blitRaw(const uint8_t *data,
+               uint8_t x, uint8_t y, uint8_t width, uint8_t height)
 {
-       lcd_start_blit(width, height);
+       lcd_start_blit(x, y, width, height);
        /*
         * Enter data mode and send the encoded image data to the OLED display,
         * over the SSI bus.
@@ -172,7 +173,7 @@ void rit128x96_blitBitmap(const Bitmap *bm)
        uint8_t mask;
        int i, l;
 
-       lcd_start_blit(bm->width, bm->height);
+       lcd_start_blit(0, 0, bm->width, bm->height);
        /*
         * Enter data mode and send the encoded image data to the OLED display,
         * over the SSI bus.
index fedbe29678b9638b5e621c863836ea3e6e1a0846..d5ae7ca314a70a9d84a477a2f6c40c1138c7439e 100644 (file)
@@ -45,7 +45,8 @@
 #define LCD_WIDTH      128
 #define LCD_HEIGHT     96
 
-void rit128x96_blitRaw(const uint8_t *data, uint8_t width, uint8_t height);
+void rit128x96_blitRaw(const uint8_t *data,
+               uint8_t x, uint8_t y, uint8_t width, uint8_t height);
 void rit128x96_blitBitmap(const Bitmap *bm);
 void rit128x96_on(void);
 void rit128x96_off(void);