Introduction
This page describes which additional files you will need and actions you should take to compile
MS DirectX 8.x / DirectX 9.x SDK's samples translated to Object Pascal and other Direct3D samples
from this site. You can compile them all either in Delphi 4-6 or C++Builder 5-6.
What additional files do you need (Delphi and C++Builder)?
- DirectX headers from this site ("Borland and JEDI compliant")
[ Clootie_DirectXxx.zip:
DirectX 8.0b version /
DirectX 8.1 version /
DirectX 9.0 version ]
- Converted D3DFramework used by all Direct3D SDK samples and most other Direct3D examples on this site
[ D3DFrame.zip
for DirectX 8.0b /
for DirectX 8.1
or
Common.zip for DirectX 9.x ]
- Helper DLL libraries (D3DX, DXErr):
[ Clootie_DX[xx]_dlls.zip :
DirectX 8.0b version /
DirectX 8.1 version /
DirectX 9.0 version ]
I recommend you to place these DLL's in Windows system directory.
Compilation options (Delphi and C++Builder)
You can compile DirectX 8.x examples with either Direct3D8.pas from above referenced DirectX headers
("Borland and JEDI compliant") or with DirectXGrapics.pas
(from Tim Baumgarten).
By default exaples compile with Direct3D8.pas, to change this behaviour you should define
"DXG_COMPAT" symbol (in project options).
DriectX 9.x examples has been tested and supported only against above referenced headers
("Borland and JEDI compliant").
Note: Althrow you can compile DirectX 8.x examples with DirectXGraphics.pas
from Tim Baumgarten site, but you
can't use "completely revised" D3DX8.pas from the same package due to introduced incompatibilities.
So the only options is D3DX8.pas from "Borland and JEDI compliant" Direct3D headers.
With DirectX 8.1 headers you can simultaneuosly use
Tim Baumgarten
D3DX81mo.pas headers for D3DX8 and this will not increase your redistributive size as they are
both using the same D3DX8 helper dll library internally.
Delphi special actions
Setup library paths
To successfully compile examples you need to add additional paths to your "Library path" directories,
in order shown below (from top to bottom):
- "Borland and JEDI compliant" DirectX headers
- Converted D3D Framework from DirectX (8.x or 9.x) SDK
- Optionally - DirectX 8 headers from
Tim Baumgarten site.
You need to download these headers add directory only if you want to compile with
DirectXGraphics.pas (look above).
Setup paths and where to place samples (for DirectX 9.0 SDK samples)
Starting from DirectX9 most of the samples require access to DirectX.ico icon file to compile files
with resource description (.RC). This file is provided with common DirectX framework. So, for seamless
compilation it's recommended to place downloaded files in directory structure like shown below:
- Delphi_DirectX_SDK - can be any other name
- Common - converted Common DirectX Framework - Common.zip
- Direct3D - translated Object Pascal Direct3D examles
- Pick - first sample
- VCLFog - another sample
- ...
- DirectSound - translated Object Pascal DirectSound examles
- SoundFX - first sample
- ...
C++ Builder special actions
Setup paths and where to place samples
C++Builder doesn't allow to specify common paths (for use with all projects), but these paths are
stored locally with each project. So, all project files for examples contain relative paths to
files, used by projects. Examples uses: include files from MS DirectX SDK, DirectX object pascal
headers, D3D Framework from DirectX 8.x/9.x SDK converted to pascal, special lib's for Borland C++
compiler.
These files should be placed inside root directory of installed Microsoft DirectX 8.x/9.x SDK,
like shown below:
- DxSdk root directory
- Include - original MS include files
- SamplesDelphi - can be any other name
- Common - converted D3D Framework - D3DFrame.zip / Common.zip
- Direct3D - translated Object Pascal examles
- Pick - first sample
- VCLFog - another sample
- Headers - Object Pascal headers for DirectX 8.x or 9.x
- Lib - LIB files from this site for Borland C++ compiler
You can download small ZIP archive with directory structure described above:
C++Builder_Dirs.
Finally: I've compiled but they are not running properly!!!?
If you meet this problem there are two possible reasons:
- Samples refuse to run due to absent D3DX helper DLL library - either d3dx8ab.dll, d3dx81ab.dll or
d3dx9ab.dll. These DLL's are provided with separate archives and link to them provided at top
of this article. I recommend to place them in one of the Windows system directories.
- Sample can refuse to run because of media files (supplied by MS DirectX 8.x or DirectX 9.x SDK)
are missing - I mean bitmaps, meshes (X-files) etc. Currently I highly recommend you to
download DirectX SDK from Microsoft site as althrow it's designed for VC++ and VB but
contains a lot of other usefull tools, info and debug runtime!
But... If you want to see quick result: try too look at tutorials series in
SDK samples as they are come with all needed media files, also most of the
custom samples come with media and EXE files too.
And as another option: on download pages for Delphi DirectX SDK headers (links can be
found at top of this article) - right below header's and DLL's - you can find section
"DirectX SDK Media files" with links to ZIP archives containing most of the wanted resources
from Media directory of DirectX SDK.
|