Hmm. Weird. Could it be a linux thing? Bit order or something? Could it be a transparency issue? Could it be a size of the form? I have forms of size around 200 x 200. At this point, I haven't numerically investigated it. I just notice a significant difference in rendering speed as I switch from forms to SVGs. Perhaps it is having to redraw the entire interface very often. I'll investigate a bit more when I have some time.

Cheers,

Jeff


On Thu, Jan 9, 2014 at 2:08 AM, Igor Stasenko <siguctua@gmail.com> wrote:



On 8 January 2014 08:59, J.F. Rick <self@je77.com> wrote:
In good news, I was able to implement the S/s functionality and both of my SVGs now load properly. I'll try some more soon and commit the changes once I have tested it a bit more.

In bad news, the cacheing was working properly, so I still suspect that rendering forms as a paint is too intensive to be practical for many applications. I'll try to evaluate it a bit more as I replace forms with SVGs. If the forms are causing the problem, then performance should noticeably increase.

I just did a little comparison:

| surface time |
surface := AthensCairoSurface extent: 200@200.

surface drawDuring: [ :canvas|
��� canvas setPaint: Color red.
��� canvas setShape: (0@0 extent: 100@100).
��� time := [ 10000 timesRepeat: [ canvas draw ] ] timeToRun.
���� ].
time
�0:00:00:00.115
=============

same as above but with:
��� canvas setPaint: (ThemeIcons current backIcon).

time
�0:00:00:00.093
===========

same as above but with:
��� (canvas setPaint: (ThemeIcons current backIcon)) repeat.

time
�0:00:00:00.956

as you can see, even in slowest case, the throughput is:

100*100*10000 = 100'000'000 pixels (texels) per second.

Cheers,

Jeff


--
Best regards,
Igor Stasenko.



--
Jochen "Jeff" Rick, Ph.D.
http://www.je77.com/
Skype ID: jochenrick