FreeCalypso > hg > fc-selenite
diff src/cs/drivers/drv_app/r2d/lcds/luna/r2d_task_i.c @ 193:6a53de2c4fc2
R2D sync with Magnetite
R2D is never compiled in Selenite, thus the present change has absolutely
no impact on anything - but this sync is being done in order to keep the
overall diff between Magnetite and Selenite to a minimum.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 23 May 2020 07:13:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/r2d/lcds/luna/r2d_task_i.c Sat May 23 07:13:36 2020 +0000 @@ -0,0 +1,63 @@ +#include "r2d/lcds/luna/r2d_luna_lcd.h" + +void r2d_lcd_power_on(void) +{ +} + +void r2d_lcd_power_off(void) +{ +} + +void r2d_refresh(void) +{ + UINT16 i,j; + UINT32 v; + UINT32 *p; + INT16 x1,x2,y1,y2,de,ds; + + p=r2d_g_framebuffer->p_memory_words; + + x1=(r2d_update_ul_x>>1)<<1; //0 + x2=((r2d_update_br_x>>1)<<1)+1; //174; + + ds=(x1>>1); + de=R2D_MWWIDTH-(x2>>1)-1; // WHY -1, is formula right ???? + + y1=r2d_update_ul_y; //0 + y2=r2d_update_br_y; //219 + + /* set window area */ + LCD_REG_WR(0x36, x2); + LCD_REG_WR(0x37, x1); + LCD_REG_WR(0x38, y2); + LCD_REG_WR(0x39, y1); + /* set current write address */ + LCD_REG_WR(0x20, x1); + LCD_REG_WR(0x21, y1); + /* set up for GRAM write */ + LCD_IR = 0x22; + + p=p+y1*R2D_MWWIDTH; + + for(i=y1;i<=y2;i++) + { + p+=ds; + for(j=(x1>>1);j<=(x2>>1);j++) + { + v=*p++; + v=~v; + + /*white*/ + /*v=0xffffffff*/ + /*black*/ + /*v=0x00000000*/ + + LCD_DR = v&0x0FFFF; + LCD_DR = v>>16; + } + p+=de; + } + + //r2d_check_and_send_event(r2d_g_framebuffer); + r2d_reinit_update_region(); +}