[squeak-dev] Fwd: A little font rendering speedup
Igor Stasenko
siguctua at gmail.com
Sun Apr 19 13:36:19 UTC 2009
I put this on mantis, since i'm sure this applies to squeak3.10 and Pharo both.
http://bugs.squeak.org/view.php?id=7338
---------- Forwarded message ----------
From: Igor Stasenko <siguctua at gmail.com>
Date: 2009/4/19
Subject: A little font rendering speedup
To: Pharo Development <Pharo-project at lists.gforge.inria.fr>
This is an image-side change, which makes a primitiveDisplayString to
not fail because StrikeFontSet returns nil for (font
characterToGlyphMap).
Since the code, which using fast primitive looks like following:
self primDisplayString: aString from: startIndex to: stopIndex
map: font characterToGlyphMap xTable: font xTable
kern: kernDelta
I thought, why one would return nil in ( font characterToGlyphMap ).
Since #xTable in StrikeFontSet implemented as following:
xTable
"Answer an Array of the left x-coordinate of characters in glyphs."
^ (fontArray at: 1) xTable.
i think it is safe to do similar in characterToGlyphMap ,
this allows the primitive to work w/o failure, because otherwise, if
you look at implementation of
primDisplayString: aString from: startIndex to: stopIndex map:
glyphMap xTable: xTable kern: kernDelta
in fallback code it does same thing again (and ignoring glyphMap at all, btw).
To bench a difference, leave a couple of windows with text in world and then do:
[10 timesRepeat: [World fullDrawOn: World assuredCanvas] ] timeToRun
before change:
645
after change:
545
--
Best regards,
Igor Stasenko AKA sig.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: StrikeFontSet-characterToGlyphMap.st
Type: application/octet-stream
Size: 554 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20090419/032c97b7/StrikeFontSet-characterToGlyphMap.obj
More information about the Squeak-dev
mailing list
|