By Sebastien St-Laurent ISBN 0-9766132-1-2 Jan 2006 (896 pages) Buy directly from Paradoxal Press at $20.75 (Save 43%)
Legal Information DirectX Software Development Kit What's New in the DirectX SDK Features Added in the December 2005 DirectX SDK Update Features Added in the October 2005 DirectX SDK Update Features Added in the August 2005 DirectX SDK Update Features Added in the June 2005 DirectX SDK Update Features Added in the April 2005 DirectX SDK Update Features Added in the February 2005 DirectX SDK Update Features Added in the December 2004 DirectX SDK Update Features Added in the Summer 2004 DirectX SDK Update DirectX Components DirectX SDK Programming Guide Programming DirectX with C/C++ Using Callback Functions Debugging DirectX Applications Installing DirectX with DirectSetup Using COM COM Object Overview Creating a COM Object Using COM Interfaces Managing a COM Object's Lifetime Using C to Access COM Objects Using Macros to Call DirectX COM Methods DirectX COM Documentation Conventions Using ATL with DirectX COM Interfaces irectX SDK Tools DirectX Content Tools DirectX Extensions for DCC applications DirectX Extensions for Discreet 3ds max DirectX Extensions for Alias Maya DirectX Extensions for Adobe Photoshop DirectX Viewer (dxviewer.exe) DirectX Ops (dxops.exe) DirectX Ops Script Commands exture Viewer (Windows Explorer Extension) exture Converter (Windows Explorer Extension) DirectX Texture Editor (dxtex.exe) exture Conversion Tool (texconv.exe) DirectX Performance Tools PIX PIX Counters PIX Tutorial: Gathering Data in the Basic View PIX Tutorial: Comparing Image Quality PIX Command-Line Options nalyzing D3DX Functions with PIX DirectX System Tools DirectX Caps Viewer Tool DirectX Control Panel Tool DirectX Diagnostic Tool DirectX Error Lookup Tool DirectX SDK Samples GetDXVer Sample Dinstall Sample DirectX SDK Reference DirectX SDK Constants The DirectX Error Handling Utility Library irectX Error Handling Functions DXGetErrorDescription DXGetErrorString DXTrace DirectX Error Handling Macros DXTRACE_ERR DXTRACE_MSG DXTRACE_ERR_MSGBOX DirectX Diagnostic Tool Reference Interfaces IDXDiagContainer DXDiagContainer::EnumChildContainerNames DXDiagContainer::EnumPropNames DXDiagContainer::GetChildContainer DXDiagContainer::GetNumberOfChildContainers DXDiagContainer::GetNumberOfProps IDXDiagContainer::GetProp IDXDiagProvider IDXDiagProvider::GetRootContainer DXDiagProvider::Initialize Structures XDIAG_INIT_PARAMS DirectSetup Reference unctions irectXRegisterApplication DirectXSetup irectXSetupCallbackFunction irectXSetupGetEULA irectXSetupGetVersion irectXSetupSetCallback irectXSetupShowEULA irectXUnRegisterApplication tructures IRECTXREGISTERAPP IRECTXREGISTERAPP2 SETUP_CB_PROGRESS Enumerations SETUP_CB_PROGRESS_PHASE eturn Values IUnknown IUnknown::AddRef Unknown::QueryInterface Unknown::Release Further Information DirectX Documentation Conventions DirectX Graphics Direct3D 9 Converting to Direct3D 9 Programming Guide Getting Started Direct3D Architecture Direct3D Devices Device Types Creating a Device Windowed vs Full-Screen Mode Selecting a Device Lost Devices Determining Hardware Support rocessing Vertex Data Primitives Point Lists Line Lists Line Strips Triangle Lists Triangle Strips Triangle Fans States State Blocks Save and Restore State aving All Device States with a StateBlock Saving Vertex States With a StateBlock Saving Pixel States With a StateBlock ender States Alpha Blending State Alpha Testing State Ambient Lighting State ntialiasing State Culling State Depth Buffering State Fog State Lighting State utline and Fill State er-Vertex Color State rimitive Clipping State Shading State Stencil Buffer State Texture Wrapping State Direct3D Resources Resource Properties Manipulating Resources Locking Resources Resource Relationships Managing Resources Application-Managed Resources and Allocation Strategies Vertex Buffers Creating a Vertex Buffer ccessing the Contents of a Vertex Buffer Rendering from a Vertex Buffer FVF Vertex Buffers Fixed Function Vertex Processing Programmable Vertex Processing Device Types and Vertex Processing Requirements Vertex Declaration apping FVF Codes to a Direct3D 9 Declaration Fixed Function FVF Codes Mapping between a Direct3D 9 Declaration and a Direct3D 8 Declaration Mapping between a Direct3D 9 Declaration and FVF Codes Programming One or More Streams Index Buffers Coordinate Systems and Geometry Coordinate Systems Face and Vertex Normal Vectors Rasterization Rules Rectangles Triangle Interpolation Vectors, Vertices, and Quaternions Transforms World Transform View Transform Projection Transform Viewports and Clipping Lights and Materials Light Types Light Properties Mathematics of Lighting Ambient Lighting Diffuse Lighting Specular Lighting Emissive Lighting Camera Space Transformations Attenuation and Spotlight Factor Materials Direct3D Rendering Shading Shading Modes Comparing Shading Modes Setting the Shading Mode Presenting a Scene Introduction to Presenting a Scene Multiple Views in Windowed Mode Multiple-Monitor Operations Manipulating the Depth Buffer Accessing the Color Front Buffer Rendering Primitives Vertex Data Streams etting the Stream Source endering from Vertex and Index Buffers Rendering from User Memory Pointers Depth Buffers Querying for Depth Buffer Support reating a Depth Buffer nabling Depth Buffering etrieving a Depth Buffer learing Depth Buffers Changing Depth Buffer Write Access hanging Depth Buffer Comparison Functions Fog Alpha Blending Vertex Alpha Material Alpha Texture Alpha Frame Buffer Alpha Render Target Alpha Direct3D Surfaces Surface Formats What Is a Swap Chain? Width vs. Pitch Flipping Surfaces Page Flipping and Back Buffering Copying to Surfaces Copying Surfaces Accessing Surface Memory Directly Private Surface Data Gamma Controls Direct3D Textures Basic Texturing Concepts exture Addressing Modes Wrap Texture Address Mode irror Texture Address Mode Clamp Texture Address Mode Border Color Texture Address Mode Texture Dirty Regions Texture Palettes Texture Coordinates Directly Mapping Texels to Pixels Texture Coordinate Formats Texture Coordinate Processing utomatically Generated Texture Coordinates Texture Coordinate Transformations Special Effects Texture Filtering earest-Point Sampling inear Texture Filtering ilinear Texture Filtering Anisotropic Texture Filtering Texture Filtering with Mipmaps Texture Resources Texture Wrapping Texture Blending Texture Blending Operations and Arguments Assigning the Current Textures reating Blending Stages Alpha Texture Blending ultipass Texture Blending Light Mapping with Textures Monochrome Light Maps Color Light Maps Specular Light Maps Diffuse Light Maps Automatic Generation of Mipmaps utomatic Texture Management Compressed Texture Resources Opaque and 1-Bit Alpha Textures extures with Alpha Channels Compressed Texture Formats Using Compressed Textures Hardware Considerations for Texturing Volume Texture Resources D3DX Line Drawing Support in D3DX Math Function Support in D3DX Mesh Support in D3DX Texture Support in D3DX X Files (Legacy) Loading an X File (Legacy) aving to an X File (Legacy) efining a Simple Cube Adding Textures dding Frames and Animations DXUT Programming Guide DXUT Overview Initializing DXUT Using Application Windows with DXUT Using Devices with DXUT Using the Main Loop with DXUT Error Handling with DXUT Advanced Device Selection with DXUT Additional DXUT Functions HLSL Shaders Vertex Shader Basics Pixel Shader Basics HLSL Language Basics Writing HLSL Shaders Using HLSL Shaders HLSL Tutorials Getting Started Debugging Shaders Shader Model 3 Vertex Textures in vs_3_0 Effects Writing an Effect Using an Effect Advanced Topics Vertex Pipeline Tessellation Displacement Mapping Geometry Blending Using Geometry Blending Indexed Vertex Blending Using Indexed Vertex Blending Vertex Tweening Using Vertex Tweening igher-Order Primitives Using Higher-Order Primitives Point Sprites Matrix Stacks Pixel Pipeline Scissor Test Depth Bias tencil Buffer Techniques Compositing Decaling Dissolves, Fades, and Swipes utlines and Silhouettes Two-Sided Stencil Shadowing Bump Mapping Bump Map Pixel Formats Bump Mapping Formulas Using Bump Mapping Environment Mapping Cubic Environment Mapping Creating Cubic Environment Map Surfaces Spherical Environment Mapping Antialiasing Full-Scene Antialiasing Motion Blur Multiple Render Targets Multiple-element Textures Frame Buffer Fog Types Fog Formulas Fog Parameters Fog Blending Fog Color Vertex Fog Pixel Fog Alpha Examples Billboarding Clouds, Smoke, and Vapor Trails ire, Flares, and Explosions Gamma Precomputed Radiance Transfer PRT Equations Representing PRT With Textures HDR Lighting ccurately Profiling Direct3D API Calls Queries Efficiently Drawing Multiple Instances of Geometry Using UVAtlas Programming Tips Asynchronous Notification Driver Internal Errors Enabling Direct3D Debug Information Multihead Multithreading Issues Performance Optimizations resenting Multiple Views in Windowed Mode Troubleshooting Working with Device Windows Working with Earlier Drivers Working with Multiple Monitor Systems Working with Mouse Cursors Graphics Tools Shader Compilers Shader Debugger Tutorials and Samples Tutorials Direct3D Tutorials Tutorial 1 - Creating a Device tep 1 - Creating a Window Step 2 - Initializing_Direct3D Step 3 - Handling_System_Messages Step 4 - Rendering and Displaying a Scene Step 5 - Shutting_Down Tutorial 2 - Rendering Vertices Step 1 - Defining a Custom Vertex Type Step 2 - Setting Up the Vertex Buffer Step 3 - Rendering the Display utorial 3 - Using Matrices Step 1 - Defining the World Transformation Matrix Step 2 - Defining the View Transformation Matrix Step 3 - Defining the Projection Transformation Matrix Tutorial 4 - Creating and Using Lights Step 1 - Initializing Scene Geometry Step 2 - Setting Up Material and Light Tutorial 5 - Using Texture Maps Step 1 - Defining a Custom Vertex Format Step 2 - Initializing Screen Geometry Step 3 - Rendering the Scene utorial 6 - Using Meshes Step 1 - Loading a Mesh Object Step 2 - Rendering a Mesh Object Step 3 - Unloading a Mesh Object HLSL Workshop Goal 1 - Hemispheric Lighting Tutorial Hemispheric Lighting Explained Goal 2 - Vertex Animation Tutorial Goal 3 - Environment Mapping Environment Mapping Explained Goal 4 - Procedural Texture Tutorial Goal 5 - Shader Debugging Tutorial Samples Antialias Sample BasicHLSL Sample Blobs Sample CompiledEffect Sample Config System Sample CustomUI Sample DepthOfField Sample EffectParam Sample EmptyProject Sample EnhancedMesh Sample FragmentLinker Sample HDRCubeMap Sample HDRFormats Sample HDRLighting Sample HDRPipeline Sample HLSLwithoutEffects Sample Instancing Sample LocalDeformablePRT Sample MeshFromObj Sample MultiAnimation Sample OptimizedMesh Sample PixelMotionBlur Sample PostProcess Sample ProgressiveMesh Sample PRT Simulator (prtcmdline.exe) PRT Demo Sample IrradianceVolume Sample ShadowMap Sample ShadowVolume Sample SimpleSample Sample SkinnedMesh Sample StateManager Sample Text3D Sample UV Atlas Command-Line Tool (uvatlas.exe) eference irect3D Reference Interfaces IDirect3D9 Direct3D9::CheckDepthStencilMatch Direct3D9::CheckDeviceFormat Direct3D9::CheckDeviceFormatConversion Direct3D9::CheckDeviceMultiSampleType IDirect3D9::CheckDeviceType Direct3D9::CreateDevice Direct3D9::EnumAdapterModes IDirect3D9::GetAdapterCount Direct3D9::GetAdapterDisplayMode Direct3D9::GetAdapterIdentifier Direct3D9::GetAdapterModeCount Direct3D9::GetAdapterMonitor IDirect3D9::GetDeviceCaps Direct3D9::RegisterSoftwareDevice IDirect3DBaseTexture9 Direct3DBaseTexture9::GenerateMipSubLevels Direct3DBaseTexture9::GetAutoGenFilterType Direct3DBaseTexture9::GetLevelCount Direct3DBaseTexture9::GetLOD Direct3DBaseTexture9::SetAutoGenFilterType Direct3DBaseTexture9::SetLOD IDirect3DCubeTexture9 Direct3DCubeTexture9::AddDirtyRect Direct3DCubeTexture9::GetCubeMapSurface Direct3DCubeTexture9::GetLevelDesc Direct3DCubeTexture9::LockRect Direct3DCubeTexture9::UnlockRect IDirect3DDevice9 Direct3DDevice9::BeginScene IDirect3DDevice9::BeginStateBlock IDirect3DDevice9::Clear Direct3DDevice9::ColorFill Direct3DDevice9::CreateAdditionalSwapChain Direct3DDevice9::CreateCubeTexture Direct3DDevice9::CreateDepthStencilSurface Direct3DDevice9::CreateIndexBuffer Direct3DDevice9::CreateOffscreenPlainSurface Direct3DDevice9::CreatePixelShader Direct3DDevice9::CreateQuery Direct3DDevice9::CreateRenderTarget Direct3DDevice9::CreateStateBlock Direct3DDevice9::CreateTexture Direct3DDevice9::CreateVertexBuffer Direct3DDevice9::CreateVertexDeclaration Direct3DDevice9::CreateVertexShader Direct3DDevice9::CreateVolumeTexture Direct3DDevice9::DeletePatch Direct3DDevice9::DrawIndexedPrimitive Direct3DDevice9::DrawIndexedPrimitiveUP Direct3DDevice9::DrawPrimitive Direct3DDevice9::DrawPrimitiveUP Direct3DDevice9::DrawRectPatch Direct3DDevice9::DrawTriPatch IDirect3DDevice9::EndScene Direct3DDevice9::EndStateBlock Direct3DDevice9::EvictManagedResources Direct3DDevice9::GetAvailableTextureMem Direct3DDevice9::GetBackBuffer Direct3DDevice9::GetClipPlane Direct3DDevice9::GetClipStatus Direct3DDevice9::GetCreationParameters Direct3DDevice9::GetCurrentTexturePalette Direct3DDevice9::GetDepthStencilSurface Direct3DDevice9::GetDeviceCaps Direct3DDevice9::GetDirect3D Direct3DDevice9::GetDisplayMode Direct3DDevice9::GetFrontBufferData IDirect3DDevice9::GetFVF Direct3DDevice9::GetGammaRamp Direct3DDevice9::GetIndices IDirect3DDevice9::GetLight Direct3DDevice9::GetLightEnable Direct3DDevice9::GetMaterial Direct3DDevice9::GetNPatchMode Direct3DDevice9::GetNumberOfSwapChains Direct3DDevice9::GetPaletteEntries Direct3DDevice9::GetPixelShader Direct3DDevice9::GetPixelShaderConstantB Direct3DDevice9::GetPixelShaderConstantF Direct3DDevice9::GetPixelShaderConstantI Direct3DDevice9::GetRasterStatus Direct3DDevice9::GetRenderState Direct3DDevice9::GetRenderTarget Direct3DDevice9::GetRenderTargetData Direct3DDevice9::GetSamplerState Direct3DDevice9::GetScissorRect Direct3DDevice9::GetSoftwareVertexProcessing Direct3DDevice9::GetStreamSource Direct3DDevice9::GetStreamSourceFreq Direct3DDevice9::GetSwapChain Direct3DDevice9::GetTexture IDirect3DDevice9::GetTextureStageState Direct3DDevice9::GetTransform Direct3DDevice9::GetVertexDeclaration Direct3DDevice9::GetVertexShader Direct3DDevice9::GetVertexShaderConstantB Direct3DDevice9::GetVertexShaderConstantF Direct3DDevice9::GetVertexShaderConstantI Direct3DDevice9::GetViewport Direct3DDevice9::LightEnable Direct3DDevice9::MultiplyTransform IDirect3DDevice9::Present Direct3DDevice9::ProcessVertices IDirect3DDevice9::Reset Direct3DDevice9::SetClipPlane Direct3DDevice9::SetClipStatus Direct3DDevice9::SetCurrentTexturePalette Direct3DDevice9::SetCursorPosition Direct3DDevice9::SetCursorProperties Direct3DDevice9::SetDepthStencilSurface Direct3DDevice9::SetDialogBoxMode IDirect3DDevice9::SetFVF Direct3DDevice9::SetGammaRamp Direct3DDevice9::SetIndices IDirect3DDevice9::SetLight Direct3DDevice9::SetMaterial Direct3DDevice9::SetNPatchMode Direct3DDevice9::SetPaletteEntries Direct3DDevice9::SetPixelShader Direct3DDevice9::SetPixelShaderConstantB Direct3DDevice9::SetPixelShaderConstantF Direct3DDevice9::SetPixelShaderConstantI Direct3DDevice9::SetRenderState Direct3DDevice9::SetRenderTarget Direct3DDevice9::SetSamplerState Direct3DDevice9::SetScissorRect Direct3DDevice9::SetSoftwareVertexProcessing Direct3DDevice9::SetStreamSource Direct3DDevice9::SetStreamSourceFreq Direct3DDevice9::SetTexture IDirect3DDevice9::SetTextureStageState Direct3DDevice9::SetTransform Direct3DDevice9::SetVertexDeclaration Direct3DDevice9::SetVertexShader Direct3DDevice9::SetVertexShaderConstantB Direct3DDevice9::SetVertexShaderConstantF Direct3DDevice9::SetVertexShaderConstantI Direct3DDevice9::SetViewport Direct3DDevice9::ShowCursor IDirect3DDevice9::StretchRect Direct3DDevice9::TestCooperativeLevel Direct3DDevice9::UpdateSurface Direct3DDevice9::UpdateTexture Direct3DDevice9::ValidateDevice IDirect3DIndexBuffer9 Direct3DIndexBuffer9::GetDesc IDirect3DIndexBuffer9::Lock Direct3DIndexBuffer9::Unlock IDirect3DPixelShader9 Direct3DPixelShader9::GetDevice Direct3DPixelShader9::GetFunction IDirect3DQuery9 Direct3DQuery9::GetData Direct3DQuery9::GetDataSize IDirect3DQuery9::GetDevice Direct3DQuery9::GetType Direct3DQuery9::Issue Direct3DResource9 IDirect3DResource9::FreePrivateData Direct3DResource9::GetDevice Direct3DResource9::GetPriority Direct3DResource9::GetPrivateData IDirect3DResource9::GetType Direct3DResource9::PreLoad IDirect3DResource9::SetPriority Direct3DResource9::SetPrivateData IDirect3DStateBlock9 IDirect3DStateBlock9::Apply Direct3DStateBlock9::Capture Direct3DStateBlock9::GetDevice IDirect3DSurface9 Direct3DSurface9::GetContainer IDirect3DSurface9::GetDC IDirect3DSurface9::GetDesc Direct3DSurface9::LockRect IDirect3DSurface9::ReleaseDC Direct3DSurface9::UnlockRect IDirect3DSwapChain9 Direct3DSwapChain9::GetBackBuffer Direct3DSwapChain9::GetDevice Direct3DSwapChain9::GetDisplayMode Direct3DSwapChain9::GetFrontBufferData Direct3DSwapChain9::GetPresentParameters Direct3DSwapChain9::GetRasterStatus Direct3DSwapChain9::Present Direct3DTexture9 IDirect3DTexture9::AddDirtyRect Direct3DTexture9::GetLevelDesc Direct3DTexture9::GetSurfaceLevel IDirect3DTexture9::LockRect Direct3DTexture9::UnlockRect IDirect3DVertexBuffer9 Direct3DVertexBuffer9::GetDesc Direct3DVertexBuffer9::Lock IDirect3DVertexBuffer9::Unlock Direct3DVertexDeclaration9 Direct3DVertexDeclaration9::GetDeclaration Direct3DVertexDeclaration9::GetDevice IDirect3DVertexShader9 Direct3DVertexShader9::GetDevice Direct3DVertexShader9::GetFunction IDirect3DVolume9 Direct3DVolume9::FreePrivateData Direct3DVolume9::GetContainer IDirect3DVolume9::GetDesc IDirect3DVolume9::GetDevice Direct3DVolume9::GetPrivateData IDirect3DVolume9::LockBox Direct3DVolume9::SetPrivateData IDirect3DVolume9::UnlockBox IDirect3DVolumeTexture9 Direct3DVolumeTexture9::AddDirtyBox Direct3DVolumeTexture9::GetLevelDesc Direct3DVolumeTexture9::GetVolumeLevel Direct3DVolumeTexture9::LockBox Direct3DVolumeTexture9::UnlockBox Functions DebugSetMute Direct3DCreate9 Direct3DShaderValidatorCreate9 D3DPERF_BeginEvent D3DPERF_EndEvent D3DPERF_SetMarker D3DPERF_SetRegion D3DPERF_QueryRepeatFrame D3DPERF_SetOptions D3DPERF_GetStatus Macros D3DCLIPPLANEn D3DCOLOR_ARGB D3DCOLOR_AYUV D3DCOLOR_COLORVALUE D3DCOLOR_RGBA D3DCOLOR_XRGB D3DCOLOR_XYUV D3DDECL_END D3DFVF_TEXCOORDSIZEn D3DGETDATA_FLUSH D3DISSUE_BEGIN D3DISSUE_END D3DPS_VERSION D3DTS_WORLD D3DTS_WORLDMATRIX D3DTS_WORLDn D3DVS_VERSION Structures 3DADAPTER_IDENTIFIER9 D3DBOX D3DCAPS9 D3DCLIPSTATUS9 D3DCOLOR D3DCOLORVALUE 3DDEVICE_CREATION_PARAMETERS 3DDEVINFO_D3D9BANDWIDTHTIMINGS 3DDEVINFO_D3D9CACHEUTILIZATION 3DDEVINFO_D3D9INTERFACETIMINGS 3DDEVINFO_D3D9PIPELINETIMINGS D3DDEVINFO_D3D9STAGETIMINGS 3DDEVINFO_D3DVERTEXSTATS D3DDEVINFO_RESOURCEMANAGER D3DDEVINFO_VCACHE 3DDISPLAYMODE D3DGAMMARAMP D3DINDEXBUFFER_DESC D3DLIGHT9 D3DLOCKED_BOX 3DLOCKED_RECT D3DMATERIAL9 D3DMATRIX D3DPRESENT_PARAMETERS D3DPSHADERCAPS2_0 D3DRANGE D3DRASTER_STATUS D3DRECT D3DRECTPATCH_INFO D3DRESOURCESTATS D3DSURFACE_DESC D3DTRIPATCH_INFO D3DVECTOR D3DVERTEXBUFFER_DESC D3DVERTEXELEMENT9 D3DVIEWPORT9 D3DVOLUME_DESC 3DVSHADERCAPS2_0 PALETTEENTRY Enumerations D3DBACKBUFFER_TYPE D3DBASISTYPE D3DBLEND D3DBLENDOP D3DCMPFUNC D3DCUBEMAP_FACES D3DCULL D3DDEBUGMONITORTOKENS D3DDECLMETHOD D3DDECLTYPE D3DDECLUSAGE D3DDEGREETYPE D3DDEVTYPE D3DERR D3DFILLMODE D3DFOGMODE D3DFORMAT D3DLIGHTTYPE D3DMATERIALCOLORSOURCE D3DMULTISAMPLE_TYPE D3DPATCHEDGESTYLE D3DPOOL 3DPRIMITIVETYPE D3DQUERYTYPE D3DRENDERSTATETYPE D3DRESOURCETYPE D3DSAMPLER_TEXTURE_TYPE D3DSAMPLERSTATETYPE D3DSHADEMODE