Clootie graphics pages

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

News archive
1st Half of 2004

 << 2nd Half of 2004 2nd Half of 2003 >> 
Borland released Delphi 7.1 update. You can download it here.
DirectX SDK examples 
Ok, let's continue with conversion of DirectX SDK samples to Delphi/FreePascal.
HDRCubeMap image MultiAnimation image
Next two Direct3D9 samples added: HDRCubeMap, MultiAnimation.
HDRCubeMap demonstrated high data range rendering of reflections to cubemap texture. As HDR requires support on 3D card of floating point texture formats - not all will be able to run this sample in hardware - currently only ATI R3xx, 4xxx (Radeon 9500 and up) and NVIDIA NV4x (GeForce 6xx0) owners.
MultiAnimation sample is more democratic to videocard requirenments, but do not compile with FreePascal (due to lack of Contrs unit).
Cg ToolKit Couple of day's ago I've finally received the ATI Radeon 9800XT card won at ATI SmartShader competition held by and Prize was given for Kuwahara SmartShader script.
FedEx office in Moscow really can't held "express" label - card was delivered from Canada in two days and lied for a month at Moscow customs!!!
Cg ToolKit Updated NVIDIA Cg toolkit for Borland Delphi and C++Builder to Release 1.2 from Feb-2004. Supported Delphi versions: 5 and up.

Release 1.2 of the NVIDIA Cg Toolkit includes the following features and improvements (new features in bold):

  • Interfaces, a language construct that facilitates the creation of general, reconfigurable Cg programs
  • Unsized arrays
  • Parameter instances may be created and shared between multiple programs
  • Parameters may be marked as compile-time constants, leading to more efficient compiled code
  • Support for 14 profiles:
    • vs_1_1 for DirectX 8 and DirectX 9
    • vs_2_0 and vs_2_x for DirectX 9
    • ps_1_1, ps_1_2 and ps_1_3 for DirectX 8 and DirectX 9
    • ps_2_0 and ps_2_x for DirectX 9
    • arbvp1 [OpenGL ARB_vertex_program]
    • arbfp1 [OpenGL ARB_fragment_program]
    • vp20, vp30 [NV_Vertex_program 1.0 and NV_Vertex_program 2.0]
    • fp30 [NV30 OpenGL fragment programs]
    • fp20 [NV_register_combiners and NV_Texture_shader)
  • Cg Effects Explained document 
  • Improved runtime functionality
    • Core runtime library for parameter management and loading programs
    • Runtime library for DirectX 8 based applications
    • Runtime library for DirectX 9 based applications
    • Runtime library for OpenGL based applications
  • Documentation updated 
  • CgFX beta support for DirectX 8, DirectX 9, and OpenGL
  • Additional compiler optimizations
  • Fixes for bugs in Release 1.1 (December 2002)
Be warned: Release 1.2 of Cg toolkit complitely removes support for deprecated (in version 1.1) API. To use old style API you should stay with Cg Toolkit Release 1.1 (but newer features will not be available). It is still available at download page.

Due to lack of time I'm not able to provide examples of Cg Toolkit usage. Interfaces are minimally tested for functionality but yours bug reports are welcome. Also I will be glad to host some simple examples of CgFX usage under OpenGL.

