Clootie graphics pages

Home | Articles | Projects | Delphi | C++Builder | Free Pascal | TMT pascal | Links | About

Delphi resources - DirectX 9.0 SDK (latest)


Currently DirectX 9.0 Software Development Kit Update (April 2007) is supported

Move to desired DirectX SDK part:

All source code and additional files located on this page
can also be downloaded from SourceForge!

  Either directly from CVS repositary or from File Release Page  

Info field below contains Name / Date / Size with links to file and description field contains some notes about sample and screenshot from run-time.

DirectX headers and libraries

Info Description
(WinRAR SFX archive)

Delphi DirectX headers adaptation followed by Borland and JEDI standarts for all (up to 9.0 from April 2007 DirectX SDK update) versions of DirectDraw, Direct3D, DirectInput, DirectSound, DirectMusic, DirectShow, DirectXSetup, X3DAudio, XACT, XInput; DirectPlay8 (updated to DirectX9); D3DX 9.0 headers with support library; dxerr9 (DirectX 9.x error reporting) headers with support library. In this file you'll find JEDI compliant version and preprocessed versions of headers for Delphi 4/5, Delphi 6/7 and Delphi 2005 / Delphi 2006 / TurboDelphi. Also this archive contains simple example of Direct3D8 program.
This package DOES NOT include helper libraries: D3DX or DXErr - error reporting (DXErr9ab.dll).

Download it.

Subset of previous translation. Includes only PAS files compatible with JEDI standarts from Clootie_DirectX92.exe.

Download it.

DLLs needed for both Delphi and C++ Builder, to use D3DX 9.0 functionality from April 2007 DirectX SDK Update and/or DXErr (DirectX error reporting) in your projects or compile Microsoft demos: D3DX9_33.dll, DXErr9ab.dll. Note: D3DX9_33.dll is included in this package only for testing on developer system, not for redistribution.

Download it.
For compatibility with previous releases of Delphi DirectX SDK's I'm providing here d3dx9_31.dll / d3dx9_30.dll / d3dx9_29.dll / d3dx9_28.dll / d3dx9_27.dll / d3dx9_26.dll / d3dx9_25.dll / d3dx9_24.dll compatible with DirectX 9.0 SDK Update down to February 2005. DLLs included in these packages is only for testing on developer system, not for redistribution.

Note: these DLL's provided only for compatibility and not required by current Delphi DirectX SDK. You need to download it only if you have application specially requiring it at startup.

For compatibility with previous releases of Delphi DirectX SDK's I'm providing here D3DX92ab.dll compatible with December 2004 SDK Update D3DX9 library.
Note: this DLL provided only for compatibility and not required by current Delphi DirectX SDK. You need to download it only if you have application specially requiring it at startup.

Download it.
Also here you can find DirectX libraries required for compiling DirectX 9.0 applications with C++ Builder.

Direct3D examples from DirectX SDK

Notes: All examples can be compiled either in Delphi or FreePascal. Please read "How to compile ObjectPascal DirectX examples" page containing instructions how to compile examples in either compiler.

Info Description
(WinRAR SFX archive)


Free Pascal compatible
Archive contains all Direct3D samples from SDK (including D3DFramework) in single self-extracting archive. All samples are precompiled, but may require additional media files (links to media files can be found below, but I recommend to download and install full DirectX SDK from Microsoft).

Notes: All examples can be compiled either in Delphi or C++ Builder. Please read "How to compile ObjectPascal DirectX examples" page containing instructions how to compile examples in either Delphi or C++Builder with additional details.


Free Pascal compatible
Translated Direct3D common framework - used by all Direct3D examples.
Includes: DXUT, DXUTcore, DXUTEnum, DXUTgui, DXUTmesh, DXUTmisc, DXUTRes, DXUTSettingsDlg files.
Also DDUtil unit (DirectDraw utilities) is included - initially converted by Dominique Louis.

Download it.

29,2 Mb

Subset of media files from DirectX 9.0 December 2005 SDK Update -

these are required in some amount by most (all?) Direct3D examples.

Download media files from SourceForge.

Description of Direct3D examples
Tutorials image

