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); } }
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); } }
afx_msg BOOL kWindow::OnEraseBkgnd(CDC*d) { kDraw dr((HDC)d); // FIXME!! return erase_background(dr); }