第一讲 封装简单窗口程序和DX9介绍

•前言
•Windows消息
•封装简单窗口类
•DX9入门
–     DX与GDI程序关系
–     组成部分
–     渲染流水线(固定)
编辑:jadeshu
前言
C++:封装  继承  多态 
封装
对象有属性和方法。即数据成员和函数成员
有保护成员 私有成员  公有成员
继承     注意成员属性
虚函数与多态
子类赋给母类可以,母类赋给子类不可以(矩形-》正方形)
正方形肯定属于矩形,而矩形不一定是正方形
This指针
成员函数有一个隐藏参数,即this指针
比如类函数成员CDialog:Create(UNIT nIDTemplate, CWnd* pParentWnd = NULL);

经过编译器实现后将变为
CDialog:Create(UNIT nIDTemplate, CWnd* pParentWnd = NULL,(CDialog*)&…);//…即CDialog对象

Windows消息队列问题 如下图所示


简单处理消息和函数的类
•类CJsXListenEvent
结构体



CJsXWnd           
类中注释的非常清晰,课后大家再仔细看看

•基本介绍
//唯一实例   GetSingleton()
私有成员


DX9入门
ØDirect3D与GDI 和Windows程序关系
Ø组成部分
Ø渲染流水线(固定)

Direct3D与GDI 和Windows程序关系
•DirectX是一组低级“应用程序编程接口(API)”,使得多媒体软件程序能够在基于Windows的具有DirectX兼容硬件与驱动程序的计算机上运行,同时可确保多媒体程序能够充分利用高性能硬件。
•DirectX包含两方面:一方面是指的是DirectX SDK,即DirectX API(DirectX应用程序接口),用于开发DircetX应用程序;另一方面是指DirectX Runtime(DirectX运行时),它是一组动态链接库,用于开发和运行DirectX应用程序

Direct3D应用程序可以与GDI应用程序同时存在,并且它们都可以通过图形卡(显卡)的设备驱动程序访问计算机的图形硬件。然而与GDI不同的是,Direct3D可以通过创
建一个HAL设备从而充分利用应用设备的优势。Direct3D与系统组件之间的关系如图


组成部分

1.显示部分
•显示部分担任图形处理的关键,包含了DirectDraw和Direct3D。DirectDraw主要负责2D图像加速,而Direct3D则主要负责3D效果的显示。
2.输入部分
•输入部分Direct Input可以支持很多的游戏输入设备,它能够让这些设备充分发挥最佳状态和全部功能。Direct Input API为游戏提供高级输入功能,并能处理游戏杆以及包括鼠标、键盘和强力反馈游戏控制器在内的其他相关设备的输入。
3.声音部分
•声音部分中最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3D音效,并提供了录音功能。另外,还提供了处理数字音频的Direct Music组件,如通常WAV文件或其他音频资源可以由DirectMusic加载器加载。
4.网络部分
•网络部分DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TCP/IP、IPX、MODEM和串口等,让玩家可以用各种联网方式进行对战,此外也提供网络对话功能及保密措施。

渲染流水线




Direct3D渲染流水线分为转换/照明(T&L)和光栅处理两个阶段。如图所示。

Direct3D将裁剪位于不可见区域的物体模型部分,并将这些三维场景投影到一个二维平面上,最后经过视口变换得到具有屏幕坐标的T&L顶点,如图所示。





结束语
本讲回顾
      封装简单窗口类和介绍DX基础知识的渲染流水线问题
•            jadeshu
下一讲预告
简单DX框架程序





posted @ 2013-06-08 19:14  jadeshu  阅读(259)  评论(0编辑  收藏  举报