6 "step by step" DirectX tutorials. Great tutorials to start learning Direct3D. From initializing D3D device renderer to loading meshes.
These tutorial do not need any additional files to compile and run. Only headers and D3DX helper dll for some of tutorials.

Common subdirectory contains Translated Direct3D common framework - used by all Direct3D examples listed below.
Includes: DXUT, DXUTcore, DXUTEnum, DXUTgui, DXUTmesh, DXUTmisc, DXUTRes, DXUTSettingsDlg files.

Also DDUtil unit (DirectDraw utilities) is included - initially converted by Dominique Louis.
AntiAlias image Multisampling attempts to reduce aliasing by mimicking a higher resolution display using multiple sample points to determine each pixel's color. The Antialias sample shows how the various multisampling techniques supported by your video card affect the scene's rendering. Although multisampling effectively combats aliasing, under particular situations it can introduce visual artifacts of its own. As illustrated by the sample, centroid sampling seeks to eliminate one common type of multisampling artifact. Support for centroid sampling is supported by the pixel shader 2.0 model and later. Note: actually centroid sampling is supported by ATi R3xx (Radeon 9500 or later), R4xx (X800 series) and NVIDIA N4x (GeForce 6x00 series, GeForce 7800 series).
BasicHLSL image The BasicHLSL sample simply loads a mesh, creates an effect from a file, and then uses the effect to render the mesh. The effect that is used is a simple vertex shader that animates the vertices based on time.
Blobs image The Blobs sample mimics a metaball effect in screen space using a pixel shader. True metaball techniques deform surfaces according to pushing or pulling modifiers, and are commonly used to model liquid effects like the merging of water droplets. Metaball effects can be computationally expensive, however, so this sample implements a 3-D metaball effect in 2-D image space with a pixel shader.
CompiledEffect image The CompiledEffect sample shows how an ID3DXEffect object can be compiled when the project is built and loaded directly as a binary file at run time. This sample can be treaded like BasicHLSL modified to use precompiled EffectFile.
CustomUI image The CustomUI sample is a simple demonstration of the UI subsystem implemented by the Microsoft Direct3D sample framework. The sample framework provides code and infrastructure common to most Microsoft DirectX applications. One area of the framework is user interface support. The sample framework contains commonly used control objects, such as buttons and check boxes, that both windowed and full screen Direct3D applications can use to implement their user interfaces.
Most notably GUI subsystem of D3DFramework implements edit controls event with IME!!! So, your new applications will be easily localized even for Chineese users!
DepthOfField image The DepthOfField sample shows several techniques for creating a depth-of-field effect in which objects are only in focus at a given distance from the camera and out of focus at other distances. Rendering objects out of focus adds realism to the scene. The methods it shows are reasonably cheap to perform on most hardware, and the depth of field post processing can easily be combined with other post process techniques such as image-based motion blur or high dynamic range (HDR) lighting.
EffectParam image The EffectParam sample demonstrates two D3DX effect system features: parameter blocks and parameter sharing (see Sharing Effect Parameters and Use Parameter Blocks to Manage Effect Parameters). Parameter blocks group multiple Setxxx application programming interface (API) calls and associate them with an effect handle. An application can then use the parameter block to make all those state changes with a single API call. Parameter sharing synchronizes parameters in multiple effects; each time an application updates a parameter in one effect, that parameter is updated in all the other shared effects.
EmptyProject image The EmptyProject is a bare-bones Direct3D application provided as a convenient starting point for your own project. It's already contains rich set UI elements.
EnhancedMesh image The EnhancedMesh Sample demonstrates mesh tessellation in Microsoft Direct3D. Mesh tessellation subdivides mesh triangles. This produces a mesh with finer geometry details which can produce better lighting results even with per-vertex lighting. Mesh tessellation is often used to implement a level of detail (LOD) technique where meshes closer to the viewer are rendered with more details, and meshes further away are rendered with less detail.
FragmentLinker image The FragmentLinker sample shows how to use the ID3DXFragmentLinker interface. Shader source code can be split into a series of shader fragments, which are compiled separately and linked together to form a complete shader. This linking stage is very efficient, making it suitable for run-time use. In this way a Microsoft Direct3D application can custom-build an appropriate shader for the current graphics card.
HDRCubeMap image The HDRCubeMap sample demonstrates cubic environment-mapping with floating-point textures and high dynamic range lighting. In Microsoft DirectX 9.0, floating-point formats have become available for textures. These formats can store color values higher than 1.0, which can make lighting effects more realistic on the environment-mapped mesh when the material absorbs part of the light.

