Пример #1
0
inline void RedScreen::draw_direct(RedDrawable& win_dc, QRegion& direct_rgn, QRegion& composit_rgn,
                                   QRegion& frame_rgn)
{
    erase_background(win_dc, direct_rgn);

    if (_frame_area) {
        erase_background(win_dc, frame_rgn);
        region_destroy(&frame_rgn);
    }

    for (int i = 0; i < (int)_layes.size(); i++) {
        ScreenLayer* layer;

        if (!(layer = _layes[i])) {
            continue;
        }
        QRegion& dest_region = layer->direct_area();
        layer->copy_pixels(dest_region, win_dc);
    }
}
Пример #2
0
inline void RedScreen::update_composit(QRegion& composit_rgn)
{
    erase_background(*_composit_area, composit_rgn);
    for (int i = 0; i < (int)_layes.size(); i++) {
        ScreenLayer* layer;

        if (!(layer = _layes[i])) {
            continue;
        }
        QRegion& dest_region = layer->composit_area();
        region_or(&composit_rgn, &dest_region);
        layer->copy_pixels(dest_region, *_composit_area);
    }
}
Пример #3
0
afx_msg BOOL kWindow::OnEraseBkgnd(CDC*d)
{
 kDraw dr((HDC)d); // FIXME!!
 return erase_background(dr);
}