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)
画图页面可以直接对显卡上的内存读写,这就极大的提高了速度.同时,这些页面表现为连续的内存块,这使得可以很容易的进行地址操作。
3)位块传送(Blitting)
内存中的数据块从一处传送到另一处。Blit 常常被用来做精灵动画(sprite animation)
4)翻页和后台缓存(Page Flipping and Back Buffering)
5)矩形(Introduction to Rectangles)
DirectDraw架构:
>管理多页面
>直接访问视频内存
>换页(Page flipping)
>后台缓存(Back buffering)
>管理调色板(Palette)
>裁剪(Clipping)
>直接访问视频内存
>换页(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
1)DirectDraw 对象
DirectDraw 应用程序的核心.它是你在建立 DirectDraw 应用程序时所要创建的第一个对象,再用它来创建所有其它相关的对象.
2)DirectDrawSurface 对象
页面(Surface),代表了内存中的一块区域,它存储了可以显示在显示器上的图象数据.通过调用 DirectDraw 对象的 IDirectDraw4::CreateSurface
函数可以创建一个与该 DirectDraw 对象相关联的页面.
3)DirectDrawPalette 对象
调色板(Palette),代表了一个可以为页面所使用的16或256色的调色板.它包含了一组 RGB 值的索引,用来描述页面上的像素所使用的颜色值.
3)DirectDrawPalette 对象
调色板(Palette),代表了一个可以为页面所使用的16或256色的调色板.它包含了一组 RGB 值的索引,用来描述页面上的像素所使用的颜色值.
对于像素位深度大于8的页面,不需要使用调色板.通过调用 IDirectDraw4::CreatePalette 函数,可以创建一个 DirectDrawPalette 对象.
4)DirectDrawClipper 对象
裁剪器(Clipper),帮助开发者使 Blit(位块传送)操作限定在页面的某一区域内,或不超出页面的边界范围.
4)DirectDrawClipper 对象
裁剪器(Clipper),帮助开发者使 Blit(位块传送)操作限定在页面的某一区域内,或不超出页面的边界范围.
通过调用 IDirectDraw4::CreateClipper 函数可以创建一个DirectDrawClipper 对象.
5)DirectDrawVideoPort 对象
代表了当前某些系统上的视频端口(Vedio port)硬件.这个硬件允许直接的访问帧缓存,而不需要通过 CPU 或使用 PCI 总线.
5)DirectDrawVideoPort 对象
代表了当前某些系统上的视频端口(Vedio port)硬件.这个硬件允许直接的访问帧缓存,而不需要通过 CPU 或使用 PCI 总线.
通过对 DirectDRaw 对象调用 QueryInterface 函数(指定 IID_IDDVideoPortContainer 标志符),可以创建一个 DirectDrawVideoPort 对象.
0 0
- DirectDraw
- DirectDraw
- 高级DirectDraw
- 初试DirectDraw
- DirectDraw(转)
- Wince6 DirectDraw
- directDraw封装
- DirectDraw 示例
- 深入directdraw
- DirectDraw 示例
- 学习directdraw
- DirectDraw编程
- DirectDraw 示例
- DirectDraw YUV
- DirectDraw基础
- DirectDraw用法
- 高级DirectDraw
- DirectDraw读书笔记
- 设计模式
- DirectX发展历程
- 多核程序设计技术
- 文件读写
- 树状数组-高低桥
- DirectDraw
- DirectDraw系统集成
- DirectShow-13 Seeking
- 回调函数
- DirectShow - 14 DirectShow的线程和临界区
- 【iOS开发】---- 强大的UI修改工具 UIAppearance
- 关于移动中的button的响应问题
- Cocos2dx 小技巧(一)预定义文件路径
- 小说名词解释:种田派