Rev 3792 | Rev 3795 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3792 | Rev 3793 | ||
|---|---|---|---|
| Line 137... | Line 137... | ||
| 137 | bool cursor_shown; |
137 | bool cursor_shown; |
| 138 | 138 | ||
| 139 | /* Back buffer */ |
139 | /* Back buffer */ |
| 140 | bb_cell_t *backbuf; |
140 | bb_cell_t *backbuf; |
| 141 | unsigned int bbsize; |
141 | unsigned int bbsize; |
| - | 142 | bool bb_invalid; |
|
| 142 | } viewport_t; |
143 | } viewport_t; |
| 143 | 144 | ||
| 144 | typedef struct { |
145 | typedef struct { |
| 145 | bool initialized; |
146 | bool initialized; |
| 146 | bool enabled; |
147 | bool enabled; |
| Line 557... | Line 558... | ||
| 557 | viewports[i].cursor_active = false; |
558 | viewports[i].cursor_active = false; |
| 558 | viewports[i].cursor_shown = false; |
559 | viewports[i].cursor_shown = false; |
| 559 | 560 | ||
| 560 | viewports[i].bbsize = bbsize; |
561 | viewports[i].bbsize = bbsize; |
| 561 | viewports[i].backbuf = backbuf; |
562 | viewports[i].backbuf = backbuf; |
| - | 563 | viewports[i].bb_invalid = false; |
|
| 562 | 564 | ||
| 563 | viewports[i].initialized = true; |
565 | viewports[i].initialized = true; |
| 564 | 566 | ||
| 565 | render_glyphs(&viewports[i]); |
567 | render_glyphs(&viewports[i]); |
| 566 | 568 | ||
| Line 881... | Line 883... | ||
| 881 | a = &data[i].attrs; |
883 | a = &data[i].attrs; |
| 882 | rgb_from_attr(&rgb, a); |
884 | rgb_from_attr(&rgb, a); |
| 883 | 885 | ||
| 884 | if (glyph != data[i].character || |
886 | if (glyph != data[i].character || |
| 885 | rgb.fg_color != bbp->fg_color || |
887 | rgb.fg_color != bbp->fg_color || |
| 886 | rgb.bg_color != bbp->bg_color) { |
888 | rgb.bg_color != bbp->bg_color || |
| - | 889 | vport->bb_invalid) { |
|
| 887 | bbp->glyph = data[i].character; |
890 | bbp->glyph = data[i].character; |
| 888 | 891 | ||
| 889 | bbp->fg_color = rgb.fg_color; |
892 | bbp->fg_color = rgb.fg_color; |
| 890 | bbp->bg_color = rgb.bg_color; |
893 | bbp->bg_color = rgb.bg_color; |
| 891 | 894 | ||
| Line 1621... | Line 1624... | ||
| 1621 | free(viewports[i].bgpixel); |
1624 | free(viewports[i].bgpixel); |
| 1622 | if (viewports[i].backbuf) |
1625 | if (viewports[i].backbuf) |
| 1623 | free(viewports[i].backbuf); |
1626 | free(viewports[i].backbuf); |
| 1624 | retval = EOK; |
1627 | retval = EOK; |
| 1625 | break; |
1628 | break; |
| - | 1629 | case FB_VIEWPORT_INVALIDATE: |
|
| - | 1630 | i = IPC_GET_ARG1(call); |
|
| - | 1631 | if (i >= MAX_VIEWPORTS) { |
|
| - | 1632 | retval = EINVAL; |
|
| - | 1633 | break; |
|
| - | 1634 | } |
|
| - | 1635 | viewports[i].bb_invalid = true; |
|
| - | 1636 | retval = EOK; |
|
| - | 1637 | break; |
|
| - | 1638 | ||
| 1626 | case FB_SET_STYLE: |
1639 | case FB_SET_STYLE: |
| 1627 | retval = fb_set_style(vport, IPC_GET_ARG1(call)); |
1640 | retval = fb_set_style(vport, IPC_GET_ARG1(call)); |
| 1628 | break; |
1641 | break; |
| 1629 | case FB_SET_COLOR: |
1642 | case FB_SET_COLOR: |
| 1630 | retval = fb_set_color(vport, IPC_GET_ARG1(call), |
1643 | retval = fb_set_color(vport, IPC_GET_ARG1(call), |