Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3742 → Rev 3745

/branches/sparc/kernel/genarch/src/fb/fb.c
219,8 → 219,10
*/
static void screen_scroll(void)
{
if (ylogo > 0)
if (ylogo > 0) {
logo_hide();
return;
}
unsigned int row;
232,11 → 234,13
unsigned int x;
unsigned int col;
for (col = 0, x = 0; col < cols; col++, x += FONT_WIDTH) {
for (col = 0, x = 0; col < cols; col++,
x += FONT_WIDTH) {
uint8_t glyph;
if (row < rows - 1) {
if (backbuf[BB_POS(col, row)] == backbuf[BB_POS(col, row + 1)])
if (backbuf[BB_POS(col, row)] ==
backbuf[BB_POS(col, row + 1)])
continue;
glyph = backbuf[BB_POS(col, row + 1)];
244,7 → 248,8
glyph = 0;
memcpy(&fb_addr[FB_POS(x, y + yd)],
&glyphs[GLYPH_POS(glyph, yd)], glyphscanline);
&glyphs[GLYPH_POS(glyph, yd)],
glyphscanline);
}
}
}
293,7 → 298,8
case '\t':
cursor_remove();
do {
glyph_draw((uint8_t) ' ', position % cols, position / cols);
glyph_draw((uint8_t) ' ', position % cols,
position / cols);
position++;
} while ((position % 8) && (position < cols * rows));
break;
335,9 → 341,13
for (y = 0; y < FONT_SCANLINES; y++) {
unsigned int x;
for (x = 0; x < FONT_WIDTH; x++)
rgb_conv(&glyphs[GLYPH_POS(glyph, y) + x * pixelbytes],
(fb_font[ROW2Y(glyph) + y] & (1 << (7 - x))) ? FG_COLOR : BG_COLOR);
for (x = 0; x < FONT_WIDTH; x++) {
void *dst = &glyphs[GLYPH_POS(glyph, y) +
x * pixelbytes];
uint32_t rgb = (fb_font[ROW2Y(glyph) + y] &
(1 << (7 - x))) ? FG_COLOR : BG_COLOR;
rgb_conv(dst, rgb);
}
}
}
362,7 → 372,9
for (x = 0; x < xres; x++)
rgb_conv(&fb_addr[FB_POS(x, y)],
(x < LOGO_WIDTH) ? fb_logo[y * LOGO_WIDTH + x] : LOGO_COLOR);
(x < LOGO_WIDTH) ?
fb_logo[y * LOGO_WIDTH + x] :
LOGO_COLOR);
}
}
376,10 → 388,13
unsigned int x;
unsigned int col;
for (col = 0, x = 0; col < cols; col++, x += FONT_WIDTH)
memcpy(&fb_addr[FB_POS(x, y + yd)],
&glyphs[GLYPH_POS(backbuf[BB_POS(col, row)], yd)],
glyphscanline);
for (col = 0, x = 0; col < cols;
col++, x += FONT_WIDTH) {
void *d = &fb_addr[FB_POS(x, y + yd)];
void *s = &glyphs[GLYPH_POS(backbuf[BB_POS(col,
row)], yd)];
memcpy(d, s, glyphscanline);
}
}
}
391,10 → 406,10
memcpy(&fb_addr[FB_POS(COL2X(cols), y)], bgscan, size);
}
if (ROW2Y(rowtrim) < yres) {
if (ROW2Y(rowtrim) + ylogo < yres) {
unsigned int y;
for (y = ROW2Y(rowtrim); y < yres; y++)
for (y = ROW2Y(rowtrim) + ylogo; y < yres; y++)
memcpy(&fb_addr[FB_POS(0, y)], bgscan, bgscanbytes);
}
}