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), |