From c5e10eebedc888e41b55f9613c89ab7a8a25baba Mon Sep 17 00:00:00 2001 From: arighi Date: Fri, 23 Apr 2010 14:58:44 +0000 Subject: [PATCH] rit128x96: allow to define starting x and y coordinates with rit128x96_blitRaw(). git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3509 38d2e660-2303-0410-9eaa-f027e97ec537 --- bertos/drv/lcd_rit128x96.c | 17 +++++++++-------- bertos/drv/lcd_rit128x96.h | 3 ++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bertos/drv/lcd_rit128x96.c b/bertos/drv/lcd_rit128x96.c index fd2f3595..9fce45c5 100644 --- a/bertos/drv/lcd_rit128x96.c +++ b/bertos/drv/lcd_rit128x96.c @@ -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. diff --git a/bertos/drv/lcd_rit128x96.h b/bertos/drv/lcd_rit128x96.h index fedbe296..d5ae7ca3 100644 --- a/bertos/drv/lcd_rit128x96.h +++ b/bertos/drv/lcd_rit128x96.h @@ -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); -- 2.25.1