DirectX 10 in FireMonkey 2.0

Posted by on in Blogs
You’ve possibly already heard the new version of FireMonkey in RAD Studio XE3 has a support for DirectX 10. At the first glance one can think of the part of FireMonkey (FM), which provides 3D object rendering, and this is not typical functionality in business applications. But I can note the part of FM2 providing the access to GPU by TContext3D and TContextManager classes is used not only for rendering of 3D objects. Bitmap-effects is 99% based on GPU usage, so only 2…3 basic effects have a realization independently on hardware.

In addition, if an application uses 3D engine for reporting, the capabilities to build up some spatial charts, diagrams etc., are limited by the support of GPU with minimum PixelShader 2.0. These GPUs long ago became usual hardware, but sometimes they are not available, for example, on servers.

Let’s consider what advantages an application has due to the support of DirectX 10. The most interesting new feature, provided by Microsoft team, in this version of DirectX is the “software”-mode based on a very interesting technology. The technology is named “Warp” and uses the power of modern CPUs.

This technology allows to use all the power of DirectX 10 with no limitations and without GPU.  Below there is a clear example: DirectX 10 in software-mode with 4x multisampling switched on. The image for DirectX 10 has obviously more qualitative edges in comparison with image by DirectX 9, as the test was run on a machine without physical support for multisampling.

As to performance, I can say, DirectX 10 Wrap demonstrates very good results, comparable to low-end GPU, if we talk about not very overloaded scenes, typical for business applications.

Thus, the systems with the support of DirectX 10 (Windows Vista and higher) can run FireMonkey applications at maximum power, which was not achievable in XE2.

Of course, FireMonkey 2.0 automatically uses DirectX 10 in GPU if possible.


Check out more tips and tricks in this development video: