windows图形编程总结

windows图形编程第二章
这一章主要是在整体上对windows图形程序进行的整体介绍,感觉作者还是比较喜欢在底层对图形进行一些解释,而且,可能是在惠普打印机做的比较久了,所以很多情况下是对打印机为例子进行的阐述,而这章我觉得最大的收获就是对打印机驱动程序和图形引擎之间的关系和微软对打印机驱动实现的基本方法了,首先
Windows 2000打印机驱动程序具有如下责任:

■通过提供GDI不能支持的特定打印机的绘制能力来帮助GDI绘制打印作业。

■发送绘制的图像数据流到打印假脱机。

■提供一个与打印机及打印文档相关的可修改配置参数的用户接口,如选择的输入输出的托架、打印的份数、图像的精度及方向等等。

微软操作系统一起发布的打印机驱动程序:

■微软统一打印机驱动程序

■微软Postscript打印机驱动程序

■微软绘图仪打印机驱动程序
所以这些打印机程序提供的驱动程序的函数接口(主要包括打印机图形DLL和打印机接口DLL)
打印机图形DLL实现了在第一部分的第3章支持DDI中描述的Drv为前辍的DDI函数。这些DLL具有以下列两项责任:
■帮助GDI绘制打印作业:一个打印机图形DLL可以支持DDI绘制函数来处理那些必须以特定设备的方式执行以及那些不能由GDI的绘制引擎完成的绘制操作。
■发送绘制数据流到假脱机:打印机图形DLL通常以RAW数据类型(包括命令序列)产生一个输出流,假脱机可以通过打印监视器将它发送到打印机硬件。
DrvEnableDriver
允许驱动程序初始化它自身并返回支持DDI函数的指针

DrvCompletePDEV
对一个设备实例提供具有GDI句柄的驱动程序

DrvDisableDriver
(可选)允许驱动程序在卸载之前执行清除工作

DrvDisablePDEV
允许驱动程序删除设备特定实例的信息

DrvDisableSurface
允许驱动程序删除绘制表面

DrvEnablePDEV
允许驱动程序提供具有物理设备特征的GDI并初始化设备特定实例的信息

DrvEnableSurface
允许驱动程序创建绘制表面

DrvQueryDeviceSupport
(可选)返回被请求的特定设备的信息

DrvQuery
(可选)返回被请求的特定驱动程序的信息

 


打印机图形DLL也对定义以下特定打印的DDI函数负责,它们在绘制打印作业过程中的某一特定点时被调用。

函数 何时调用

DrvEndDoc
当GDI已经结束发送一个文档到驱动程序以备绘制时

DrvNextBand
(可选)当GDI已经结束绘制一个物理页面的一个区带(band),这样驱动程序可以将该区发送到打印机

DrvQueryPerBandInfo
(可选)在GDI开始为一个物理页面绘制区带之前,这样驱动程序可以提供具有特定区带信息的GDI。

DrvSendPage
当GDI已经结束绘制物理页面,这样驱动程序可以将此页面发送到打印机。

DrvStartBanding
(可选)当GDI准备绘制时开始发送一个物理页面的区带信息到驱动程序

DrvStartDoc
当GDI准备绘制时开始发送一个文档到驱动程序

DrvStartPage
当GDI准备绘制时开始发送一个文档页到驱动程序

一个绘制表面已经创建并且绘制可以开始,对每一个绘制的文档来说,GDI在打印机图形DLL中调用以下的函数:

l DrvStartDoc

For each physical page{

l DrvStartPage

DrStartBanding

For each banding surface{

DrvQueryPerbandInfo

Rendering operations

DrvNextBand

}

DrvSendPage

}

l DrvendDoc
打印机接口DLL
打印机通常给用户提供大量的可修改配置的选择,这些选择项可以在每一个被付印的文档中被改变。如页面、托架、字体选择、图像精度、尺寸、色彩等等都必须可以通过用户接口被存取,也可以被应用程序调用。

一个打印机驱动程序的打印机接口DLL,它是执行在用户模式下,负责导出一个用户的接口到打印机的配置选项。提供这一接口包括为打印机创建原型表单页面。应用程序(如打印折叠器)通过调用由打印假脱机导出的Win32函数显示接口,并且,假脱机返过来,又调用由打印机接口DLL定义的函数。

为配置选项提供一个用户接口不是打印机接口DLL的唯一责任,DLL同时也导出假脱机可以调用的函数以通知驱动程序打印相关的系统事件,如驱动程序安装、升级或者添加打印机及打印机连接等。
对这部分书中介绍的不是很多,主要是我在网上找的一些资料
就总结到这吧,对这些驱动方面的东西,由于以前也没有接触过,所以只能是在理论上进行一些了解,对于具体实现也是请教别人,有点类似java虚拟机的实现,提供一些接口,而硬件厂商则按照各自函数实现自己硬件的驱动程序,然后驱动和图形引擎相结合,实现了图形在底层的实现方式,对这,我也只是大概了了解一点,确切的说感觉也是了解的比较朦胧的,毕竟没有自己编写过驱动程序嘛,不过按照个人体会总结这,也算是一个入门了,希望对今后学习和一些和我一样热爱编程的小菜鸟们能有所帮助,我也会继续努力的,感觉除了程序会死心塌地的陪着我,其他的都有可能离开我了,这些都以后再说了,就到这了。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要运行OpenGL ES 2.0游戏或图形编程代码,您需要按照以下步骤进行: 1. 安装开发环境:首先,您需要安装适用于您的开发平台的OpenGL ES 2.0开发环境。例如,如果您在Windows上进行开发,您可以安装Android Studio或Eclipse,并安装Android SDK和NDK。如果您在iOS上开发,您可以安装Xcode。 2. 创建项目:在您的开发环境创建一个新的项目,选择OpenGL ES 2.0作为项目的图形渲染API。项目的创建过程可能因您所使用的开发环境而有所不同,但通常会有一个OpenGL ES 2.0或游戏开发模板可供选择。 3. 编写代码:在项目,您可以编辑主要的代码文件,这些文件定义了绘制图形和游戏逻辑的方式。OpenGL ES 2.0使用GLSL(OpenGL Shading Language)作为着色器语言,您可以编写顶点着色器和片段着色器来处理渲染和效果。 4. 运行代码:一旦您完成了代码编写,您可以通过编译和构建项目来运行它。根据您的开发平台,您可以选择在模拟器上或直接在实际设备上运行代码。您的开发环境将提供一个选项来运行和测试您的应用程序。 5. 调试和优化:运行代码后,您可能需要进行调试和优化以确保游戏或图形效果的正确性和性能。您可以使用调试工具和性能分析器,例如OpenGL ES调试器或GPU逐帧分析器,来跟踪和解决可能的问题。 总结来说,要运行OpenGL ES 2.0游戏或图形编程代码,您需要安装开发环境,创建一个项目,编写代码,运行代码以及进行调试和优化。随着您的不断练习和探索,您将能够创建出令人惊艳的图形效果和流畅的游戏体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值