|
From: James S. <jsi...@in...> - 2003-01-15 00:35:30
|
> > The cfb_imageblit() function exhibited the same behavior. I think we
> > both made the wrong assumption that all monochrome bitmaps are packed. I
> > think the rule is:
> >
> > The first pixel on the next scanline is always at the next byte from
> > the last pixel of the current scanline.
> >
> > So a 12x22 font has 16 bits per scanline but only 12 are usable, and the
> > last 4 are used as padding. It's worse with a 4x6 fonts where the
> > 4-bits are just duplicated in the other nibble.
>
> Yes.
All the font data should be packed and byte padded at the end of each
scanline worth of data. Also most accel engines expect the data to byte
packed.
> But that was not my problem. Currently accel_putcs() falls back to individual
> character drawing if the fontwidth is not a multiple of 8, and reuses the same
> struct fb_image for each call of fb_imageblit(). And since my fb_imageblit()
> had a loop like `while (image->height--) { ... }' it failed. Not modifying the
> passed struct fb_image fixed the problem. Yes, we need the const there :-)
I guess I need to change that in the next set of changes.
|