WinCE5.0显示驱动对DirectDraw 功能的支持
2009-07-24 22:27
302 查看
WinCE5.0显示驱动对DirectDraw 功能的支持
--作者:赖玉平(Auly)aulyp@163.com
方框图:
上图中DDI 和HAL 单元都是显示设备驱动程序的组成部分
DDI 单元的导出函数是DrvEnableDriver,HAL 单元的导出函数是HALInit。DDI 单元为GDI 提供服务,HAL 单元及Windows CE 自带的以软件模拟的方式提供对DirectDraw 功能支持的HEL 单元为DirectDraw 服务。GDI和DirectDraw 都是Windows CE 操作系统的GWES 子系统的组成部分,前者主要负责画矩形、直线、圆等简单的几何型图及较简单的块传输、画直线的硬件加速,后者可以画复杂的二维图案和更高级的硬件加速。
1 LCD 控制器驱动程序动态链接库的另一个重要的导出函数是HALInit,HALInit 函数在驱动程序初始化阶段被DirectDraw 调用。HALInit 函数的全部实现代码都是为了构造一个为DirectDraw 提供功能支持信息的DDHALINFO 结构体。
2 HALInit 函数的执行主要就是调用两个函数:
FillHelCaps 函数负责初始化DDHALINFO 结构体的ddHelCaps 成员。是设备驱动程序用软件模拟支持的DirectDraw能力, 由于与特定的显示设备硬件无关,所以填充ddHelCaps 成员的工作就由微软代劳,
buildDDHALInfo 函数负责初始化lpddhi 指针所指向的DDHALINFO 结构体数据的与硬件相关的内容,这部分记录的是上图中的HAL 单元的DirectDraw 支持能力,而HAL 单元是显示设备驱动程序的组成部分,必须由用户负责实现。
3 在buildDDHALInfo里,通过一个全局结构体g_pGPE,获得初始化信息(SUNSAMG2450BSP).
在Halcaps.cpp中
lpddhi->vmiData.ddpfDisplay.dwRGBBitCount 回传LCD位数
CreateSurface 是DDHAL_DDCALLBACKS 结构体的成员函数,该结构体是DirectDraw 对象回调函数的容器,这此都是与硬件特别相关的函数,必须实现
DDHAL_DDCALLBACKS,
DDHAL_DDCOLORCONTROLCALLBACKS
DDHAL_DDEXEBUFCALLBACKS
DDHAL_DDKERNELCALLBACKS
DDHAL_DDMISCELLANEOUSCALLBACKS
DDHAL_DDPALETTECALLBACKS
DDHAL_DDSURFACECALLBACKS
DDHAL_DDHALMEMORYCALLBACKS
DDHAL_DDVIDEOPORTCALLBACKS
DDKERNELCAPS
以上这些结构体,实现与操作系统的交互,在这些结构中定义各种信息。系统通过这里定义的接口调用驱动程序。
详情看李大为的著作,14章
在Windows CE 操作系统的显示设备驱动程序中,DirectDraw 显示表面用DDGPESurf 类表示。所谓
DirectDraw 显示表面,就是加入了对DirectDraw 支持功能的显示表面。DirectDraw 显示表面与一般的显
示表面是具体与抽象的关系,DDGPESurf是GPESurf 类的子类
DDGPESurf 类成员中:
m_ePixelFormat 成员记录DirectDraw 显示表面的像素格式
--作者:赖玉平(Auly)aulyp@163.com
方框图:
上图中DDI 和HAL 单元都是显示设备驱动程序的组成部分
DDI 单元的导出函数是DrvEnableDriver,HAL 单元的导出函数是HALInit。DDI 单元为GDI 提供服务,HAL 单元及Windows CE 自带的以软件模拟的方式提供对DirectDraw 功能支持的HEL 单元为DirectDraw 服务。GDI和DirectDraw 都是Windows CE 操作系统的GWES 子系统的组成部分,前者主要负责画矩形、直线、圆等简单的几何型图及较简单的块传输、画直线的硬件加速,后者可以画复杂的二维图案和更高级的硬件加速。
1 LCD 控制器驱动程序动态链接库的另一个重要的导出函数是HALInit,HALInit 函数在驱动程序初始化阶段被DirectDraw 调用。HALInit 函数的全部实现代码都是为了构造一个为DirectDraw 提供功能支持信息的DDHALINFO 结构体。
2 HALInit 函数的执行主要就是调用两个函数:
FillHelCaps 函数负责初始化DDHALINFO 结构体的ddHelCaps 成员。是设备驱动程序用软件模拟支持的DirectDraw能力, 由于与特定的显示设备硬件无关,所以填充ddHelCaps 成员的工作就由微软代劳,
buildDDHALInfo 函数负责初始化lpddhi 指针所指向的DDHALINFO 结构体数据的与硬件相关的内容,这部分记录的是上图中的HAL 单元的DirectDraw 支持能力,而HAL 单元是显示设备驱动程序的组成部分,必须由用户负责实现。
3 在buildDDHALInfo里,通过一个全局结构体g_pGPE,获得初始化信息(SUNSAMG2450BSP).
在Halcaps.cpp中
lpddhi->vmiData.ddpfDisplay.dwRGBBitCount 回传LCD位数
CreateSurface 是DDHAL_DDCALLBACKS 结构体的成员函数,该结构体是DirectDraw 对象回调函数的容器,这此都是与硬件特别相关的函数,必须实现
DDHAL_DDCALLBACKS,
DDHAL_DDCOLORCONTROLCALLBACKS
DDHAL_DDEXEBUFCALLBACKS
DDHAL_DDKERNELCALLBACKS
DDHAL_DDMISCELLANEOUSCALLBACKS
DDHAL_DDPALETTECALLBACKS
DDHAL_DDSURFACECALLBACKS
DDHAL_DDHALMEMORYCALLBACKS
DDHAL_DDVIDEOPORTCALLBACKS
DDKERNELCAPS
以上这些结构体,实现与操作系统的交互,在这些结构中定义各种信息。系统通过这里定义的接口调用驱动程序。
详情看李大为的著作,14章
在Windows CE 操作系统的显示设备驱动程序中,DirectDraw 显示表面用DDGPESurf 类表示。所谓
DirectDraw 显示表面,就是加入了对DirectDraw 支持功能的显示表面。DirectDraw 显示表面与一般的显
示表面是具体与抽象的关系,DDGPESurf是GPESurf 类的子类
DDGPESurf 类成员中:
m_ePixelFormat 成员记录DirectDraw 显示表面的像素格式
相关文章推荐
- jsp单页面数据库查询模板:支持分页、排序、简单搜索、设置每页显示页数功能
- 利用 Windows Server 2008 R2 的 WDS 驱动程序功能快速为引导映像添加额外的网卡驱动支持
- RT-Thread 学习笔记(十三)--- 开启基于RTGUI的LCD显示功能(3)<触屏屏驱动移植和测试>
- Code maturity level options 代码成熟度选项 [*]Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 我是开发者,所以选[*] Loadable module support 可加载模块支持 [*]Enable loadable module support 内核编译配置选项简介 (2.4.20-8
- 文本框显示行号功能-支持IE/firefox/chrome等浏览器
- Linux内核调用SPI平台级驱动_实现OLED的显示功能
- Android实现类似Excel显示数据功能(支持拖动改变列宽)v 1.0
- Windows CE LCD显示驱动简析(1)(基于WinCE5.0 SMDK2410 BSP的LCD显示设备驱动)
- XEditText:带删除功能的EditText;可设置自动添加分隔符分割电话号码、银行卡号等;支持禁止Emoji表情符号输入;自定义右边显示图标作功能选项;仿iOS输入框风格
- 让VIM支持Nginx .conf文件语法高亮显示功能的方法
- 开源库【GuideView】功能引导视图,支持fragment,只显示一次,接入超简单顺滑
- Windows CE LCD显示驱动简析(2)(基于WinCE5.0 SMDK2410 BSP的LCD显示设备驱动)
- TextView加载html代码显示图片,并且支持图片放大功能
- 高通DragonBoard 410c MIPI-DIS显示功能及驱动移植
- jsp单页面数据库查询模板:支持分页、排序、简单搜索、设置每页显示页数功能
- jQuery插件-支持天干地支阴历阳历万年历节假日红字显示记事等功能的日历插件(1)
- RT-Thread 学习笔记(十一)--- 开启基于RTGUI的LCD显示功能(1)<LCD驱动接口移植>
- 设计一个音乐播放器,用List列表显示手机中所有音乐,支持播放、暂停、继续、上一首、下一首等功能。
- OpenSeadragon 显示多图自带放大缩小功能的JS插件(支持桌面和手机)
- WINCE5.0 系统对多语言的显示支持