1
0
Fork 0
forked from len0rd/rockbox

First part of graphics api rework. Special functions, parameter handling, pixel functions, lines and filled primitives done for black & white core, main display.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6856 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jens Arnold 2005-06-24 22:33:21 +00:00
parent 0e935bdf01
commit 04daef17a1
41 changed files with 1019 additions and 558 deletions

View file

@ -394,9 +394,11 @@ void cal_initial (void)
n = 1;
prev_m = m;
prev_n = n;
rb->lcd_invertrect( X_0_POS + n*REC_WIDTH + 1,
Y_1_POS + m*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
rb->lcd_fillrect( X_0_POS + n*REC_WIDTH + 1,
Y_1_POS + m*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID);
rb->lcd_update();
/* initial mem and output display*/
@ -689,13 +691,15 @@ void moveButton(void){
break;
}
rb->lcd_invertrect( X_0_POS + prev_n*REC_WIDTH + 1,
Y_1_POS + prev_m*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
rb->lcd_fillrect( X_0_POS + prev_n*REC_WIDTH + 1,
Y_1_POS + prev_m*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_invertrect( X_0_POS + n*REC_WIDTH + 1,
Y_1_POS + m*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_fillrect( X_0_POS + n*REC_WIDTH + 1,
Y_1_POS + m*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID);
rb->lcd_update_rect( X_0_POS + prev_n*REC_WIDTH + 1,
Y_1_POS + prev_m*REC_HEIGHT + 1,
@ -718,9 +722,11 @@ void printButtonGroups(int group)
for (i = 0; i < 5; i++){
for (j = 3; j <= 4; j++){
rb->lcd_getstringsize( buttonChar[group][i][j],&w,&h);
rb->lcd_clearrect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
rb->lcd_fillrect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID);
rb->lcd_putsxy( X_0_POS + j*REC_WIDTH + (REC_WIDTH - w)/2,
TEXT_2_POS + i*REC_HEIGHT,
buttonChar[group][i][j] );
@ -729,17 +735,21 @@ void printButtonGroups(int group)
for (i = 0; i <= 0; i++){
for (j = 0; j <= 2; j++){
rb->lcd_getstringsize( buttonChar[group][i][j],&w,&h);
rb->lcd_clearrect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
rb->lcd_fillrect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID);
rb->lcd_putsxy( X_0_POS + j*REC_WIDTH + (REC_WIDTH - w)/2,
TEXT_2_POS + i*REC_HEIGHT,
buttonChar[group][i][j] );
}
}
rb->lcd_invertrect( X_0_POS + 2*REC_WIDTH + 1,
Y_1_POS + 0*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
rb->lcd_fillrect( X_0_POS + 2*REC_WIDTH + 1,
Y_1_POS + 0*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_set_drawmode(DRMODE_SOLID);
rb->lcd_update_rect( X_0_POS, Y_1_POS,
REC_WIDTH*5, REC_HEIGHT*5);
}
@ -750,10 +760,11 @@ void flashButton(int b)
{
int i = b/5; int j = b - i*5;
int k;
rb->lcd_set_drawmode(DRMODE_COMPLEMENT);
for (k=1*2;k>0;k--){
rb->lcd_invertrect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_fillrect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
rb->lcd_update_rect( X_0_POS + j*REC_WIDTH + 1,
Y_1_POS + i*REC_HEIGHT + 1,
REC_WIDTH - 1, REC_HEIGHT - 1);
@ -762,6 +773,7 @@ void flashButton(int b)
rb->sleep(HZ/22);
}
rb->lcd_set_drawmode(DRMODE_SOLID);
}
/* -----------------------------------------------------------------------
@ -778,7 +790,9 @@ void deleteAnimation(int pos)
for (k=1;k<=4;k++){
rb->sleep(HZ/32);
rb->lcd_clearrect(1+pos*6, TEXT_1_POS, 6, 8);
rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
rb->lcd_fillrect(1+pos*6, TEXT_1_POS, 6, 8);
rb->lcd_set_drawmode(DRMODE_SOLID);
rb->lcd_fillrect(1+pos*6+1+k, TEXT_1_POS+k,
(5-2*k)>0?(5-2*k):1, (7-2*k)>0?(7-2*k):1 );
rb->lcd_update_rect(1+pos*6, TEXT_1_POS, 6, 8);