1.
DirectX 7.0
新增的内容:
一、 Direct3D 立即模式 API 增加了新特性,包括 : 设备状态块, 几何混合,立方体环境映射 , 用户自定义裁剪面。
二、
API 组成
第一、 Direct3D 快速模式
Direct3DX 实用库
D3D 立即模式的体系结构
在了解时,主要了解 Direct3D Immediate Mode C/C++ Reference
以接口为中心 :
接口 : IDirect3D7
IDirect3DDevice7
IDirect3DVertexBuffer7
D3DX 实用库是十分重要的库,使用此库可以便利开发。
D3DX 使用库的功能
利用 D3DX 封装 D3D 渲染器,利用 OpenGL API 封装渲染器,渲染器的设计使用统一的接口产生不同的实现版本,
而且可拆卸,即可利用另一个架构的渲染器完全替换掉此渲染器。渲染器 API 可以自由从 D3D 和 OpnGL 之间切换。
Direct3D Utility Library
下图是 Direct3D Utility Library 位于 Direct3D API 库的位置。
ID3DXContext ——根接口,用于状态配置,纹理创建,显示更新
ID3DXMatrixStack ——实现场景层次的辅助接口
ID3DXSimpleShape ——用于绘制图元的 vertex-buffer 接口
Encapsulates ——封装
Direct3DX Utility Library 本质
主要用于创建对象,封装对象,操作对象。
主要包括下面几大类的 D3DX API
第一、 Direct3DX 和 Direct3D
第二、 Direct3DX Context
第三、 Direct3DX Devices
第四、 Direct3DX Matrix Stack
第五、 Hardware Acceleration Levels(HAL)
第六、 Sprite Support
第七、 Texturing Support
第八、 Simple Geometric Shapes
第九、 3-D Math Support
D3DX API 分类 |
用途 |
备注 |
代表函数 |
|
Direct3DX 和Direct3D |
第一、初始化context object, 更方便的初始化Direct3D 和DirectDraw 第二、访问Direct3D 和DirectDraw 对象 |
获取IDirect3DDevice7 接口 获取 IDirect3D7 接口 获取 IDirectDraw7 接口 |
D3DXCreateContextEx() g_pd3dx->GetD3DDevice()
|
|
Direct3DX Context |
封装了所有各种Direct3D 和DirectDraw 对象 |
|
|
|
Direct3DX Devices |
扩展了 Direct3D device 可直接获取设备数量 查询 Direct3DX 设备 |
|
D3DXGetCurrentVideoMode D3DXGetMaxNumVideoModes D3DXGetVideoMode |
|
Direct3DX Matrix Stack |
记录矩阵状态 |
|
|
|
Hardware Acceleration Levels(HAL) |
硬件加速 |
|
ID3DXContext::GetDeviceIndex D3DXGetDeviceDescription |
|
Sprite Support |
辅助 Sprite 的 API,用于 3 |