Download updated Cg toolkit for Borland Delphi and C++Builder...
DirectX SDK 
MS DirectX SDK Update to Delphi and FreePascal DirectX headers!

  List of changes:
  • D3DX9.pas
    • Fixed: ID3DXBaseMesh.GetNumBytesPerVertex
    • Fixed: D3DXCreateCompressedAnimationSet
    • Removed: D3DXSPRITE_TEXT definition (it's defined in MS headers by mistake)
    • Fixed: All record declarations (except xxx_16f) changed from "packed record" to just "record". This will not impact your code - as all of the records (except couple of them) will keep memory layout.
    • Changed: All D3DXxxxInMemory, D3DXxxxFromMemory functions are now use "const pSrcData: Pointer;" instead of "const pSrcData;" declarations. This is done to minimize 'typo' bugs for rarely used functions due to automatic type convertion.
  • Direct3D9.pas
    • Changed: IDirect3DResource9.SetPrivateData. See d3dx9.D3DXxxxInMemory comment above.
  • DirectMusic.pas
    • Changed: IDirectMusicObject.ParseDescriptor. Same comment as Direct3D9.
    • Changed: IDirectMusicPort.DeviceIoControl. Same comment as Direct3D9.
  • dxerr9.pas
    • Fixed: stupid typo in conditional preprocessor token.
  • DXTypes.pas
    • Fixed: comment style for compoatibility with FreePascal in "native" mode
I've visited KRI-2004 - russian analog of GDC. And what can I say: Richard Huddy rocks!!!
For those who are unaware - Richard Huddy is a head of Europe Developer Relation team for ATI.
DirectX SDK examples 
CompiledEffect image Blobs image Next two Direct3D9 samples added: Blobs, CompiledEffect. Both are Delphi and FreePascal compilable.
Blobs simulates metaball like effects with pixel shaders. CompiledEffect sample is almost BasicHLSL sample but loads and uses already precompiled Effect file.
DirectX SDK examples 
BasicHLSL image HLSLWithoutEffects image Added two HLSL related samples to Delphi from DirectX 9.0 SDK: BasicHLSL, HLSLWithoutEffects. Samples show basic steps needed to use HLSL shaders in your programs. Both samples can be compiled with Free Pascal.
DirectX examples 
Updated DirectX9 templates: TemplateVCL, TemplateWinAPI, VCLfullscreenD3D9 for DirectX 9.0 Summer release SDK. VCL samples handling of loosing full-screen mode (after user pressed Alt-TAB for example) is changed. Now VCL templates starts rendering in windowed mode enstead of trying to minimize all windows.
PS. TemplateWinAPI is Free Pascal compatible.
DirectX SDK examples 
Updated Delphi common framework for DirectX9 applications. Main changes has been done to DSUtil unit - now it doesn't log error messages in retail build. Now source code for common framework is fully compatible with Free Pascal. Also DolphinVS example has been modified and now is Free Pascal compilable / compatible.
Note: Both items are marked as "Free Pascal compatible" at download page.

Addition 26-Jan-2004: updated with Delphi5 compatibility fix.
DirectX SDK 
TMT pascal

DirectX 9.0 headers for TMT pascal available!
This SDK was designed for version 4.0, but should be compatible with 5.0 one.

TMT pascal DirectX SDK update contains DirectX9 headers, sample D3DFramework (more or less compatible with Delphi version) and Text3D sample.
DirectX SDK 
Free Pascal DirectX 9.0 headers for Free Pascal available!
Free Pascal units require version 1.9.2 beta of compiler. Currently no DirectShow headers available due to lack of RTL units on FreePascal size.
As latest Free Pascal 1.9.2 beta is mostly compatible with Delphi dialect of pascal - all (err... at least I hope) new Delphi DirectX examples will be compatible with Free Pascal. Actually with some small modifications / bug workarounds I've managed to compile sample framework and some samples.
DirectX SDK 
MS DirectX SDK Update of Delphi DirectX headers!
This update contains compatibility fixes with Borland C++Builder 6 and some revised blocks of pascal code for better cross-compiler compatibility (hint, hint: expect some announcement soon). No bug fixes, only small additions!
How to compile DirectX 9.0 code with Borland C++ - japaneese edition :-)
And another one for C++Builder.
DirectX SDK examples 
VolumeFog image Added Delphi DirectX 9.0 VolumeFog sample - code is reworked in comparision to DirectX 8.1 one, but sample behaviour is the same, only auto-demo mode was added. More about it on download page.
DirectX SDK examples 
Re-analized differences which exists between MS version of D3DFramework and version I'm providing for Delphi users. With release of Summer2003 SDK revision, MS made BuildPresentParamsFromSettings() virtual; but Initialize3DEnvironment still different from MS one - allowing to manipulate BehaviorFlags parameter of CreateDevice call.
Other differences still present in D3DFramework are related for maintaining VCL compatibility.
DirectX SDK examples 
Finally found time to update description and upload updated samples for DirectX 9.0 SDK Update (Summer 2003). Currently no new samples are available - only updates to already converted samples.

  List of changes:
  • Updated version of D3DFramework. I still have to verify need for hacks I've originally included in it to enhance it's behaviour - looks that MS implemented some of them after mine bug reports.
  • DepthOfField - completely reworked - dropped PS_1_4 support, included one more test scene.
  • FishEye - modified to support multisampled antialiased rendering (allowed in DirectX 9.0a).
  • Text3D - completely reworked - now uses improved ID3DXFont instead of CD3DFont. ID3DXFont now supports caching of rendered text, support of UNICODE character rendering (samples demonstrates sample demostrates this by rendering of Japanese text).
  • Water - added automatical «Auto Drop» mode.
  • ClipMirror, SphereMap, Lighting, StencilDepth, VertexBlend, VertexShader. These samples are no longer included in original MS DirectX SDK. Currently I'm still providing them (updated to compile against new revision of D3DFramework) but probably will drop them with next SDK update.
  • Other samples mostly changed to compile with new D3DFramework. Some of them included support for shader debugging, but it's only available in VS.NET and I'm not sure will it be available separately at all.
Look at updated Direct3D samples.
DirectX SDK 
Updated DirectX 9.0 libraries for C++Builder. Fixed dmoguids.lib library.

Please inform me of any grammar or general errors, contained on these pages, Alexey Barkovoy