CDirectScreenAccess 的一些解释
来源:互联网 发布:mac草叶壁纸 编辑:程序博客网 时间:2024/05/22 02:10
收藏
by 张越
CDirectScreenAccess , RDirectScreenAccess 和 MDirectScreenAccess的关系
CDirectScreenAccess是一个AO,它包含一个RDirectScreenAccess类型的成员,而RDirectScreenAccess继承自MWsClientClass,
具有Server的句柄,而且它包含RWsSession成员,这个成员继承自RSessionBase,所以显然,这是一个Window Server的Client。
这样一个模式,就是我们平时使用的典型的通过AO去访问一个Client Side DLL的方式。这样,通过CDirectScreenAccess这个AO以及
RdirectScreenAccess实现了C/S的异步调用.
Server通知Client有Abort需要处理,此时Client线程中,RunL将被调用,应该是这样的:在Client端,CDirectScreenAccess通过RDirectScreenAccess访问Server,
然后SetActive(),RDirectScreenAccess在得到Server应答之后,调用CDirectScreenAccess的RunL(),通知CDirectScreenAccess
处理,根据情况判断在RunL中调用了AbortNow()方法。实际上,在作上一个项目的时候,我也有和此模式完全一样的做法。
至于为什么我认为MDirectScreenAccess的方法AbortNow()是在RunL中被调用的。一是因为文档中这样提到了,另外,我认为作为一个典型的Observer模式,这样设计是合理的,我也这样做过。其他的方式可能只会更复杂。
by r60600
用Windows Sever在屏幕上绘图需要进行上下文切换,这会减慢了绘图速度。越过Windows Sever就
避免了上下文切换,这样就可以直接访问屏幕,即:直接绘图。
Symbian OS有三种直接绘图:
1.创建并使用CfbsScreenDevice
2.直接访问显存
3.使用CdirectScreenAccess
CFbsScreenDevice 是一个图形设备,使用前需要为它创建一个CFbsBitGc图形描述表,它具有指向屏幕驱动器SCDV.DLL的地址。使用它绘图在屏幕上直接完成而不需要Windows Sever。Windows Sever不知道直接绘图绘图动作,别的窗口出现时直接绘图无法停止,从而有可能使屏幕杂乱。
获得显存地址,直接通过指针访问显存对屏幕进操作比CfbsScreenDevice方法快,但其性能会受设备驱动器
的影响。在某些设备中,屏幕会根据显存的变化自动更新,而另一些设备的绘图必须要去激活才行。
显存地址只对目标硬件有效,在模拟器中我们使用临时位图及其数据地址。
CdirectScreenAccess是一种较为安全(会得到Windows Sever的通知)的直接访问屏幕的的方法,速度也较快。所以很多时候都推荐用CdirectScreenAccess。
- CDirectScreenAccess 的一些解释
- CDirectScreenAccess 的一些解释
- CDirectScreenAccess , RDirectScreenAccess 和 MDirectScreenAccess的关系
- 一些名词的解释
- JFreeChart 的一些解释
- 功放的一些解释
- 谱聚类的一些解释
- 一些名词的解释
- Comsumer的一些解释
- JNI的一些解释
- Windows服务的一些解释
- 一些财务的指标解释
- WWF一些关键字的解释
- sql 语句的一些解释
- netsh命令的一些解释
- 活动对象的一些解释
- 一些小功能的解释
- javascript一些关键字的解释
- 软件测试工作真的很简单无技术难度吗
- 成为一名优秀程序员所需要知道的15件事
- 原型法
- 四种流行的AJAX框架jQuery,Mootools,Dojo,ExtJS的对比
- ae cs4 原版安装后出现licensing for this product has expired解法
- CDirectScreenAccess 的一些解释
- 多项式的排列,两项相加(C语言)
- ASP.NET验证码(3种)
- delphi公用函数
- HELLO一:如何开始DSP的学习
- “一对一”常识推翻百年集论和“没无穷大数”
- Java多线程
- HELLO二:完整工程的构成
- Oracle 下 unpin 的cursor 才能被移除