Jump to content
Mike James

Speed of Graphics32

Recommended Posts

Once upon a time the Graphics32 library was faster than the Delphi TBitmap. Is it still the case?

Are there any performance comparisons anywhere between FMX Bitmaps, VCL Bitmaps and Graphics32?

 

Regards,

-<mike>-

Share this post


Link to post
1 hour ago, Mike James said:

Once upon a time the Graphics32 library was faster than the Delphi TBitmap. Is it still the case?

Generally Graphics32 does everything faster but specifically you will need to clarify what operations you're asking about to get a usable answer.

 

Share this post


Link to post
1 hour ago, Mike James said:

FMX Bitmaps, VCL Bitmaps and Graphics32

You forgot Direct2D bitmaps. Recent Delphi versions has a Direct2D canvas which can be used.

 

  • Like 1

Share this post


Link to post

@FPiette Direct2D is no silver bullet either. It has been reported to be slower than GDI, due to wrongly implemented drivers, and is somewhat deprecated/unoptimized/unused.

 

@Mike James Don't forget about GDI+ which is part of Windows, and has good performance, with nice features like Alpha channel and good antialiaising.
Which kind of drawing do you need?

Edited by Arnaud Bouchez

Share this post


Link to post
4 minutes ago, Arnaud Bouchez said:

Direct2D is no silver bullet either. It has been reported to be slower than GDI, due to wrongly implemented drivers, and is somewhat deprecated/unoptimized/unused.

@Arnaud Bouchez This report is 10 years old. Things have changed, drivers are OK now, DirectX and Direct2D have changed.

  • Like 1

Share this post


Link to post
6 minutes ago, FPiette said:

@Arnaud Bouchez This report is 10 years old. Things have changed, drivers are OK now, DirectX and Direct2D have changed.

Do you speak about Direct 2D 1.1 or Direct 2D 1.0? 😉

 

At least with GDI (GDI+) or Graphics32 we have consistent performance.

Edited by Arnaud Bouchez

Share this post


Link to post
47 minutes ago, Arnaud Bouchez said:

Don't forget about GDI+ which is part of Windows, and has good performance, with nice features like Alpha channel and good antialiaising.

 

It's been a while since I did any comparisons of Graphics32 and GDI+ but AFAIR in the few cases where GDI+ came close to Graphics32 it did so at the cost of quality - e.g. fewer anti-aliasing levels or anti-aliasing via oversampling. To be fair the performance of Graphics32 comes at the cost of versatility since it only does 32-bit images. Graphics32 also has a steep learning curve.

In those cases where GDI+ has a feature missing from Graphics32 I believe one can use GDI+ to draw on a Graphics32 bitmap via the bitmap handle.

Share this post


Link to post
15 hours ago, Arnaud Bouchez said:

@FPiette Direct2D is no silver bullet either. It has been reported to be slower than GDI, due to wrongly implemented drivers, and is somewhat deprecated/unoptimized/unused.

 

@Mike James Don't forget about GDI+ which is part of Windows, and has good performance, with nice features like Alpha channel and good antialiaising.
Which kind of drawing do you need?

Hi Arnaud,

 

It's for a mapping project so it involves tiling, overlaying grids and bitmaps.

 

Regards, -<mike>-

Share this post


Link to post
18 hours ago, Arnaud Bouchez said:

Did you try with FMX?

Then you can switch the rendering engine behind it.

I was hoping to stay VCL but I'll give it a look. Thanks.

Share this post


Link to post
9 minutes ago, Mike James said:

I was hoping to stay VCL but I'll give it a look. Thanks.

I'm sure you can get the performance you need with the vcl

Share this post


Link to post
9 hours ago, Anders Melander said:

Why do you think that?

Years ago I was testing various possibilities to display points, lines, polygons, etc. on a map, with various libraries and OpenGL was the one who did it the fastest, perhaps showing text found worse performance.

Share this post


Link to post
4 minutes ago, Alberto Fornés said:

Years ago I was testing various possibilities to display points, lines, polygons, etc. on a map, with various libraries and OpenGL was the one who did it the fastest, perhaps showing text found worse performance.

OpenGL doesn't seem like an obvious choice for 2D graphics on Windows. 

Share this post


Link to post
13 minutes ago, Alberto Fornés said:

Years ago I was testing various possibilities to display points, lines, polygons, etc. on a map, with various libraries and OpenGL

I think the primary strength of OpenGL is that it's portable. Coming in at a close second is the performance of 2D and 3D vector graphics helped by the fact that many operations are hardware accelerated. Of course this is only a benefit if you have a fast graphics card (otherwise it's a bottleneck), but the same can be said for Direct2D.

 

I do not think that it can compete when it comes to raster graphics which I think is what Mike is asking for.

Share this post


Link to post
47 minutes ago, Anders Melander said:

I do not think that it can compete when it comes to raster graphics which I think is what Mike is asking for.

In OpenGL, he can work with raster graphics really fast and easy - he just loads them as textures.

But writing text and printing will not be so easy, if they are needed.

  • Like 1

Share this post


Link to post
8 hours ago, Vandrovnik said:

In OpenGL, he can work with raster graphics really fast and easy - he just loads them as textures.

But writing text and printing will not be so easy, if they are needed.

This seems like choosing a library, and then trying to work out how to fit that library to the problem. That's the wrong way round. One should first understand the problem space, its requirements and constraints, and then find the best solution. 

 

Problem first, then solution. Not the other way round. 

Share this post


Link to post
24 minutes ago, David Heffernan said:

This seems like choosing a library, and then trying to work out how to fit that library to the problem. That's the wrong way round. One should first understand the problem space, its requirements and constraints, and then find the best solution. 

 

Problem first, then solution. Not the other way round. 

I did not suggest OpenGL, I just wrote that it works fine for raster graphics ("It's for a mapping project so it involves tiling, overlaying grids and bitmaps.").

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×