好多天上不了csdn了,今天终于上来了。写篇blog吧!!!这篇blog介绍wince下的display驱动开发。
在wince中,display驱动由gwes模块来管理。wince提供了两种架构的display驱动模型,可以满足不同的硬件需求。一种是基于wince ddi的display驱动模型,另一种是基于directdraw的display驱动模型。下面将对两种架构作简单介绍。
1. display驱动模型
wince下的display驱动直接由gwes模块管理,它会直接被gwes模块管理和调用。display驱动实际上也是分层的,其中包括gpe库,该库处理一些默认的绘图,相当于驱动的mdd层。用户只需要开发和硬件相关的pdd层驱动就可以了。在wince中,整个架构如图:
如图,application为一个应用程序,该程序会调用图形设备接口函数(gdi),而gdi函数是由coredll.dll模块导出的。coredll.dll会将函数调用的参数打包,然后触发对另一个进程的本地过程调用(lpc),所有的绘图和开窗口的工作被传给内核中gwes模块。gwes模块被称为图形,窗口和事件子系统,专门处理图形输出和用户输入等事件及相关的所有交互。gwes模块会调用display驱动完成对显示硬件的操作。display驱动由gpe和ddl.dll组成,gpe完成基本的默认绘图工作,而ddi.dll实际上从gpe类上继承而来的,并实现了相关的显示硬件的操作。
2. directdraw display驱动模型
directdraw提供了独立于硬件的直接访问显示设备的能力。它可以通过直接访问硬件抽象层(hal)中的一些函数来达到直接操作显示设备的目的,在这个过程中,不再需要图形设备接口(gdi)的转换。这种直接的方法可以使图像更加连贯,也提高了显示的性能。为了实现这样的功能,需要在显示驱动上扩展能够直接访问相关硬件的函数。这些函数会被directdraw模块调用,并形成directdraw的硬件抽象层(ddhal)。directdraw显示驱动架构如图:
如果喜欢wince display驱动开发介绍请收藏或告诉您的好朋友.
阅读(187) | 评论(0) | 转发(0) |