Subversion Repositories HelenOS

Rev

Rev 3793 | Rev 3882 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3793 Rev 3795
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;
-
 
143
} viewport_t;
142
} viewport_t;
144
 
143
 
145
typedef struct {
144
typedef struct {
146
    bool initialized;
145
    bool initialized;
147
    bool enabled;
146
    bool enabled;
Line 558... Line 557...
558
    viewports[i].cursor_active = false;
557
    viewports[i].cursor_active = false;
559
    viewports[i].cursor_shown = false;
558
    viewports[i].cursor_shown = false;
560
   
559
   
561
    viewports[i].bbsize = bbsize;
560
    viewports[i].bbsize = bbsize;
562
    viewports[i].backbuf = backbuf;
561
    viewports[i].backbuf = backbuf;
563
    viewports[i].bb_invalid = false;
-
 
564
   
562
   
565
    viewports[i].initialized = true;
563
    viewports[i].initialized = true;
566
   
564
   
567
    render_glyphs(&viewports[i]);
565
    render_glyphs(&viewports[i]);
568
   
566
   
Line 881... Line 879...
881
        uint8_t glyph = bbp->glyph;
879
        uint8_t glyph = bbp->glyph;
882
 
880
 
883
        a = &data[i].attrs;
881
        a = &data[i].attrs;
884
        rgb_from_attr(&rgb, a);
882
        rgb_from_attr(&rgb, a);
885
 
883
 
886
        if (glyph != data[i].character ||
884
        bbp->glyph = data[i].character;
887
            rgb.fg_color != bbp->fg_color ||
885
        bbp->fg_color = rgb.fg_color;
888
            rgb.bg_color != bbp->bg_color ||
886
        bbp->bg_color = rgb.bg_color;
889
            vport->bb_invalid) {
-
 
890
            bbp->glyph = data[i].character;
-
 
891
 
887
 
892
            bbp->fg_color = rgb.fg_color;
-
 
893
            bbp->bg_color = rgb.bg_color;
-
 
894
 
-
 
895
            draw_vp_glyph(vport, false, col, row);
888
        draw_vp_glyph(vport, false, col, row);
896
        }
-
 
897
    }
889
    }
898
    cursor_show(vport);
890
    cursor_show(vport);
899
}
891
}
900
 
892
 
901
 
893
 
Line 1624... Line 1616...
1624
                free(viewports[i].bgpixel);
1616
                free(viewports[i].bgpixel);
1625
            if (viewports[i].backbuf)
1617
            if (viewports[i].backbuf)
1626
                free(viewports[i].backbuf);
1618
                free(viewports[i].backbuf);
1627
            retval = EOK;
1619
            retval = EOK;
1628
            break;
1620
            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
       
-
 
1639
        case FB_SET_STYLE:
1621
        case FB_SET_STYLE:
1640
            retval = fb_set_style(vport, IPC_GET_ARG1(call));
1622
            retval = fb_set_style(vport, IPC_GET_ARG1(call));
1641
            break;
1623
            break;
1642
        case FB_SET_COLOR:
1624
        case FB_SET_COLOR:
1643
            retval = fb_set_color(vport, IPC_GET_ARG1(call),
1625
            retval = fb_set_color(vport, IPC_GET_ARG1(call),