推荐文档列表

高性能Windows图形开发库WinG

时间:2021-10-01 09:53:26 计算机论文 我要投稿

高性能Windows图形开发库WinG

摘 要 该文首先概述高性能Windows图形开发库WinG,然后讲解WinG的一些特点及充分发挥WinG性能所必须遵循的十条原则,最后举例说明其开发方法。

一、概述

在Windows下,由于其GDI设备无关性、窗口环境、缺乏通用图形库等限制影响了图形速度。图形速度慢成为选择Windows作为游戏平台的最大障碍。

Windows 95在保留Windows的最大优点—设备无关性的同时,在Win32 API中新增一个32位调用CreateDIBSection,使得图形速度得到很大提高。Microsoft公司意识到图形速度对于高质量软件的重要性,提

供了WinG(发音"Win Gee",其中"G"代表游戏(Game))图形库。

WinG是为Windows3.1、Windows for Workgroups 3.11、Windows95和Windows NT设计的一种优化的高性能图形库,运行于386以上的处理器。WinG能在Windows环境中提供与DOS环境相当的游戏图形性能。程序员可以直接将内存中的设备无关位图(DIB)传送到屏幕,并且提供抖动(halftoning)API,利用标准Microsoft抖动调色板支持对真彩色的仿真。

二、WinGDC和API

WinG提供一种新型设备描述表WinGDC,其用法类似于其它设备描述表,不同的是,程序员可以获取直接指向WinGDC绘图面、BITMAPINFOHEADER和颜色表的指针,还可以创建和选择新的绘图面或修改现有绘图面的颜色表。应用程序可以创建一个WinGDC和创建一个或多个WinGBitmap用于绘图。一旦当前帧绘图、DIB组织、Sprite(精灵)组织完成后,就可将WinGDC缓冲区拷贝到屏幕。这种双缓冲区结构减少了闪烁,使屏幕更新更平滑。

WinG API包含如附表所示的函数和类型。

附表

WinGDC不是调色板设备,是RGB设备。使用WinGSetDIBColorTable,而不是SelectPalette修改设备的颜色表。

三、WinG调色板管理

Windows调色板管理器用于管理多个应用程序对同一个系统调色板的使用请求。它给每个应用程序分配一个虚拟256色的逻辑调色板,并在必要时将逻辑调色板中的颜色转换为系统调色板中的颜色。

所谓对等(Identify)调色板,就是一个与当前系统调色板精确(1:1)匹配的逻辑调色板。它不需要进行调色板转换,因此将WinGDC传送到屏幕上时使用对等调色板能大大提高传送速度。

抖动调色板是一个对等调色板,其中包含的颜色是经过精心挑选的,并进行了优化使得在8位设备上通过抖动模拟真彩色。应用程序可选取该调色板并在显示设备描述表中实现,以便利用WinG提供的抖动技术。WinG图形库提供两个支持抖动的API:WinGCreateHalftonePalette和WinGCreateHalftoneBrush,利用它们可在8位设备上仿真出24位真彩色。

四、WinG的DIB方向

1.自下而上DIB

Windows DIB的标准类型是自下而上的DIB,即DIB总是指向内存中最底层的扫描线。坐标(0,0)对应于图像的左下角,而Windows将(0,0)对应于显示器和设备相关位图(DDB)的左上角,即自下而上DIB的y轴被颠倒了。

对于8位自下而上DIB,屏幕上像素(X,Y)在内存中的地址计算如下:

//计算每扫描线实际比特数 DibW

[1] [2] [3]