some cleanup:
-don't set capabilities at compile time -since our accelerated putchar() doesn't underline, don't claim so -remove bogus character range check - fonts are not limited to ASCII -use rasops_unpack_attr() instead of relying on rasops internals
This commit is contained in:
parent
f0b63a4aa2
commit
c3026431e3
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: sfb.c,v 1.28 1999/12/02 23:04:44 drochner Exp $ */
|
/* $NetBSD: sfb.c,v 1.29 1999/12/04 14:01:56 drochner Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1998, 1999 Tohru Nishimura. All rights reserved.
|
* Copyright (c) 1998, 1999 Tohru Nishimura. All rights reserved.
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
|
||||||
|
|
||||||
__KERNEL_RCSID(0, "$NetBSD: sfb.c,v 1.28 1999/12/02 23:04:44 drochner Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: sfb.c,v 1.29 1999/12/04 14:01:56 drochner Exp $");
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
|
@ -177,7 +177,7 @@ static struct wsscreen_descr sfb_stdscreen = {
|
||||||
"std", 0, 0,
|
"std", 0, 0,
|
||||||
0, /* textops */
|
0, /* textops */
|
||||||
0, 0,
|
0, 0,
|
||||||
WSSCREEN_REVERSE
|
0 /* capabilities */
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct wsscreen_descr *_sfb_scrlist[] = {
|
static const struct wsscreen_descr *_sfb_scrlist[] = {
|
||||||
|
@ -339,6 +339,8 @@ sfb_getdevconfig(dense_addr, dc)
|
||||||
sfb_stdscreen.ncols = dc->rinfo.ri_cols;
|
sfb_stdscreen.ncols = dc->rinfo.ri_cols;
|
||||||
sfb_stdscreen.textops = &dc->rinfo.ri_ops;
|
sfb_stdscreen.textops = &dc->rinfo.ri_ops;
|
||||||
sfb_stdscreen.capabilities = dc->rinfo.ri_caps;
|
sfb_stdscreen.capabilities = dc->rinfo.ri_caps;
|
||||||
|
/* our accelerated putchar can't underline */
|
||||||
|
sfb_stdscreen.capabilities &= ~WSSCREEN_UNDERLINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -985,8 +987,7 @@ sfb_putchar(id, row, col, uc, attr)
|
||||||
int scanspan, height, width, align, x, y;
|
int scanspan, height, width, align, x, y;
|
||||||
u_int32_t lmask, rmask, glyph;
|
u_int32_t lmask, rmask, glyph;
|
||||||
u_int8_t *g;
|
u_int8_t *g;
|
||||||
|
int fg, bg;
|
||||||
if (uc < 0x20 || uc >= 127) return; /* XXX why \033 is creaping in !? XXX */
|
|
||||||
|
|
||||||
x = col * ri->ri_font->fontwidth;
|
x = col * ri->ri_font->fontwidth;
|
||||||
y = row * ri->ri_font->fontheight;
|
y = row * ri->ri_font->fontheight;
|
||||||
|
@ -1005,8 +1006,9 @@ if (uc < 0x20 || uc >= 127) return; /* XXX why \033 is creaping in !? XXX */
|
||||||
|
|
||||||
SFBMODE(sfb, MODE_OPAQUESTIPPLE);
|
SFBMODE(sfb, MODE_OPAQUESTIPPLE);
|
||||||
SFBPLANEMASK(sfb, ~0);
|
SFBPLANEMASK(sfb, ~0);
|
||||||
SFBFG(sfb, ((attr >> 24) & 0xff) * 0x01010101);
|
rasops_unpack_attr(attr, &fg, &bg, 0);
|
||||||
SFBBG(sfb, ((attr >> 16) & 0xff) * 0x01010101);
|
SFBFG(sfb, fg * 0x01010101);
|
||||||
|
SFBBG(sfb, bg * 0x01010101);
|
||||||
if (width <= SFBSTIPPLEBITS) {
|
if (width <= SFBSTIPPLEBITS) {
|
||||||
lmask = lmask & rmask;
|
lmask = lmask & rmask;
|
||||||
while (height > 0) {
|
while (height > 0) {
|
||||||
|
|
Loading…
Reference in New Issue