DirectDraw 是DirectX应用程序编程接口的一部分 ,是 microsoft 提供的能更好的对控制显存操作,硬件位图映射(hardware blitter),支持硬件覆盖和换页技术(flipping surface)的一套新的类库。
他提供了完成一下任务的工具
1。管理多页面
2。直接访问视频内存
3。换页(page flipping)
4。后台缓存(back buffering)
5。管理调色(palette)板
6。裁剪(clipping)
DirectDraw 所用的对象有
1-DirectDraw:
这是DirectDraw的核心,是DirectDraw所要创建的第一个对象。需要用他来创建其他的对象。创建的方式为
DirectDrawCreate函数。 实现的接口 IDirectDraw ,IDirectDraw2,IDirectDraw4
2-DirectDrawSurface:
简称为“页面”。他代表内存中的一块区域。他存储了可以显示在显示器上的图像数据。创建的方式为
IDirectDraw4:CreateSurface,实现的接口有 IDirectDrawSurface,IDirectDrawSurface2,IDirectDrawSurface3,IDirectDrawSurface4
3 -DirectDrawPallete:
简称为“调色板” ,代表了一个可以为页面所使用的16或256色的调色板.它包含了一组 RGB 值的索引,用来描述页面上的像素所使用的颜色值.对于像素位深度大于8的页面,不需要使用调色板.通过调用 IDirectDraw4::CreatePalette 函数,可以创建一个 DirectDrawPalette 对象. DirectDrawPalette 对象通过 IDirectDrawPalette 接口为开发者提供其函数性.
4-DirectDrawClipper 对象
DirectDrawClipper 对象,通常简称为"裁剪器(Clipper)",帮助开发者使 Blit(位块传送)操作限定在页面的某一区域内,或不超出页面的边界范围.通过调用 IDirectDraw4::CreateClipper 函数可以创建一个 DirectDrawClipper 对象. DirectDrawClipper 对象通过 IDirectDrawClipper 接口为开发者提供其函数性
5-DirectDrawVideoPort 对象
DirectDrawVideoPort 对象代表了当前某些系统上的视频端口(Vedio port)硬件.这个硬件允许直接的访问帧缓存,而不需要通过 CPU 或使用 PCI 总线.通过对 DirectDRaw 对象调用 QueryInterface 函数(指定 IID_IDDVideoPortContainer 标志符),可以创建一个 DirectDrawVideoPort 对象. DirectDrawVideoPort 对象通过 IDDVideoPortContainer 和 IDirectDrawVideoPort 接口为开发者提供其函数性.