touchup, make slant logic consistent, now they all look the same.

This commit is contained in:
Nathan Isom 2016-02-23 23:02:04 -06:00
parent cfa38a1aa7
commit e83eeb92f1
2 changed files with 19 additions and 37 deletions

View File

@ -100,7 +100,8 @@ static area_stack_t area_stack;
static int slant; static int slant;
static int slant_width; static int slant_width;
static int full_slant_width; static int full_slant_width;
static int slant_height; static int slant_counter;
static int upslant;
void void
update_gc (void) update_gc (void)
@ -219,43 +220,26 @@ draw_char (monitor_t *mon, font_t *cur_font, int x, int align, uint16_t ch, int
// Draw the background first // Draw the background first
if(slant_width) if(slant_width)
{ {
//odd = slant left, even = slant right // even = slant left, odd = slant right
// if > 20, upslant. int right = slant % 2;
int left=slant%2;
int i=0;
int cur_height = 0; int cur_height = 0;
if(!full_slant_width) if(!full_slant_width)
{
full_slant_width = slant_width * ch_width; full_slant_width = slant_width * ch_width;
}
for(i=0; i<ch_width; i++) for(int i = 0; i < ch_width; i++)
{ {
//handles int division better: slant_counter++;
int height_calc = (!bh%full_slant_width ? bh/full_slant_width : (bh/full_slant_width) + 1); if (right)
cur_height = (bh * (full_slant_width - slant_counter)) / full_slant_width;
else
cur_height = (slant_counter * bh) / full_slant_width;
cur_height = height_calc*(i) + height_calc; if (!upslant)
cur_height+=slant_height;
if(i == ch_width - 1)
{
slant_height=cur_height;
}
if(! left){
cur_height = bh - cur_height;
}
if(slant > 20)
{
cur_height *= -1; cur_height *= -1;
}
fill_rect(mon->pixmap, gc[GC_CLEAR], x+i, cur_height, 1, bh); fill_rect(mon->pixmap, gc[GC_CLEAR], x+i, cur_height, 1, bh);
} }
slant_width--;
} }
else else
{ {
@ -571,15 +555,15 @@ parse (char *text)
case 'F': fgc = parse_color(p, &p, dfgc); update_gc(); break; case 'F': fgc = parse_color(p, &p, dfgc); update_gc(); break;
case 'U': ugc = parse_color(p, &p, dugc); update_gc(); break; case 'U': ugc = parse_color(p, &p, dugc); update_gc(); break;
case 'E': case 'E':
case 'e': case 'e':
case 'D': case 'D':
case 'd': case 'd':
slant = *(p-1) - 'A'; // 4,36,5,37 slant = *(p-1) - 'A'; // 4,36,5,37
slant_width = (*p++) - '0'; slant_width = (*p++) - '0';
slant_height = 0;
full_slant_width = 0; full_slant_width = 0;
slant_counter = 0;
upslant = slant > 20 ? 1 : 0;
break; break;
case 'S': case 'S':

View File

@ -17,6 +17,4 @@ ${sbg}%{E${Len}}$(space)${bg} - \
${sbg}%{e${Len}}$(space)${bg} - \ ${sbg}%{e${Len}}$(space)${bg} - \
${sbg}%{D${Len}}$(space)${bg} - \ ${sbg}%{D${Len}}$(space)${bg} - \
${sbg}%{d${Len}}$(space)${bg} " \ ${sbg}%{d${Len}}$(space)${bg} " \
| ./lemonbar -g $geom -p | ./lemonbar -g $geom -p -B "#000000"