Here is more information about the problem: as said, the issue comes from
widthOfString:. So, I tested the basic infrastructure:
[10 to: 100 do: [ :x |
(LogicalFont familyName: 'Arial' pointSize: x)
widthOfString: 'test' ]] timeToRun
This one gets ==> 5s
So, where are the rest of the 20s being spent in Roassal? Essentially,
given that Roassal will get a new logical font instance every time it tries
to display, it essentially slows down everything in the image when multiple
fonts are displayed.
I think we should find a way to cache the logical fonts in
ROFontOrganizerAthens, or at least to provide the ability to set the font
from outside in ROAbstractLabel (rather than just provide the font size).
Cheers,
Doru
On Sat, Aug 24, 2013 at 9:34 AM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
Indeed, the issue we have is related to real font
caching. It would be
great to get a working solution for this. I guess this will not be
available in Pharo 2.0 (it would make sense to focus on Pharo 3.0), but
maybe we can get some hints as to how to build a little workaround.
I would like to release the Moose 4.8 image with Athens enabled, but I am
not sure it's a good idea with this little issue inside.
Doru
On Fri, Aug 23, 2013 at 10:58 PM, Stéphane Ducasse <
stephane.ducasse(a)inria.fr> wrote:
Igor is working out on textEditor with fernando
and they are making
progress.
I know that igor want to build a cache for fonts and that now he changed
the API of Cairo because the previous one was making approximations that
led to
problems when zooming (and then to identify character under the mouse).
Now I do not know how and if it will have an impact (probably on this
one).
One objectives is also to see how to reuse some of the morphs made on top
of Rubric (but not rubric because it is based on the old and bad paragraph
editor).
Stef
Hi,
Try this:
[view := ROMondrianViewBuilder new.
view shape label fontSize: [:x | x ].
view nodes: (10 to: 100).
view open] timeToRun
On my MacBookPro i7 2.6 GHz this takes 23s.
The actual reason is that LogicalFont>>widthOfString: looks up the real
font when the font is not yet cached. And this ends up looking for files on
the disk.
I do not know an easy way out, but as it is, we cannot use font scaling
essentially. And because of that, visualizations like Annotation
Constellation are not practicable anymore:
http://www.themoosebook.org/book/externals/visualizations/annotation-conste…
Cheers,
Doru
--
www.tudorgirba.com
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"Every thing has its own flow"
--
www.tudorgirba.com
"Every thing has its own flow"