中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) DirectXDraw实验 一、实验目的 了解DirectX的组成和功能以及计算机图像的显示原理,掌握使用DirectXDraw编写图 像应用程序的基本知识。 二、实验原理 1、DirectX概念 微软的Direct>软件开发工具包(SDK)提供了一套优秀的应用程序编程接口(APIs), 这个编程接口可以提供给你开发高质量、实时的应用程序所需要的各种资源。Direct仪技术 的出现将极大的有助于发展下一代多媒体应用程序和电脑游戏。总的说来,使用Direct仪的 主要有两个好处:1、为软件开发者提供硬件无关性:2、为硬件开发提供策略。 2、DirectX组件 DirectX SDK为基于Windows平台的应用程序提供了以下几个组件。 DirectDraw :通过直接访问显示硬件来提供高级的图像处理能力。 DirectSound :它提供了软硬件的低延迟声音混频(low_latency sound mixing) 和回放(Playback),硬件加速,以及直接访问音频设备的能力。 DirectPlay :它明确的提供了通用环境连接能力(generalized communication capabilities),来简化你应用程序之间的通讯服务。 Direct3D :它为主流的桌上型计算机和Internet用户提供实时的、交互的3D 技术。 Directlnput :它简化你的应用程序访问鼠标、键盘和操纵杆设备的能力。 DirectSetup :一套简单的API向你提供安装DirectX部件的功能。 AutoPlay :它也是Wi95操作系统的一个特性,当你在光驱内放上光盘,指 定的应用程序会自动执行。 3、关于DirectDraw DirectDraw是DirectX SDK大家族中的一员,也是其中最主要的一个部件。DirectDraw 允许程序员直接地操作显存、硬件位图映射以及硬件覆盖和换页技术。它在提供这些功能的 同时,也使其与现在的基于Microsoft Windows的应用程序和设备驱动程序相兼容。 DirectDraw提供了很多的对象以用于系统的显示: DirectDraw :DirectDraw提供了改变系统显示模式、查询显示能力、控制内存使 用、管理子对象等功能。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.edu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室(Copyright 2002) DirectXDraw 实验 一、实验目的 了解 DirectX 的组成和功能以及计算机图像的显示原理,掌握使用 DirectXDraw 编写图 像应用程序的基本知识。 二、实验原理 1、DirectX 概念 微软的 DirectX 软件开发工具包(SDK)提供了一套优秀的应用程序编程接口(APIs), 这个编程接口可以提供给你开发高质量、实时的应用程序所需要的各种资源。DirectX 技术 的出现将极大的有助于发展下一代多媒体应用程序和电脑游戏。总的说来,使用 DirectX 的 主要有两个好处:1、为软件开发者提供硬件无关性;2、为硬件开发提供策略。 2、DirectX 组件 DirectX SDK 为基于 Windows 平台的应用程序提供了以下几个组件。 DirectDraw :通过直接访问显示硬件来提供高级的图像处理能力。 DirectSound :它提供了软硬件的低延迟声音混频(low_latency sound mixing) 和回放(Playback),硬件加速,以及直接访问音频设备的能力。 DirectPlay :它明确的提供了通用环境连接能力(generalized communication capabilities),来简化你应用程序之间的通讯服务。 Direct3D :它为主流的桌上型计算机和 Internet 用户提供实时的、交互的 3D 技术。 DirectInput :它简化你的应用程序访问鼠标、键盘和操纵杆设备的能力。 DirectSetup :一套简单的 API 向你提供安装 DirectX 部件的功能。 AutoPlay :它也是 Win95 操作系统的一个特性,当你在光驱内放上光盘,指 定的应用程序会自动执行。 3、关于 DirectDraw DirectDraw 是 DirectX SDK 大家族中的一员,也是其中最主要的一个部件。DirectDraw 允许程序员直接地操作显存、硬件位图映射以及硬件覆盖和换页技术。它在提供这些功能的 同时,也使其与现在的基于 Microsoft Windows 的应用程序和设备驱动程序相兼容。 DirectDraw 提供了很多的对象以用于系统的显示: DirectDraw :DirectDraw 提供了改变系统显示模式、查询显示能力、控制内存使 用、管理子对象等功能。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) DirectDrawSurface:它提供了生成平滑动画、操作覆盖图和访问GDI功能所需的一切。 DirectDrawPalette:这个对象提供了调色板化显示模式的颜色控制。 DirectClipper :这个对象允许用户创建运行于用户桌面窗口中的DirectDraw应用 程序。 4、关于DirectSound Microsoft®DirectSound®应用程序接口(API是DirectX®SDK的声音部分.DirectSound 在与己存在的设备驱动程序保持兼容的同时提供了低延迟的音频混合、硬件加速和对声音设 备的直接访问。这个新发布的DirectSound允许音频捕获,同时也提供了对属性设置的支持, 这使应用程序开发者们可以使用声卡及其附属设备提供的更多的特性。 从总体上说,每个DirectDraw应用程序都是由以下几步组成的: I创建DirectDraw对象 2设置协作级别 3选择显示模式 三、实验要求 1、编写程序,枚举系统所有己安装的设备及设备的驱动信息 2、编写程序,使用Blt或BltFast方法实现位转换操作 四、思考题 l、使用DirectX有哪些好处,它是由哪几部分组成的? 2、DirectDraw和DirectSound有哪些优点。 3、Blt和BltFast两种为转换操作有什么区别。 附录 实验示例 使用函数定义如下: HRESULT WINAPI DirectDrawEnumerateEx( LPDDENUMCALLBACKEX IpCallback./∥将要调用的回调函数的地址 LPVOID IpContext, ∥由用户定义的将要传给回调函数的上下文变量 DWORD dwFlags 指明枚举范围的标志 BOOL WINAPI DDEnumCallbackEx( GUID FAR*IpGUID,设备唯一标示的地址 LPSTR IpDriverDescription.,∥设备的描述 LPSTR pDriverDescription,.,∥设备的名称 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室(Copyright 2002) DirectDrawSurface:它提供了生成平滑动画、操作覆盖图和访问 GDI 功能所需的一切。 DirectDrawPalette :这个对象提供了调色板化显示模式的颜色控制。 DirectClipper :这个对象允许用户创建运行于用户桌面窗口中的 DirectDraw 应用 程序。 4、关于 DirectSound Microsoft® DirectSound®应用程序接口( API)是 DirectX® SDK 的声音部分。DirectSound 在与已存在的设备驱动程序保持兼容的同时提供了低延迟的音频混合、硬件加速和对声音设 备的直接访问。这个新发布的 DirectSound 允许音频捕获,同时也提供了对属性设置的支持, 这使应用程序开发者们可以使用声卡及其附属设备提供的更多的特性。 从总体上说,每个 DirectDraw 应用程序都是由以下几步组成的: 1 创建 DirectDraw 对象 2 设置协作级别 3 选择显示模式 三、实验要求 1、编写程序,枚举系统所有已安装的设备及设备的驱动信息 2、编写程序,使用 Blt 或 BltFast 方法实现位转换操作 四、思考题 1、使用 DirectX 有哪些好处,它是由哪几部分组成的? 2、DirectDraw 和 DirectSound 有哪些优点。 3、Blt 和 BltFast 两种为转换操作有什么区别。 附录 实验示例 使用函数定义如下: HRESULT WINAPI DirectDrawEnumerateEx( LPDDENUMCALLBACKEX lpCallback, //将要调用的回调函数的地址 LPVOID lpContext, //由用户定义的将要传给回调函数的上下文变量 DWORD dwFlags //指明枚举范围的标志 ); BOOL WINAPI DDEnumCallbackEx( GUID FAR *lpGUID, //设备唯一标示的地址 LPSTR lpDriverDescription, , //设备的描述 LPSTR lpDriverDescription, , //设备的名称 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) LPVOID IpContext, 用户定义的上下文变量 HMONITOR hm //Handle of the monitor associated with the enumerated //DirectDraw object. HRESULT BIt( LPRECT IpDestRect, RECT结构的地址, LPDIRECTDRAWSURFACE7 IpDDSrcSurface, ∥原图面的地址 LPRECT IpSrcRect, 结构的地址 DWORD dw Flags, 控制标志 LPDDBLTFX IpDDBItFx 佣于定义其他效果的DDBLTFX结构的地址 HRESULT BItFast( DWORD dwX, ∥旧标的X坐标 DWORD dwY, ∥目标的Y坐标 LPDIRECTDRAWSURFACE7 IpDDSrcSurface, 指向一个作为位转换操作源的图面的指针 LPRECT IpSrcRect, 指向作为位转换操作源矩形的指针 DWORD dw Trans 控制标志 现给出样本程序ddenum.exe和blt.exe及其源代码,请同学们参考。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室(Copyright 2002) LPVOID lpContext, //用户定义的上下文变量 HMONITOR hm //Handle of the monitor associated with the enumerated //DirectDraw object. ); HRESULT Blt( LPRECT lpDestRect, //RECT 结构的地址. LPDIRECTDRAWSURFACE7 lpDDSrcSurface, //原图面的地址 LPRECT lpSrcRect, //结构的地址 DWORD dwFlags, //控制标志 LPDDBLTFX lpDDBltFx //用于定义其他效果的 DDBLTFX 结构的地址 ); HRESULT BltFast( DWORD dwX, //目标的 X 坐标 DWORD dwY, //目标的 Y 坐标 LPDIRECTDRAWSURFACE7 lpDDSrcSurface, //指向一个作为位转换操作源的图面的指针 LPRECT lpSrcRect, //指向作为位转换操作源矩形的指针 DWORD dwTrans //控制标志 ); 现给出样本程序 ddenum..exe 和 blt.exe 及其源代码,请同学们参考。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn