97,7 → 97,7 |
|
/** Backbuffer character cell. */ |
typedef struct { |
uint8_t glyph; |
uint32_t glyph; |
uint32_t fg_color; |
uint32_t bg_color; |
} bb_cell_t; |
194,9 → 194,9 |
ipcarg_t bg_color, ipcarg_t attr); |
|
static void draw_glyph_aligned(unsigned int x, unsigned int y, bool cursor, |
uint8_t *glyphs, uint8_t glyph, uint32_t fg_color, uint32_t bg_color); |
uint8_t *glyphs, uint32_t glyph, uint32_t fg_color, uint32_t bg_color); |
static void draw_glyph_fallback(unsigned int x, unsigned int y, bool cursor, |
uint8_t *glyphs, uint8_t glyph, uint32_t fg_color, uint32_t bg_color); |
uint8_t *glyphs, uint32_t glyph, uint32_t fg_color, uint32_t bg_color); |
|
static void draw_vp_glyph(viewport_t *vport, bool cursor, unsigned int col, |
unsigned int row); |
659,7 → 659,7 |
* @param bg_color Backgroudn color. |
*/ |
static void draw_glyph_aligned(unsigned int x, unsigned int y, bool cursor, |
uint8_t *glyphs, uint8_t glyph, uint32_t fg_color, uint32_t bg_color) |
uint8_t *glyphs, uint32_t glyph, uint32_t fg_color, uint32_t bg_color) |
{ |
unsigned int i, yd; |
unsigned long fg_buf, bg_buf; |
667,6 → 667,10 |
unsigned long mask; |
unsigned int ww, d_add; |
|
/* Check glyph range. */ |
if (glyph >= FONT_GLYPHS) |
return; |
|
/* |
* Prepare a pair of words, one filled with foreground-color |
* pattern and the other filled with background-color pattern. |
678,7 → 682,6 |
bg_color); |
} |
|
|
/* Pointer to the current position in the mask. */ |
maskp = (unsigned long *) &glyphs[GLYPH_POS(glyph, 0, cursor)]; |
|
720,7 → 723,7 |
* @param bg_color Backgroudn color. |
*/ |
void draw_glyph_fallback(unsigned int x, unsigned int y, bool cursor, |
uint8_t *glyphs, uint8_t glyph, uint32_t fg_color, uint32_t bg_color) |
uint8_t *glyphs, uint32_t glyph, uint32_t fg_color, uint32_t bg_color) |
{ |
unsigned int i, j, yd; |
uint8_t fg_buf[4], bg_buf[4]; |
728,6 → 731,10 |
unsigned int d_add; |
uint8_t b; |
|
/* Check glyph range. */ |
if (glyph >= FONT_GLYPHS) |
return; |
|
/* Pre-render 1x the foreground and background color pixels. */ |
if (cursor) { |
screen.rgb_conv(fg_buf, bg_color); |
779,7 → 786,7 |
unsigned int x = vport->x + COL2X(col); |
unsigned int y = vport->y + ROW2Y(row); |
|
uint8_t glyph; |
uint32_t glyph; |
uint32_t fg_color; |
uint32_t bg_color; |
|
836,7 → 843,7 |
* @param row Screen position relative to viewport |
* |
*/ |
static void draw_char(viewport_t *vport, uint8_t c, unsigned int col, unsigned int row) |
static void draw_char(viewport_t *vport, wchar_t c, unsigned int col, unsigned int row) |
{ |
bb_cell_t *bbp; |
|
846,7 → 853,7 |
cursor_hide(vport); |
|
bbp = &vport->backbuf[BB_POS(vport, col, row)]; |
bbp->glyph = c; |
bbp->glyph = (uint32_t) c; |
bbp->fg_color = vport->attr.fg_color; |
bbp->bg_color = vport->attr.bg_color; |
|
889,7 → 896,7 |
unsigned int row = y + j; |
|
bbp = &vport->backbuf[BB_POS(vport, col, row)]; |
uint8_t glyph = bbp->glyph; |
uint32_t glyph = bbp->glyph; |
|
a = &data[j * w + i].attrs; |
rgb_from_attr(&rgb, a); |
1510,7 → 1517,7 |
int retval; |
unsigned int i; |
int scroll; |
uint8_t glyph; |
uint32_t glyph; |
unsigned int row, col; |
|
if ((vport->cursor_active) || (anims_enabled)) |