DaagerousFunction(), 53–54
Data, reading from storage media, 257–258
Data compression, 260–261
Data files, 264–267
Data streaming, programming tasks with, 474
Data structures
choosing, 72
raw materials, 283–284
Database for subsystems, 478
DC, 168
grabbing, 169–170
DDCOLORKEY value, 172
DDERR_SURFACELOST, 371
DDERR_WRONGMODE, 371
D3DMATERIAL9, 318–319
D3DUtil_CreateTexture() function, 319–320
D3DXCreateTextureFromFileEX function, 320
D3DXMatrixLookAtLH matrix, 304
D3DXMatrixPerspectiveFovLH matrix, 305
parameters of, 305–306
D3DXQuaternionSlerp method, 302
D3DXVec3Normalize function, 310
D3DXVECTOR4 structure, 294–295
Deadlock, 206
Debug directory, purpose of, 101
Debug heap, 445–446
Debug mode, assert conditions, 412–413
Debug symbols, installing, 418–421
Debuggers
breakpoint interrupts, trapping, 416
breakpoints, setting and clearing, 418
breakpoints window, 417
call stack window, 417
debugging without, 442–443
disassembly window, 418, 437–438
functionality of, 414–416
instruction pointer, setting, 418
instruction pointer, stepping, 418
Locals window, 417
remote, 422–424
symbol table, 415
This window, 417
threads window, 418
use of, 416–418
variable contents, examining, 417
Watch window, 417
Debugging, 44
assembly level, 436–438
bugs, 444–455.
See also Bugs.
bugs, reproducing, 433
caveman debugging, 442–443
check routines, 438–439
code analyzers, 440–441
compiler-related bugs, 455
complexity in code, eliminating, 433–434
cut and paste bugs, 451–452
debug information, drawing, 440
disappearing bugs, 441
drive-related bugs, 454
experimenting, 430–433
full screen games, 421–422
game data corruption, 448–450
game options for, loading, 217–218
hardware-related bugs, 455
heap corruption, 444–448
memory, adding, 72
memory leaks, 444–448
mini-dumps, 424–429
multithreaded bugs, 453–454
next statement, setting, 434–436
operating system related bugs, 454–455
release mode only bugs, 452–453
remote debugging, 422–424
resources, insufficient, 452
run time analyzers, 441
stack corruption, 450–451
static code analysis, 444
techniques for, 429–444
values, tweaking, 442
Windows symbol files, installing, 418–421
without debugger, 442–443
Decompression, 260
Depth buffers, 37
Design, 45–52
classifying, 277
consistency of, 478
Design and Functional Specification Draft milestone, 463–464
Design documents, 494
cluebooks and, 476
user guides and, 476
Design specification, programming tasks in, 473–474
Design standards, enforcing, 50
Designed for Windows logo program, 384–408
feature checklist, 384
Desktop development, 7
Destructors, 46–47
Development team, 3
experience of, 476–477
milestone descriptions of, 477
schedule pressure on, 13–14
size of, 480
task inventory collection by, 477–479
Development tools, creation of, 11–12
Device context. See DC.
Device-handling code, 125–126
Device messages, translation of, 141–142
Devices
controls mapped to, 150
helper interface classes, 149–150
Diablo II (Blizzard), camera movement in, 23, 25
Dialog boxes, 145–149
appearance on screen, 148
defaults, 148
message pumps in, 146–147
modal, 145–147
modeless, 148
Digital audio. See also Sounds.
creating, 254
frequencies in, 254
sound formats, 254
Digital cable set top box (STB), gaming on, 5
Direct3D
matrix stack, 330
versus Miles Sound, 363
versus OpenGL, 38–39
DirectDraw API, 36–37, 160
DirectInput, 39, 126–127
DirectMusic, 41
Directories
temporary, starting, 387–388
tree, creating, 387–388
Directory structures
advantages of, 102
creating, 101–104
elements of, 101–102
DirectPlay, 39–40
DirectShow versus Bink, 40–41
DirectSound, 39
DirectX (Microsoft), 37–41
design philosophy of, 36–38
drivers, 15
matrix multiply, 298
memory resources in, 369
operating system incompatibilities, identifying, 527
pixel depth support, 252
pixel format, detecting change in, 369
rotation transform code, 298
translation transform code, 298
Y-axis, 349
Z-axis, 349
DirectX 7, 160
DirectX 8, 2D drawing and, 160–167
DirectX 9, 160
materials, 318–319
vertex buffer, 312–314
vertex structure, 306–307
DirectX 9 Visual C++ Wizard, 284–285
DirectX (Microsoft)
Texture Tool, 323
DirectX Playground, 351–355
DirectX SDK (Microsoft), 4
Dirty rectangle drawing, 197–198
Disabled controls, 154
Display size, 225
Display technologies, 19–33
bit depth, 19–22
camera perspective and, 23
2D engines, 22–33
3D engines, 22–33
resolution, 19–22
DMP files, generating, 425
Docs directory, purpose of, 101
Documentation
of design and functionality, 463–464
individual milestones document, 486–488
project milestones document, 485–486, 488
Dot products, 288–291
Drag events
controls, initiating and accepting, 156
detecting and initiating, 132–133
detecting release, 133–134
handling, 133
legality of, 132–134, 156
Dragging, 156
coding for, 132–134
legality of, 132–134, 156
Drawing.
See also 2D drawing; 3D drawing.
sprites, 191–196
text, 182–187
Drawing functions, calling, 314
Drawing surfaces, creating, 225
DrawText() function, 185–186
Driver-related bugs, 528–529
debugging, 454
Drop shadows, 186–187
DumbCalculate function, 89
DVDs
speed of, matching bit rates with, 257
storage capacity of, 251
Dynamic lighting effects, 308–311
diffuse lighting, 308–310
dimming effect, 308
specular lighting, 308, 310
Dynamic objects
in 3D games, 32
storage requirements, 29