- auto-USE_C_BFOPS when !defined(__m68k__)

- for bold characters, only blit the leftmost ftwidth pixels per character
  cell row. The rightmost row which used to be printed would have been
  overwritten formerly by the next character on sequential output, so no
  visible change will result most of the time.
  This fixes two problems:
  * USE_C_BFOPS (which only works for 8 pixel wide fonts) blits the same
    for bold characters now... it used to print the rightmost 8 pixel columns
    of the bold-smeared characters
  * we no longer need a reserved 1 pixel column at the right end of the screen.
    That is, a 640x400 screen will hold 80x50 charactes with the 8x8 font.
This commit is contained in:
is 2000-06-21 21:28:39 +00:00
parent 1b7636d353
commit 30cef4176a

View File

@ -1,4 +1,4 @@
/* $NetBSD: ite_cc.c,v 1.28 2000/05/24 19:36:29 is Exp $ */
/* $NetBSD: ite_cc.c,v 1.29 2000/06/21 21:28:39 is Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@ -85,7 +85,10 @@ extern u_char kernel_font_lo, kernel_font_hi;
extern u_char kernel_font[], kernel_cursor[];
#if !defined(USE_C_BFOPS) && !defined(__m68k__)
#define USE_C_BFOPS
#endif
#if !defined(USE_C_BFOPS)
#define BFEXT(v,p,o,w) asm("bfextu %1@{%2:%3},%0" : "=d" (v) : \
"a"(p), "d"(o), "d"(w))
@ -213,8 +216,7 @@ ite_newsize(ip, winsz)
*/
cci->view = views[0].view;
/* -1 for bold. */
ip->cols = (cci->view->display.width - 1) / ip->ftwidth;
ip->cols = cci->view->display.width / ip->ftwidth;
ip->rows = cci->view->display.height / ip->ftheight;
/*
@ -586,8 +588,8 @@ putc_bd (cci,p,f,co,ro,fw,fh)
while (fh--) {
ch = *f++;
ch |= ch << 1;
BFINS(ch,p,co,fw+1);
ch |= ch >> 1;
BFINS(ch,p,co,fw);
p += ro;
}
}
@ -606,8 +608,8 @@ putc_bd_in (cci,p,f,co,ro,fw,fh)
while (fh--) {
ch = *f++;
ch |= ch << 1;
BFINS(~ch,p,co,fw+1);
ch |= ch >> 1;
BFINS(~ch,p,co,fw);
p += ro;
}
}
@ -628,21 +630,21 @@ putc_bd_ul (cci,p,f,co,ro,fw,fh)
while (underline--) {
ch = *f++;
ch |= ch << 1;
BFINS(ch,p,co,fw+1);
ch |= ch >> 1;
BFINS(ch,p,co,fw);
p += ro;
}
ch = *f++;
ch |= ch << 1;
BFINS(expbits(ch),p,co,fw+1);
ch |= ch >> 1;
BFINS(expbits(ch),p,co,fw);
p += ro;
underline = fh - cci->underline - 1;
while (underline--) {
ch = *f++;
ch |= ch << 1;
BFINS(ch,p,co,fw+1);
ch |= ch >> 1;
BFINS(ch,p,co,fw);
p += ro;
}
}
@ -663,21 +665,21 @@ putc_bd_ul_in (cci,p,f,co,ro,fw,fh)
while (underline--) {
ch = *f++;
ch |= ch << 1;
BFINS(~ch,p,co,fw+1);
ch |= ch >> 1;
BFINS(~ch,p,co,fw);
p += ro;
}
ch = *f++;
ch |= ch << 1;
BFINS(~expbits(ch),p,co,fw+1);
ch |= ch >> 1;
BFINS(~expbits(ch),p,co,fw);
p += ro;
underline = fh - cci->underline - 1;
while (underline--) {
ch = *f++;
ch |= ch << 1;
BFINS(~ch,p,co,fw+1);
ch |= ch >> 1;
BFINS(~ch,p,co,fw);
p += ro;
}
}