Note: not all cards support all features for the environment-mapping and high dynamic range lighting techniques.
HDRFormats image High Dynamic range lighting effects require the ability to work with color values beyond the 0 to 255 range, usually by storing high range color data in textures. Floating point texture formats are the natural choice for high dynamic range (HDR) applications, but they may not be available on all target systems.
The HDRFormats sample shows how high dynamic range data can be encoded into integer formats for compatibility across a wide range of devices.
HDRLighting image The HDRLighting sample demonstrates some high dynamic range (HDR) lighting effects using floating-point textures. Integer texture formats have a limited range of discrete values, which results in lost color information under dynamic lighting conditions; conversely, floating-point formats can store very small or very large color values, including values beyond the displayable 0.0 to 1.0 range. This flexibility allows for dynamic lighting effects, such as blue-shifting under low lighting and blooming under intense lighting. This sample also employs a simple light adaptation model, under which the camera is momentarily overexposed or underexposed to changing light conditions.
HDRPipeline image The HDRPipeline sample application is intended to complement existing HDR (High Dynamic Range) samples by showing the many intermediary processing steps that make up a typical HDR rendering path in a Direct3D application. Whilst implementing HDR rendering is not the most complex of algorithms, it does have a large number of steps involved in the composition of the final image displayed to the user.
HLSLWithoutEffects image The HLSLwithoutEffects sample demonstrates using high-level shader language (HLSL) to write vertex shaders without using the D3DX effect interfaces. HLSL is a language that closely resembles C syntax and constructs. By writing shaders in HLSL instead of assembly language, developers can take advantage of not only the features and elements of the language they are already familiar with, but also the great optimization capabilities offered by the D3DX shader compiler.
Instancing image The Instancing sample demonstrates the instancing feature available with Microsoft DirectX 9.0c. A vs_3_0 device is required for this feature. The sample also shows alternate ways of achieving results similar to hardware instancing, but for adapters that do not support vs_3_0. The shader instancing technique shows the benefits of efficient batching of primitives.
Note: On graphics hardware that does not support vs_2_0, the sample will run as a reference device.
LocalDeformablePRT image The LocalDeformablePRT sample demonstrates a simple usage of locally-deformable precomputed radiance transfer (LDPRT). This implementation does not require an offline simulator for calculating PRT coefficients; instead, the coefficients are calculated from a thickness texture. This allows an artist to create and tweak subsurface scattering PRT data in an intuitive way.
MeshFromOBJ image The MeshFromOBJ sample shows how an ID3DXMesh object can be created from mesh data stored in a Wavefront Object file ( .obj). It's convenient to use .x files when working with ID3DXMesh objects since D3DX can create and fill an ID3DXMesh object directly from a .x file. It's also easy to initialize an ID3DXMesh object with data gathered from any file format or memory resource.
MultiAnimation image The MultiAnimation sample demonstrates mesh animation with multiple animation sets using high-level shader language (HLSL) skinning and the D3DX animation controller. The animation controller blends animation sets together to ensure a smooth transition when moving from one animation to another.
OptimizedMesh image This OptimizedMesh sample demonstrates the different types of meshes D3DX can load and optimize, as well as the different types of underlying primitives it can render. An optimized mesh has its vertices and faces reordered so that rendering performance can be improved.
Pick image This Pick sample is back in December 2005 SDK update! It shows how to implement picking; that is, finding which triangle in a mesh is intersected by a ray. In this case, the ray comes from mouse coordinates.
To do this inverse transform is calculated and triangle is searched in displayed mesh.
PixelMotionBlur image This PixelMotionBlur sample. Motion blur adds realism to the scene. It has the perceptual effect of creating high-speed motion. Instead of rendering the geometry multiple times with different alpha values to create a blur effect, this sample shows off a realistic image-based motion blur effect. While the scene is rendered, the shaders record the per-pixel velocity relative to the previous frame. This per-pixel velocity is then used in a post-process pass to blur the pixels in the final image.
PostProcess image This PostProcess sample demonstrates some interesting image-processing effects that can be achieved interactively. Traditionally, image processing takes a significant amount of processor power on the host CPU, and is usually done offline. With pixel shaders, these effects can now be performed on the hardware more efficiently, allowing them to be applied in real time.

