DirectDraw

来源:互联网 发布:ae mac中文破解版下载 编辑:程序博客网 时间:2024/05/17 01:06
DirectDraw特性:
1)DirectDraw硬件抽象层提供了一个统一的接口,通过它,开发者可以直接的操作显示存储器和视频存储器,从系统硬件中获取最大的表现能力.
2)DirectDraw 可以充分评估视频硬件的能力,只要可能,它就会对其某一特性加以利用
3)DirectDraw 将视频和系统存储器视为整块的空间,而不是碎片的集合.不使用区段偏移寻址,而是一种近似于"平面"的内存模型.
4)DirectDraw 使得多后台缓存(back buffers)的换页(page flipping)操作变得极为容易
5)DirectDraw 支持窗口和全屏模式应用程序的裁剪。
6)DirectDraw 支持 3-D Z 缓存.
7)DirectDraw 支持带 Z 轴方向的硬件辅助覆盖.
8)DirectDraw 可同时访问标准的和增强的显示设备内存区.
 
基本图形概念:
1)设备无关位图(DIB)
2)画图页面(Drawing surface)
     图形设备接口(GDI),是Win32 作图函数,与 DirectX 完全不同的。GDI 可以访问系统内存的视频缓冲,但不能访问显示内存
     画图页面可以直接对显卡上的内存读写,这就极大的提高了速度.同时,这些页面表现为连续的内存块,这使得可以很容易的进行地址操作。
3)位块传送(Blitting)
     内存中的数据块从一处传送到另一处。Blit 常常被用来做精灵动画(sprite animation)
4)翻页和后台缓存(Page Flipping and Back Buffering)
5)矩形(Introduction to Rectangles)
 
DirectDraw架构:
 >管理多页面
 >直接访问视频内存
 >换页(Page flipping)
 >后台缓存(Back buffering)
 >管理调色板(Palette)
 >裁剪(Clipping)
  DirectDraw 是通过基于 COM 的接口提供服务.
  通常接口分别是: IDirectDraw4, IDirectDrawSurface4, IDirectDrawPalette, IDirectDrawClipper, 和 IDirectDrawVideoPort.
  DirectDraw 对象代表显示适配器,并且通过 IDirectDraw, IDirectDraw2, 和 IDirectDraw4 接口将其方法暴露.在大多数情况下,
  使用 DirectDrawCreate 函数创建一个  DirectDraw 对象,但也可以通过使用 CoCreateInstance COM 函数创建.
 
硬件抽象层(HAL)
软件仿真层
 
DirectDraw 对象类型(DirectDraw Object Types)
1)DirectDraw 对象
     DirectDraw 应用程序的核心.它是你在建立 DirectDraw 应用程序时所要创建的第一个对象,再用它来创建所有其它相关的对象.
2)DirectDrawSurface 对象 
    页面(Surface),代表了内存中的一块区域,它存储了可以显示在显示器上的图象数据.通过调用 DirectDraw 对象的 IDirectDraw4::CreateSurface
    函数可以创建一个与该 DirectDraw 对象相关联的页面.
3)DirectDrawPalette 对象
    调色板(Palette),代表了一个可以为页面所使用的16或256色的调色板.它包含了一组 RGB 值的索引,用来描述页面上的像素所使用的颜色值.
    对于像素位深度大于8的页面,不需要使用调色板.通过调用 IDirectDraw4::CreatePalette 函数,可以创建一个 DirectDrawPalette 对象.
4)DirectDrawClipper 对象
    裁剪器(Clipper),帮助开发者使 Blit(位块传送)操作限定在页面的某一区域内,或不超出页面的边界范围.
    通过调用 IDirectDraw4::CreateClipper 函数可以创建一个DirectDrawClipper 对象.
5)DirectDrawVideoPort 对象
    代表了当前某些系统上的视频端口(Vedio port)硬件.这个硬件允许直接的访问帧缓存,而不需要通过 CPU 或使用 PCI 总线.
    通过对 DirectDRaw 对象调用   QueryInterface 函数(指定 IID_IDDVideoPortContainer 标志符),可以创建一个 DirectDrawVideoPort 对象.
0 0
原创粉丝点击