On 2/8/2012 19:52, Darius Blaszyk wrote:
Despite all the advices, none of the suggestions of drawing on a TPaintBox or 
creating a TCustomControl actually speed up the painting significantly. 
Therefore I did some profiling. It appears that loading a 40kb png file (50% 
HD) from a stream takes about 60msec another 30msec is used to paint the bitmap 
to screen. It all results in approx. 11fps which is actually pretty poor when 
you imagine a full HD loop will make the rate drop 2.5fps.

the first thing that comes to my mind is hardware related... what hardware are you using? even with "fast" hardware, it is possible that FPS is very slow... as an example, i have numerous tools that draw to the screen on my laptop much slower than if they are run on a dedicated desktop machine with graphic intensive hardware and then there is IF graphic hardware routines are used or not...

As I see it now, I will need to lower the access time to the png's from disk.

handling this bottleneck is always a GoodThing<tm> ;)

I will do a test with storing only raw pixel data instead. This means that
there will be no conversion (or decompression in the case of PNG) when streaming
from disk. However, although the minor part of the total loop, I was hoping to
improve the painting speed significantly as well.

you can't go any faster than the data is made available, FWTW...

Hopefully someone else has an  idea that works. Is there a way to access even
lower level functions from LCL? Like GDI and GTK2 functions to copy the pixel
data as fast as possible?

how far are you in to multiplatform stuffs? is your program also tuned to the winwhatever world? the reason i ask is because it is possible that some things may be slower in the other "world" than that you are developing in...

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to