diff options
| author | mobyfab <mobyfab@free.fr> | 2012-10-06 14:37:13 +0200 | 
|---|---|---|
| committer | mobyfab <mobyfab@free.fr> | 2012-10-06 14:37:13 +0200 | 
| commit | 52e9fb7d59d3019fe346e8cd65a6581238b51e2c (patch) | |
| tree | 8e4e842f168cc137d5df9e65ea0913afbbde0f72 /drivers | |
| parent | 142ee8f26dba68618743564ec34c01b6604b6b77 (diff) | |
| parent | a6e7a35b39ba36488dd7bc0a08d32226168e8871 (diff) | |
| download | uGFX-52e9fb7d59d3019fe346e8cd65a6581238b51e2c.tar.gz uGFX-52e9fb7d59d3019fe346e8cd65a6581238b51e2c.tar.bz2 uGFX-52e9fb7d59d3019fe346e8cd65a6581238b51e2c.zip | |
Merge branch 'master' of https://github.com/Tectu/ChibiOS-GFX
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gdisp/S6D1121/s6d1121_lld.c.h | 37 | ||||
| -rw-r--r-- | drivers/gdisp/SSD1289/ssd1289_lld.c.h | 4 | 
2 files changed, 24 insertions, 17 deletions
| diff --git a/drivers/gdisp/S6D1121/s6d1121_lld.c.h b/drivers/gdisp/S6D1121/s6d1121_lld.c.h index e5d8c76b..76a64ce3 100644 --- a/drivers/gdisp/S6D1121/s6d1121_lld.c.h +++ b/drivers/gdisp/S6D1121/s6d1121_lld.c.h @@ -182,21 +182,22 @@ static void lld_lcdSetCursor(coord_t x, coord_t y) {  	 * R21h - 9 bit
  	 */
  	switch(GDISP.Orientation) {
 -		case GDISP_ROTATE_180:
 -			lld_lcdWriteReg(0x0020, (SCREEN_WIDTH-1-x) & 0x00FF);
 -			lld_lcdWriteReg(0x0021, (SCREEN_HEIGHT-1-y) & 0x01FF);
 -			break;
  		case GDISP_ROTATE_0:
  			lld_lcdWriteReg(0x0020, x & 0x00FF);
  			lld_lcdWriteReg(0x0021, y & 0x01FF);
  			break;
  		case GDISP_ROTATE_90:
 +		    /* Note X has already been mirrored, so we do it directly */
  			lld_lcdWriteReg(0x0020, y & 0x00FF);
  			lld_lcdWriteReg(0x0021, x & 0x01FF);
  			break;
 +		case GDISP_ROTATE_180:
 +            lld_lcdWriteReg(0x0020, (SCREEN_WIDTH - 1 - x) & 0x00FF);
 +            lld_lcdWriteReg(0x0021, (SCREEN_HEIGHT - 1 - y) & 0x01FF);
 +            break;
  		case GDISP_ROTATE_270:
 -			lld_lcdWriteReg(0x0020, (SCREEN_WIDTH - y - 1) & 0x00FF);
 -			lld_lcdWriteReg(0x0021, (SCREEN_HEIGHT - x - 1) & 0x01FF);
 +			lld_lcdWriteReg(0x0020, (SCREEN_WIDTH - 1 - y) & 0x00FF);
 +			lld_lcdWriteReg(0x0021, (SCREEN_HEIGHT - 1 - x) & 0x01FF);
  			break;
  	}
  }
 @@ -209,23 +210,29 @@ static void lld_lcdSetViewPort(uint16_t x, uint16_t y, uint16_t cx, uint16_t cy)  	switch(GDISP.Orientation) {
  		case GDISP_ROTATE_0:
 -			lld_lcdWriteReg(0x46, (((x+cx-1) << 8) & 0xFF00 ) | (x & 0x00FF));
 +			lld_lcdWriteReg(0x46, (((x + cx - 1) << 8) & 0xFF00 ) |
 +			                          (x & 0x00FF));
 +
  			lld_lcdWriteReg(0x48, y & 0x01FF);
 -			lld_lcdWriteReg(0x47, (y+cy-1) & 0x01FF);
 +			lld_lcdWriteReg(0x47, (y + cy - 1) & 0x01FF);
  			break;
  		case GDISP_ROTATE_90:
 -			lld_lcdWriteReg(0x46, (((x+cx-1) << 8) & 0xFF00) | ((y+cy) & 0x00FF));
 +			lld_lcdWriteReg(0x46, (((y + cy - 1) << 8) & 0xFF00) |
 +			                          (y & 0x00FF));
 +
  			lld_lcdWriteReg(0x48, x & 0x01FF);
 -			lld_lcdWriteReg(0x47, (x+cx-1) & 0x01FF);
 +			lld_lcdWriteReg(0x47, (x + cx - 1) & 0x01FF);
  			break;
  		case GDISP_ROTATE_180:
 -			lld_lcdWriteReg(0x46, (((SCREEN_WIDTH-x-1) & 0x00FF) << 8) | ((SCREEN_WIDTH - (x+cx)) & 0x00FF));
 -			lld_lcdWriteReg(0x48, (SCREEN_HEIGHT-(y+cy)) & 0x01FF);
 -			lld_lcdWriteReg(0x47, (SCREEN_HEIGHT-y-1) & 0x01FF);
 +			lld_lcdWriteReg(0x46, (((SCREEN_WIDTH - x - 1) & 0x00FF) << 8) |
 +			                          ((SCREEN_WIDTH - (x + cx)) & 0x00FF));
 +			lld_lcdWriteReg(0x48, (SCREEN_HEIGHT - (y + cy)) & 0x01FF);
 +			lld_lcdWriteReg(0x47, (SCREEN_HEIGHT- y - 1) & 0x01FF);
  			break;
  		case GDISP_ROTATE_270:
 -			lld_lcdWriteReg(0x46, (((SCREEN_WIDTH - y - 1) & 0x00FF) << 8) | ((SCREEN_WIDTH - (y+cy)) & 0x00FF));
 -			lld_lcdWriteReg(0x48, (SCREEN_HEIGHT - (x+cx)) & 0x01FF);
 +			lld_lcdWriteReg(0x46, (((SCREEN_WIDTH - y - 1) & 0x00FF) << 8) |
 +			                          ((SCREEN_WIDTH - (y + cy)) & 0x00FF));
 +			lld_lcdWriteReg(0x48, (SCREEN_HEIGHT - (x + cx)) & 0x01FF);
  			lld_lcdWriteReg(0x47, (SCREEN_HEIGHT - x - 1) & 0x01FF);
  			break;
  	}
 diff --git a/drivers/gdisp/SSD1289/ssd1289_lld.c.h b/drivers/gdisp/SSD1289/ssd1289_lld.c.h index dceb8780..b9e4af6f 100644 --- a/drivers/gdisp/SSD1289/ssd1289_lld.c.h +++ b/drivers/gdisp/SSD1289/ssd1289_lld.c.h @@ -273,11 +273,11 @@ static void lld_lcdSetCursor(uint16_t x, uint16_t y) {  			lld_lcdWriteReg(0x004e, x & 0x00FF);  			lld_lcdWriteReg(0x004f, y & 0x01FF);  			break; -		case GDISP_ROTATE_90: +		case GDISP_ROTATE_270:  			lld_lcdWriteReg(0x004e, y & 0x00FF);  			lld_lcdWriteReg(0x004f, x & 0x01FF);  			break; -		case GDISP_ROTATE_270: +		case GDISP_ROTATE_90:  			lld_lcdWriteReg(0x004e, (SCREEN_WIDTH - y - 1) & 0x00FF);  			lld_lcdWriteReg(0x004f, (SCREEN_HEIGHT - x - 1) & 0x01FF);  			break; | 
