读书笔记(3)

来源:互联网 发布:淘宝药房 编辑:程序博客网 时间:2024/05/01 21:13

 

<<Windows图形编程>>---读书笔记

一、DirectX:

(1)是微软提供的API,用于开发新一代高性能计算机游戏和多媒体以。

(2)带有Direct DDI接口,它定义了销售高的硬件显示驱动程序中实现的功能。

(3)主要的两个目的服务,在API级,DirectX让游戏/应用程序开发者得到强大的设备无关的API,而不必牺牲性能,应用程序能够

利用硬件优势,而不必考虑直接与硬件交互;在设备驱动程序级,DirectX允许硬件销售商集中于硬件创新,并用这些支持DirectX的

、薄薄一层的驱动程序把这些发明商业化。DirectX DDI界面给硬件销售商提供了一些提高硬件的准则,让它们很容易集成到DirectX

中。

二、DirectX体系结构:

 

三、DirectDraw体系结构:

1:DirectDraw可以看作是GDI的特殊化:(1)把它的目标限制在计算机显示卡,而浊打印机、绘图仪或者其他的图形图像设备。

(2)减少GDI支持的功能。DirectDraw不直接支持映射模式、世界变换、字体和文本、直线和曲线,它只处理位图。(3)只实现硬

 

件加速的有限的功能,并添加对高性能游戏和多媒体编程至关重要的功能。

2:DirectDraw实现了7个主要接口:

(1)IDirectDraw是基本的DirectDraw接口,其他的DirectDraw对象可以根据它创建。IDirect接口支持其他DirectDraw对象的创建,还支持表面管理、显示模式、显示状态、内存分配等。调用DirectDrawCreate可以创建支持不同IDirectDraw接口的DirectDraw对象。

(2)IDirectDrawSurface是DirectDraw绘图的地方。IDirectDrawSurface支持表面活动的管理,如能力查询、锁定、解除锁定、设置调色板和剪切板等。表面锁定将显示内在映射到应用程序虚地址空间,允许直接存取,及将GDI设备上下文附到DirectDraw表面,并在DirectDraw表面上进行GDI调用。最重要的是,它支持硬件加速的表面位块传输和色键交换。

(3)IDirectDrawPlette接口支持对256色显示器的调色板创建和直接操作。

(4)IDirectDrawClipper接口用剪裁列表为DirectDraw表面管理剪裁,剪裁列表是由GDI API的RGNDATA结构表示。因为DirectDraw不支持剪裁列表的创建,你可以向GDI丰富的区域操作寻求帮助。

(5)IDirectDrawColorControl接口通过调整颜色高度、对比度、色相、饱和度、清晰度和r值为表面和覆盖层调整颜色。

(6)IDirectDrawCamaControl接口控制红、绿、兰的r波,它把帧缓存颜色值映射到将被送到硬件数模(DAC)转换器的颜色。

(7)IDirectDrawVideoPort接口将硬件视频端口传来的现场视频数据传给DirectDraw表面,它给程序员提供了一种通过视频端口控制硬件的方法。

 

 

 

3:如上图显示了DirectDraw体系结构,包括用户模式和内核模式组件。DirectDraw的用户模式组件是ddraw.dll,它与gdi32.dll和

 

mcd32.dll相关。DirectDraw调用经过GDI32.DLL来进行系统服务调用,系统服务调用首先由内核址空间的系统调用调度程序服务。调

 

度程序把调用送到图形引擎。然后送到第三方提供的显示驱动程序或视频端口驱动程序。

 

 

 

4:DirectDraw分几层实现。最上面的层支持DirectDraw COM接口、标准COM函数及特殊DirectDraw创建例程。中间层是硬件仿真层(

 

HEL),它模仿硬件不支持的所有或部分的功能。底层叫做硬件抽象层(HAL),直接和显示硬件对话。