QT显示机制(三)

原文地址:QT显示机制(三) 作者:blackdream2

syncRegions:此函数主要是向客户端发送RegionModified事件,真正的绘图也是由客户端来完成。 还是通过代码来分析:

void QWSServer::syncRegions( QWSWindow *active )

{

    rgnMan->commit();   //拷贝数据到一段共享内存,服务器为读写权限,客户端为只读

    notifyModified( active );//通过客户端显示区域已更改,客户端绘制相关区域

    paintBackground( dirtyBackground );//绘制背景区域修改部分。

    dirtyBackground QRegion();

}

void QWSServer::notifyModifiedQWSWindow *active )

{

    // notify active window first

    if active )

active->updateAllocation();    //首先通知active 窗体 

    // now the rest //通知所有modified标志为TRUE的窗体

    for (uint i=0; i<windows.count(); i++) 

QWSWindow* windows.at(i);

w->updateAllocation();      

    }

}

void QWSWindow::updateAllocation()

{

    if modified || needAck) {

c->sendRegionModifyEvent( id, exposed, needAck );  // 发送消息

exposed QRegion();                                  //复位低级窗体新增显示区域

modified FALSE; //modified为真表示窗体的显示区域被修改。

needAck FALSE;

    }

}

[转载]QT显示机制(三)[转载]QT显示机制(三)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值