Note that the techniques shown here require pixel shader 2.0 and floating-point textures. Thus, not all cards support all of the postprocessing techniques.
ProgressiveMesh image This ProgressiveMesh sample shows how an application can use the D3DX progressive mesh functionality to simplify meshes for faster rendering. A progressive mesh is a specialized mesh object that can increase or decrease its geometry complexity, thereby providing flexibility when drawing the mesh so that performance can be maintained at a steady level. This feature is useful when providing level of detail (LOD) support in an application.
ShadowMap image The ShadowMap sample demonstrates one popular shadowing technique called shadow mapping. A shadow map (in the form of a floating-point texture) is written with the scene's depth information with the camera placed at the light's position. Once generated, the shadow map is projected onto the scene during rendering. The depth values in the scene are compared with those in the shadow map. If they do not match for a particular pixel, then that pixel is in shadow. Shadow mapping is a very efficient real-time shadow casting technique.
Note: This sample requires ps_2_0 which supports floating-point textures. On cards that do not support ps_2_0, the sample will revert to a reference device which will degrade performance, but is useful for verifying functionality.
ShadowVolume image The ShadowVolume sample demonstrates one common technique for rendering real-time shadows called shadow volumes. The shadows in the sample work by extruding faces of the occluding geometry (that are facing away from light) to form a volume that represents the shadowed area in 3D space. The stencil buffer is used as a mask for rendering additional geometry, and is updated as geometry is rendered.
SkinnedMesh image The SkinnedMesh sample illustrates mesh animation with skinning using D3DX. Skinning is an animation technique that takes data organized in a skeletal-mesh hierarchy and applies geometry blending to transform mesh vertices. The geometry blending generates smooth surfaces with fewer artifacts.
Text3D image The Text3D sample uses ID3DXFont to display 2D text in a 3D scene. This is most useful for display stats, in game menus, etc... Note: ID3DXFont support UNICODE character rendering, so sample demostrates rendering of Japanese text (you should have installed Asian languages support to see them).
The sample also shows how to use D3DXCreateText() to create a D3DX mesh containing a 3D model of a text string. Note that D3DXCreateText may not work with certain types of fonts, such as bitmap fonts and some symbol fonts.
The UVAtlas sample is a command line example tool that uses the D3DX UVAtlas and IMT computation functions to generate an optimal, unique texture parameterization for an input mesh.

XACT examples [Microsoft Cross-Platform Audio Creation Tool] from DirectX SDK

Info Description

12,5 Mb

Free Pascal compatible
This archive contains three XACT tutorials with media files and executables.

Download it (archive contains source and excutable).

Miscellaneous examples [Misc folder] from DirectX SDK

Info Description


Free Pascal compatible
Demonstrates how applications can detect what version of DirectX is installed. Support every version up to and including DirectX 9.0c.

Download it (archive contains source and excutable).

DirectDraw examples from DirectX SDK

Info Description

These are DirectX 8.1 SDK DirectDraw examples. Note: MS is already not including any DirectDraw examples with DirectX 9 SDK!

Translated Sample DirectDraw samples - this archive contains most of DirectDraw samples from DirectX 8.x SDK, originally produced as part of DirectXExamples effort: AnimatePalette, DDEnum, DirectSurfaceWrite, FullScreenDialog, FullScreenMode, GammaControl, OverlayAnimate, RefreshRate, SpriteAnimate, SwitchScreenMode, WindowedMode. Also DDUtil.pas helper unit can be found in archive too.
NOTE: these samples are not supported and/or maintained by me.

Download them locally.
Download them from Yahoo Groups.

Please inform me of any grammar or general errors, contained on these pages, Alexey Barkovoy
Last updated: 01-May-2007