Resources are separated in different areas:
- MS DirectX SDK's
- DirectX examples
- NVIDIA Cg
- Some VCL/WinAPI requested sources
- Utils written in Borland Delphi mostly for Delphi development
All resources come with source if overwise is not specially noted. Some resources also contain compiled
version.
Here you can see some description of resources and links to them:
|
MS DirectX SDK's |
MS DirectX SDK's means what here you can find Delphi DirectX headers compliant to
Borland and
JEDI standarts, ObjectPascal adaptation
of all Direct3D examples and some examples from other parts of Microsoft DirectX 8.x SDK's.
All headers and examples are tested in Delphi5 and up. Actually headers and most examples
should be compatible with Delphi4, but this is not guarantied.
DirectX SDK items divided in most up to date version - currently DirectX 9.0 - and possible
"downgrade" options - items deprecated or just not more meaningfull to use in recent DirectX
version.
Additional comments
Most of examples are pure Win32 API - do not use Delphi VCL library, so their complied size is
under 100K (although this is not without a "help" of D3DX8/D3DX9 forced to dynamically link with
Delphi in Direct3D projects). But MS MFC based examples are converted to Borland VCL - these are
VCLxxx examples, also some other examples uses VCL, for example, all Direct3D 8.x tutorials.
What is unique about these DirectX headers?
Double Borland and JEDI compliance generally means two simple things:
(1) DirectX headers can be compiled either with dynamic or static linking. Normally
Borland prefers static linking as this will not force loading libraries what can be unused at all
(for example someone just want to use type declarations from headers), but dynamic linking can be
preferred if your program can work without DirectX or you just want to gracefully tell user what
he should install required DirectX version.
(2) Your projects compiled against these headers in Delphi later can be used in one
source base in C++ Builder
projects. You can see what it's very easy to do, as most SDK examples come with C++ Builder
project files what was tested to compile fine on C++ Builder 5. Also special project
what demonstrate building executable from two initially "independent" Delphi and C++ Builder
projects are available here.
|
|
DirectX examples |
DirectX examples (like SDK ones above) what shows various techniques and most of them based
on DirectX SDK D3DFramework. Currently there are Direct3D and DirectShow examples available.
Examples are compilable with C++Builder.
|
|
|
NVIDIA Cg |
NVIDIA Cg is high level C-like language for writing pixel and vertex shaders.
Delphi/C++Builder toolkit allows to use this language internaly in your programs either in
DirectX or OpenGL. Cg programs are compiled internally in PixelShader/VertexShader programs
under DirectX and to register combiners and VertexPrograms under OpenGL. This behaviour
allows to use NVIDIA Cg language in DirectX 8.x applications on any DX8 class GPU - like ATi Radeon 8500,
SiS Xabre, Matrox Parhelia, 3DLabs P10, ets.
|
|
|
Some VCL/WinAPI requested sources |
Other Delphi graphics related sources. Mostly VCL and non-API or Win32 API related.
Actually currently only Delphi6 compatible version of TGifImage component, originally developer
by Ander Melander's, is located here. It has fixed issues with drawing of animated GIF's.
|
|
|
Utils written in Borland Delphi |
Utils written in Borland Delphi mostly for Delphi development.
There are currently two different utilities:
CRLF conversion utility. It can be used for helping multi-complier
development between Delphi (pre 6) and Kylix. As you probably know Unix OS'es prefer LF
line breaks, but DOS/Windows environment commonly uses CR/LF sequence for the same purpose.
So Kylix (and many other Unix "pure text" or code editors) normally produces LF
delimited source code. This is not problem with Delphi6 compiler/IDE, but can lead to quite
strage errors/error reporting in previous Delphi versions.
Pascal Preprocessor is a pre-processing utility what is targeted to be
able to do any pre-processing what can be done with Delphi5 pre-processor. Utility can
pre-process IF[n]DEF, DEFINE, UNDEF, INCLUDE directives; can expand or skip INC files; count
statistics; have options to leave/replace original files, their timestamps;
"intelligently" remove lines with pre-processor directives to produce
"right" formatted texts; have predefined pre-processor states for different
compilers and many more. Examples for it's usage are included in download archive.
What it can't do? Currently pre-processor can't handle Delphi6 and Kylix enhanced {$IF xxx}
directive; not correctly handles {$IFOPT yyy} directive (wrongly thinks what option always
not defined) and definitely can't roast chickens.
|
|
|
|