DirectDraw是由很多接口组成的,接口就是用以组件通信的函数与方法的集合!!!
DirectDraw总共由五个接口组成:
IUnknown-------所有COM对象都必须从这个基本接口生成,DirectDraw也不例外
IDirectDraw------这是开始使用DirectDraw时必须创建的主接口对象。IdirectDraw一对一地表示视频卡及其支持硬件。
///视频卡是什么?????http://zhidao.baidu.com/question/1120290.html
IDirectDrawSurface-----这表示你用DirectDraw创建、控制和显示的实际显示表面。一个DirectDraw显示表面可以使用显存(Video RAM,VRAM)存于
视频卡中或者存于系统内存里。基本上有两种显示表面:主显示表面(Primary Surface)和从显示表面(Secondary Surface).
主显示表面:通常表示正在被视频卡光栅化和显示的实际视频缓冲区
从显示表面:通常是离屏的。
通常情况下,你要创建单个的主显示表面以表示实际视频显示、一个或多个从从显示表面以表示对象位图、后备缓冲(Back Buffer)以表示将构建
下一帧动画的离屏绘图区。
/*
主表面:每一个DirectDraw应用程序都有一个主表面。主表面就相当于用户的显示器。它的内容是可见的。同理,
主表面就是根据显示器的显示模式设定宽和高。
后缓冲区:后缓冲区是紧随主表面的表面,但它不可见。它是动画没有闪烁的主因,通常,你在后缓冲区画好每一帧,
然后把后缓冲区的内容拷贝到主表面,使它显示出来。由于它紧随着主表面,所以它的大小同主表面相同。(你就理解为楼上和楼下的关系)
离屏缓冲区:它很象后缓冲区,只是它不是紧挨着主表面。尽管你可以用它作任何事,但它经常被用来存储位图。离屏缓冲区你可以任意设置大小,
唯一的限制是你内存的大小
*/
IDirectDrawPalette-----DirectDraw足以处理从1位(bit)单色到32位超真色彩的任何色彩空间。所以,DirectDraw提供对IDirectDrawPalette接口的
支持以使用256或更少的颜色在视频模式下处理调色板。你将在很多演示程序中广泛使用256色模式,因为他对于软件光栅器来说是最快的一种模式。
在本书第二卷中你将改用24位色彩,因为那是Direct3D天生擅长的模式!!!
IDirectDrawClipper-------用于帮助剪切DirectDraw光栅和位图操作到一些可见显示表面的子集。IDrectDrawClipper接口能够利用硬件加速,
并且已经替你完成了剪切位图所必须的代价昂贵的逐像素(Pixel-by-Pixel)或子图形(Sub-image)处理!!!