X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=betty%2Fdisplay.c;h=2da19efe9ffa8f4ba42d32bd89c5339c369cfa13;hb=96c6e10b97b3cce49a3c2090108ea29d23ec3950;hp=fad0804e5a5bfc477885791db874dbcf14d4247b;hpb=2c6f5744c29fb65d904aa5fe40b5ce541247f900;p=my-code%2Farm.git diff --git a/betty/display.c b/betty/display.c index fad0804..2da19ef 100644 --- a/betty/display.c +++ b/betty/display.c @@ -5,56 +5,157 @@ * */ +/* + * some comments on alpha blending! + * + * ... + * + */ + #include "display.h" +#include "system.h" +#include "default_logo.h" +#include "uart.h" /* * functions */ -void display_clear_screen(void) { - - u32 cnt; +void display_fill_screen(u8 fill) { + + u8 page,width; + u8 buf[2]; + + buf[0]=0; + buf[1]=0; + + switch(fill) { + case DISPLAY_FILL_LG: + buf[1]=0xff; + break; + case DISPLAY_FILL_DG: + buf[0]=0xff; + break; + case DISPLAY_FILL_B: + buf[0]=0xff; + buf[1]=0xff; + break; + case DISPLAY_FILL_W: + default: + break; + } + + for(page=0;page white, 11 -> black + DISPLAY_SET_COM_ODIR_REMAPPED; // start counting at the top + /* switch on the display */ DISPLAY_SET_ON; } void display_load_logo(u8 *src) { - u32 cnt; - - DISPLAY_SET_PAGE_ADDR(0); - DISPLAY_SET_C_ADDR(0); + u8 *s; + u8 page,width; + + s=src; + if(s==0) + s=default_logo; + + for(page=0;page c=alpha*a+(1-alpha)*b + + a[0]=0; + a[1]=0; + switch(fill) { + case DISPLAY_FILL_LG: + a[1]=1; + break; + case DISPLAY_FILL_DG: + a[0]=1; + break; + case DISPLAY_FILL_B: + a[0]=1; + a[1]=1; + case DISPLAY_FILL_W: + default: + break; + } + + spage=y>>3; // start page = y/8 + epage=(y+h)>>3; // end page (y+h)/8 + + for(p=spage;p<=epage;p++) { + DISPLAY_SET_PAGE_ADDR(p); + for(c=x;cy+h?y+h:y+8; + for(r=y;r