The Trunk: TrueType-tpr.26.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: TrueType-tpr.26.mcz

commits-2
tim Rowledge uploaded a new version of TrueType to project The Trunk:
http://source.squeak.org/trunk/TrueType-tpr.26.mcz

==================== Summary ====================

Name: TrueType-tpr.26
Author: tpr
Time: 3 September 2013, 4:59:10.251 pm
UUID: 964516e1-f994-408b-9cc1-0a5b7408ad3a
Ancestors: TrueType-fbs.25

Add some comments to a few important methods to, y'know, actually help readers understand WTF is going on.
Part of fixing Mantis-01781 7 years after it was reported.

=============== Diff against TrueType-fbs.25 ===============

Item was changed:
  ----- Method: MultiTTCFont>>glyphInfoOf:into: (in category 'as yet unclassified') -----
  glyphInfoOf: char into: glyphInfoArray
+ "return glyph info for char; I may have cached info to work from"
-
  | newForm |
  self hasCached: char ifTrue: [:form :index |
  self access: char at: index.
  glyphInfoArray at: 1 put: form;
  at: 2 put: 0;
  at: 3 put: form width;
  at: 4 put: (self ascentOf: char);
  at: 5 put: self.
  ^ glyphInfoArray.
  ].
 
  newForm := self computeForm: char.
  self at: char put: newForm.
 
  glyphInfoArray at: 1 put: newForm;
  at: 2 put: 0;
  at: 3 put: newForm width;
  at: 4 put: (self ascentOf: char);
  at: 5 put: self.
  ^ glyphInfoArray.
  !

Item was changed:
  ----- Method: TTCFont>>glyphInfoOf:into: (in category 'private') -----
  glyphInfoOf: aCharacter into: glyphInfoArray
+ "return the glyph info for aCharacter; if I don't have such a character, try my fallback font"
- "Answer the width of the argument as a character in the receiver."
 
  | form |
  (self hasGlyphOf: aCharacter) ifFalse: [
  ^ self fallbackFont glyphInfoOf: aCharacter into: glyphInfoArray.
  ].
  form := self formOf: aCharacter.
  glyphInfoArray at: 1 put: form;
  at: 2 put: 0;
  at: 3 put: form width;
  at: 4 put: ascent "(self ascentOf: aCharacter)";
  at: 5 put: self.
  ^ glyphInfoArray.
  !

Item was changed:
  ----- Method: TTCFontSet>>glyphInfoOf:into: (in category 'private') -----
  glyphInfoOf: aCharacter into: glyphInfoArray
+ "return glyph info for the character; it can get complicated."
-
  | index f code |
+ "the leadingChar gives us an encoding. if that is outside the range of fonts in my fontArray, just return the default glyphInfo for a question-mark"
  index := aCharacter leadingChar + 1.
  fontArray size < index ifTrue: [^ self questionGlyphInfoInto: glyphInfoArray].
  (f := fontArray at: index) ifNil: [^ self questionGlyphInfoInto: glyphInfoArray].
 
+ "if the actual character is not in the range supported by the chosen font, return that default question-mark info "
  code := aCharacter charCode.
  ((code between: f minAscii and: f maxAscii) not) ifTrue: [
  ^ self questionGlyphInfoInto: glyphInfoArray.
  ].
+ "finally, we have an ok font and character to return glyph info about - note that the font may have other ideas. "
  f glyphInfoOf: aCharacter into: glyphInfoArray.
  glyphInfoArray at: 5 put: self.
  ^ glyphInfoArray.
  !

Item was changed:
  ----- Method: TTCFontSet>>questionGlyphInfoInto: (in category 'private') -----
  questionGlyphInfoInto: glyphInfoArray
+ "return glyph info for the question mark character in the first font of the fontArray -sort of a default set of info"
-
  | f form |
  f := fontArray at: 1.
  form := f formOf: $?.
  glyphInfoArray at: 1 put: form;
  at: 2 put: 0;
  at: 3 put: form width;
  at: 4 put: self.
  ^ glyphInfoArray.
  !