Subversion Repositories HelenOS

Rev

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