正在加载图片...
BRUSHOBJ 为图形函数定义了画刷对象,输出直线、文本或填充 驱动程序能调用 BRUSHOBJ服务来实现画刷或找到GDI预先缓存的实现方 CLIPOBJ 为绘图或填充提供能访问裁剪区的驱动程序。这个区域能用一系列矩形计 算 FLOATOBJ 允许图形驱动程序模拟浮点操作。浮点操作不适用所有其他的核心模式驱 动程序。 FONTOBJ 使驱动程序访问字体的一个特别的实例(或实现)的信息。 PALOBJ 包含RGB调色板颜色的结构:通过 PALOBJ cGetColors和 DrySet palette 函数可以访问。 PATHOBJ 定义路径指定要绘制什么(直线或贝塞尔曲线)。 PATHOBJ结构传递给驱 动程序用以描述要绘制或填充的一系列直线和贝塞尔曲线。 STROBJ 为驱动程序计算轮廓处理和位置的列表,描述如何绘制文本字符串。 SURFOBJ 识别一个表面,它可以是GDI位图、设备相关位图或设备管理的表面。更 多的信息参见表面类型。 XFORMOBJ 描述一个任意的线性二维变换,如几何宽度直线( geometric wide line) XLATEOBJ 主义从源表面格式到目的表面格式转换像素所需要的变换 2.2.1.2GDI服务例程 GDI输出许多服务例程,其名字的形式是Engx。驱动程序动态地连接到win32k.sys 来直接访问这些例程。GDI服务例程包括表面管理、绘图模拟以及路径、调色板、字体和文 本服务。这些服务在CD支持的服务中详细讨论。 2.2.2PDEV协商 任何图形驱动程序的首要任务之一是在驱动程序初始化期间使PDV有效。PDEV是物 理设备的逻辑表现。这个表现由驱动程序定义,一般是私有的数据结构。启用PDEV的更多 的信息参考 Dry Enablepdev。 通过 DrvEnablepDev函数,驱动程序必须给GDI提供信息,描述请求的设备及其能力。 驱动程序给GDI的一条重要信息是 DEVINFO结构的f1 Graphics Caps和f1 Graphics Caps2成 员中的一组图形能力标志( GCAPS XXX和 GCAPS2Xxx标志)。 能力标志允许GDⅠ确定那些操作是PDE支持的。例如,GDI测试能力标志,指示在 GDI尝试用这些基本的类型调用 DryStrokePath函数来绘制路径之前,PDEV是否能处理贝塞 尔曲线和几何宽度直线。如果能力标志指示PDEV不能处理这些基本类型,GDI断开直线或 曲线,使GDI能简化对驱动程序的调用。 从驱动程序一侧来看,无论何时驱动程序从GDI获得一个高级的路径相关的调用,如 果路径或裁剪区对设备进行的处理过于复杂,它可返回 FALSE 当驱动程序处理一条装饰线( cosmetic line)时它不能从 DryStrokePath返回 FALSE 因为它必须为装饰线处理任意复杂的裁剪区或造型。然而,如果路径是贝塞尔曲线或几何直 线, DryStrokePath能够返回 FALSE。当这种情况出现时,GDI把调用分割成简单的调用 就像能力标志位没有置1一样。例如,如果当 DryStrokePath发送一个几何直线时返回 FALSE,GDI简化直线并调用 DryFillPath函数 如果 DryStrokePath被报告一个错误,它必须返回 DDI ERROR 66 BRUSHOBJ 为图形函数定义了画刷对象,输出直线、文本或填充。 驱动程序能调用 BRUSHOBJ 服务来实现画刷或找到 GDI 预先缓存的实现方 法。 CLIPOBJ 为绘图或填充提供能访问裁剪区的驱动程序。这个区域能用一系列矩形计 算。 FLOATOBJ 允许图形驱动程序模拟浮点操作。浮点操作不适用所有其他的核心模式驱 动程序。 FONTOBJ 使驱动程序访问字体的一个特别的实例(或实现)的信息。 PALOBJ 包含 RGB 调色板颜色的结构;通过 PALOBJ_cGetColors 和 DrvSetPalette 函数可以访问。 PATHOBJ 定义路径指定要绘制什么(直线或贝塞尔曲线)。PATHOBJ 结构传递给驱 动程序用以描述要绘制或填充的一系列直线和贝塞尔曲线。 STROBJ 为驱动程序计算轮廓处理和位置的列表,描述如何绘制文本字符串。 SURFOBJ 识别一个表面,它可以是 GDI 位图、设备相关位图或设备管理的表面。更 多的信息参见表面类型。 XFORMOBJ 描述一个任意的线性二维变换,如几何宽度直线(geometric wide line)。 XLATEOBJ 定义从源表面格式到目的表面格式转换像素所需要的变换。 2.2.1.2 GDI 服务例程 GDI 输出许多服务例程,其名字的形式是 EngXxx。驱动程序动态地连接到 win32k.sys 来直接访问这些例程。GDI 服务例程包括表面管理、绘图模拟以及路径、调色板、字体和文 本服务。这些服务在 GDI 支持的服务中详细讨论。 2.2.2 PDEV 协商 任何图形驱动程序的首要任务之一是在驱动程序初始化期间使 PDEV 有效。PDEV 是物 理设备的逻辑表现。这个表现由驱动程序定义,一般是私有的数据结构。启用 PDEV 的更多 的信息参考 DrvEnablePDEV。 通过 DrvEnablePDEV 函数,驱动程序必须给 GDI 提供信息,描述请求的设备及其能力。 驱动程序给 GDI 的一条重要信息是 DEVINFO 结构的 flGraphicsCaps 和 flGraphicsCaps2 成 员中的一组图形能力标志(GCAPS_Xxx 和 GCAPS2_Xxx 标志)。 能力标志允许 GDI 确定那些操作是 PDEV 支持的。例如,GDI 测试能力标志,指示在 GDI 尝试用这些基本的类型调用 DrvStrokePath 函数来绘制路径之前,PDEV 是否能处理贝塞 尔曲线和几何宽度直线。如果能力标志指示 PDEV 不能处理这些基本类型,GDI 断开直线或 曲线,使 GDI 能简化对驱动程序的调用。 从驱动程序一侧来看,无论何时驱动程序从 GDI 获得一个高级的路径相关的调用,如 果路径或裁剪区对设备进行的处理过于复杂,它可返回 FALSE。 当驱动程序处理一条装饰线(cosmetic line)时它不能从 DrvStrokePath 返回 FALSE, 因为它必须为装饰线处理任意复杂的裁剪区或造型。然而,如果路径是贝塞尔曲线或几何直 线,DrvStrokePath 能够返回 FALSE。当这种情况出现时,GDI 把调用分割成简单的调用。 就像能力标志位没有置 1 一样。例如,如果当 DrvStrokePath 发送一个几何直线时返回 FALSE,GDI 简化直线并调用 DrvFillPath 函数。 如果 DrvStrokePath 被报告一个错误,它必须返回 DDI_ERROR
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有