freetype/truetype: fix the SSW instruction to scale the single-width
value and the MDRP instruction's use of the single-width value. R=bsiegert CC=golang-dev https://codereview.appspot.com/14273043
This commit is contained in:
parent
7505dadf20
commit
7e90529703
2 changed files with 4 additions and 4 deletions
|
@ -307,7 +307,7 @@ func (h *Hinter) run(program []byte, pCurrent, pUnhinted, pInFontUnits []Point,
|
|||
|
||||
case opSSW:
|
||||
top--
|
||||
h.gs.singleWidth = f26dot6(h.stack[top])
|
||||
h.gs.singleWidth = f26dot6(h.font.scale(h.scale * h.stack[top]))
|
||||
|
||||
case opDUP:
|
||||
if top >= len(h.stack) {
|
||||
|
@ -821,9 +821,9 @@ func (h *Hinter) run(program []byte, pCurrent, pUnhinted, pInFontUnits []Point,
|
|||
// Single-width cut-in test.
|
||||
if x := (oldDist - h.gs.singleWidth).abs(); x < h.gs.singleWidthCutIn {
|
||||
if oldDist >= 0 {
|
||||
oldDist = h.gs.singleWidthCutIn
|
||||
oldDist = +h.gs.singleWidth
|
||||
} else {
|
||||
oldDist = -h.gs.singleWidthCutIn
|
||||
oldDist = -h.gs.singleWidth
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ func testScaling(t *testing.T, filename string, hinter *Hinter) {
|
|||
for i, want := range wants {
|
||||
// TODO: completely implement hinting. For now, only the first N glyphs
|
||||
// of luxisr.ttf are correctly hinted.
|
||||
const N = 106
|
||||
const N = 136
|
||||
if hinter != nil && i == N {
|
||||
break
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue