第1章 DiirectX与COM 1
第一节 DirectX简介 1
DirectX的优点 1
DirectX的缺点 3
第二节 COM component 4
为何使用COM Component 4
COM与Class 5
IUnknown interface 6
AddRef()、Release()和Reference Count 6
GUID 8
第2章 框架程序 11
第一节 用AppWizard设计框架程序 11
删除不必要的类 12
修改程序代码 14
第二节 6.0版的新方法 17
修改Skeleton02 Project 19
第3章 DirectDraw驱动程序 23
第一节 搜索驱动程序 23
DirectDrawEnumerate() 24
DXSDK中的实例 25
第二节 EnumDriver01程序说明 27
Dialog Box 27
Global变量的声明 29
CMainFrame∷OnCreate() 30
CMainFrame∷OnDestroy() 32
CMainFrame∷PostNcDestroy() 32
CModeDlg∷OnInitDialog() 33
CModeDlg∷EnumCallback() 34
CDialog∷OnOK() 36
FAILED宏 36
连接到正确的lib 37
第4章 检测显示模式 39
第一节 iDirectDraw2∷ 39
EnumDisplayModes() 39
EnumDisplayModes执行结果 40
第二节 EnumDisplayModesO1程序说明 41
CMainFrame∷OnCreate() 42
CModeDlg∷OnInitDialog() 46
CModeDlg∷EnumModeCallback() 46
第一节 加载及显示BMP文件 49
第5章 显示一个图形文件 49
LoadImage() 50
第二节 ShowImageO1程序说明 51
建立Surface 51
CMainFrame∷LoadBmp() 55
Blit函数的补充说明 59
第6章 调色板 61
第一节 调色板介绍 61
MP的调色板 61
DirectDraw的Palette接口 64
PALETTEENTRY与RGBQUAD 65
第二节 Palette程序说明 66
CMainFrame∷OnCreate() 66
∷StretchBlt() 68
CMainFrame∷OnDestroy() 70
CMainFrame∷OnPaint() 72
第7章 ColorKey与Sporite 75
第一节 在Surface中设置Colorkey 75
Off-screen Surface 76
iDirectDrawSurface4∷SetColorKey() 77
iDirectDrawSurface4∷BltFast() 78
第二节 ColorKey01程序说明 79
CMainFrame∷OnCreate() 79
CMainFrame∷MakeOffScreenSurfaces() 80
CMainFrame∷OnPaint() 80
CMainFrame∷SetColorKey() 81
第三节 设置任一颜色为color key 82
第8章 移动Sprite 87
第一节 平滑移动的意义 87
平滑移动Sprite 88
第二节 MovSprite02程序说明 88
CMainFrame∷MakeFlipSurfaces() 88
CMainFrame∷OnCreate() 90
CMainFrame∷OnMouseMove() 92
CMainFrame∷OnPaint() 93
CMainFrame∷OnDestroy() 94
第9章 Clipper Object 97
第一节 防止图形blit出界 97
建立Clipper Object 97
设置RGNDATA 98
Clip Region 98
第二节 Clipper的程序说明 99
CMainFrame∷MakeFlipSurfaces() 99
CMainFrame∷OnMouseMove() 100
CMainFrame∷OnPaint() 101
第10章 GDI Surface 103
第一节 被隐藏的GDI surface 103
第二节 GDISurface程序说明 104
CMainFrame∷OnPaint() 104
CMainFrame∷OnLButtonDown() 106
第11章 Blit效果 107
第一节 iDirectDrawSurface7∷Blt() 107
DDBLTFX 107
第二节 B1tEffectO1程序说明 111
CMainFrame∷OnLButtonDown() 112
Pixel Format的问题 112
第三节 BltEffect02 112
CMainFrame∷OnLButtonDown() 112
第12章 Overlay Surface 117
第一节 Overlay介绍 117
第二节 Overlay01程序说明 118
CMainFrame∷OnCreate() 118
CMainFrame∷MakeOverlay() 119
CMainFrame∷ShowOverlay() 121
第13章 显示字体 127
第一节 Windows字体 127
CMainFrame∷OnCreate() 128
第二节 ShowText01程序说明 128
CMainFrame∷OnPaint() 130
第14章 显示非BMP图形文件 133
第一节 加载.TGA文件 133
第二节 Project CustomO1程序说明 135
CMainFrame∷LoadTga() 136
TGA文件格式简介 136
IDirectDrawSurface7∷Lock() 139
神秘的pitch 140
24bpp转换为16bpp 141
第15章 自定义图形文件 145
第一节 24bpp转为16bpp 145
制作不含窗口的新project 146
第二节 CnvTga01程序说明 146
CCnvTgaApp∷InitInstance() 148
CCnvTgaApp∷CnvData(BYTE pSrc) 151
Project ShowT1601 154
第16章 DirectDraw Alpha效果 157
第一节 DirectDraw与alpha 157
图形文件中的Alpha channel信息 158
第二节 Project CnvTga02程序说明 159
CCnvTgaApp∷CnvData() 159
CnvTga02执行结果 161
第三节 Project AlphaO1程序说明 162
第17章 Enumerate Device 171
第一节 搜索D3D Device 171
Dlg2.cpp 173
第二节 EnumDevice01程序说明 173
CMainFrame∷OnCreate() 174
CMainFrame∷OnActivate() 175
CMainFrame∷OnPaint() 176
CDlg2∷OnInitDialog() 176
CDlg2∷OnCancel() 179
CDlg2∷OnOK() 180
第18章 加载对象(Load objects) 183
第一节 X文件 183
Conv3ds.exe的参数 184
3D model与frame 185
LoadObjectO1的执行结果 186
CMainFrame∷OnCreate() 187
第二节 LoadObjectO1程序说明 187
CMainFrame∷MakeScene() 188
IDirect3DRMDevice3∷SetRenderMode() 191
IDirect3DRMDevice3∷SetQuality 192
路径搜索 194
建立frame object 194
加入光源 197
加入camera 199
设置Viewport 199
CDxApp∷OnIdle() 201
OnIdle()补充说明 202
第三节 加载对象之二 203
CMainFrame∷LoadCallback() 205
第四节 LoadObjec02程序说明 205
第19章 移动对象(Move Objects) 211
第一节 移动对象 211
第二节 MoveObjectO1程序说明 212
CMainFrame∷OnCreate() 212
CMainFrame∷MakeScene() 213
CMainFrame∷OnKeyDown() 217
CMainFrame∷OnKeyUp() 220
CDxApp∷OnIdle() 220
第20章 Frame Hierarchy 223
第一节 Frame Hierarchy 223
CMainFrame∷MakeScene() 224
第二节 FrameHierarchyO1程序说明 224
CMainFrame∷SetupChildFrame() 232
第21章 Decal贴图 241
第一节 Decal说明 241
第二节 Decal01程序说明 242
CMainFrame∷MakeScene() 242
第三节 Decal动画(Decal Animation) 247
第四节 Decal02程序说明 247
CmainFrame∷Makescene() 247
CMainFrame∷OnDestroy() 253
CDxApp∷OnIdle() 254
Sorted Transparency 257
第一节 Animation接口 259
第二节 Animation01程序说明 259
第22章 动画(Animation) 259
CMainFrame∷AddAnimationKeys() 260
CDxApp∷OnIdle() 264
第23章 Aimation Set 267
第一节 IDirect3DRMAnimationSet接口 267
第二节 AnimationSet01程序说明 268
CMainFrame∷MakeScene() 268
CDxApp∷OnIdle() 271
第24章 Direct3D Retained Mode Filp Chain 273
第一节 D3D Exclusive Mode 273
第二节 D3DFlipChain0l程序说明 274
CMainFrame∷MakeFlipSurface() 278
CDlg2∷OnOk() 282
CDxApp∷OnIdle() 284
第25章 阴影(Shadow) 287
第一节 IDirect3DRMShadow接口 287
第二节 Shadow01的程序说明 288
第26章 Viewport 295
第一节 IDirect3DRMViewport接口 295
第二节 ViewportO1的程序说明 296
CMainFrame∷MakeScene() 296
CDxApp∷OnIdle() 300
第27章 碰撞(Collision) 303
第一节 简单的碰撞测试 303
第二节 CollisionO1程序说明 303
CMainFrame∷SetupChildFrame() 304
CDxApp∷OnIdle() 309
CDxApp∷BoxCollision() 309