[squeak-dev] Re: The Trunk: Graphics-mt.351.mcz

marcel.taeumel Marcel.Taeumel at hpi.de
Fri Jun 17 20:53:53 UTC 2016


Levente Uzonyi wrote
> Hi Marcel,
> 
> I suppose this change has broken all StrikeFonts other than Bitmap DejaVu 
> Sans.
> 
> Levente
> 
> On Thu, 16 Jun 2016, 

> commits at .squeak

>  wrote:
> 
>> Marcel Taeumel uploaded a new version of Graphics to project The Trunk:
>> http://source.squeak.org/trunk/Graphics-mt.351.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Graphics-mt.351
>> Author: mt
>> Time: 16 June 2016, 1:56:13.140696 pm
>> UUID: 40df15d7-0c28-2b4e-8be2-231d75e087f8
>> Ancestors: Graphics-lpc.350
>>
>> Removes manual kerning corrections for the 7-point DejaVu Sans, which are
>> not necessary anymore.
>>
>> =============== Diff against Graphics-lpc.350 ===============
>>
>> Item was changed:
>>  ----- Method: StrikeFont>>ascentKern (in category 'accessing') -----
>>  ascentKern
>>  	"Return the kern delta for ascenders."
>> +
>> + 	self depth > 1 ifTrue: [^ 0].
>> +
>> + 	"Optimization for traditional 1-bit fonts."
>> + 	^ (emphasis allMask: 2)
>> + 		ifFalse: [0]
>> + 		ifTrue: [(self ascent-5+4)//4 max: 0]  "See makeItalicGlyphs"
>> - 	(emphasis noMask: 2) ifTrue: [^ 0].
>> - 	^ (self ascent-5+4)//4 max: 0  "See makeItalicGlyphs"
>>
>>  !
>>
>> Item was changed:
>>  ----- Method: StrikeFont>>baseKern (in category 'accessing') -----
>>  baseKern
>>  	"Return the base kern value to be used for all characters."
>>
>> + 	self depth > 1 ifTrue: [^ 0].
>> - 	| italic |
>> - 	italic := emphasis allMask: 2.
>>
>> + 	"Optimization for traditional 1-bit fonts."
>> + 	^ (emphasis allMask: 2)
>> + 		ifFalse: [0]
>> + 		ifTrue: [((self height-1-self ascent+4)//4 max: 0)  "See
>> makeItalicGlyphs"
>> + 			+ (((self ascent-5+4)//4 max: 0))]!
>> - 	glyphs depth > 1 ifTrue: [
>> - 		^(italic or: [ pointSize < 9 ])
>> - 			ifTrue: [ 1 ]
>> - 			ifFalse: [ 0] ].
>> -
>> - 	italic ifFalse: [^ 0].
>> - 	^ ((self height-1-self ascent+4)//4 max: 0)  "See makeItalicGlyphs"
>> - 		+ (((self ascent-5+4)//4 max: 0))!
>>
>> Item was changed:
>>  ----- Method: StrikeFont>>descentKern (in category 'accessing') -----
>>  descentKern
>>  	"Return the kern delta for descenders."
>> - 	(emphasis noMask: 2) ifTrue: [^ 0].
>> - 	^ (self height-1-self ascent+4)//4 max: 0  "See makeItalicGlyphs"
>>
>> + 	self depth > 1 ifTrue: [^ 0].
>> +
>> + 	"Optimization for traditional 1-bit fonts."
>> + 	^ (emphasis allMask: 2)
>> + 		ifFalse: [0]
>> + 		ifTrue: [(self height-1-self ascent+4)//4 max: 0]  "See
>> makeItalicGlyphs"
>> +
>>  !
>>
>>
>>

Hi Levente,

no, not at all. :) The interesting thing was that the only <9-point font
(i.e. 7 point) there that had glyphs with more than 1-bit depth was the
pre-rendered DejaVu Sans. It was an optimization that Juan put in for it, I
guess.

Or are you referring to the way our Font Importer Tools is rendering fonts?
That tool imports the point sizes 9 12 15 24 36 -- so, no "< 9" either.
However, you are, right. If you modify TTCFont class >> pointSizes to also
import fonts <9 points, the glyphs look too close together.

Still, currently, there are no broken fonts:

Accuat  #(18 )
Accujen  #(9 10 12 14 18 24 )
Accula  #(12 24 )
Accumon  #(9 10 12 )
Accuny  #(9 10 12 14 18 24 )
Accusf  #(18 )
Accushi  #(12 )
Accuve  #(12 14 )
Atlanta  #(11 22 )
Bitmap DejaVu Sans  #(7 9 12 14 17 20 )
BitstreamVeraSans  #(9 12 13 15 24 36 )
BitstreamVeraSansMono  #(9 12 15 24 36 )
BitstreamVeraSerif  #(9 12 15 18 24 36 )
ComicSansMS  #(6 9 11 17 26 )
Darkmap DejaVu Sans  #(7 9 12 14 17 20 )
DefaultFixedTextStyle  #(11 22 )
DefaultMultiStyle  #(9 10 12 14 18 24 )
DefaultTextStyle  #(7 9 12 14 17 20 )

Anyway, the right step would be to fix the glyph creation like Tobias did
generate glyphs for the 7pt Deja Vu Sans with correct widths. That general
kerning correction in StrikeFont was not a good idea.

Best,
Marcel



--
View this message in context: http://forum.world.st/The-Trunk-Graphics-mt-351-mcz-tp4901175p4901561.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.


More information about the Squeak-dev mailing list