commit | 4578eab98f00e70b0f04b83c72ab4f8f210753ff | [log] [tgz] |
---|---|---|
author | Nigel Tao <nigeltao@golang.org> | Thu Sep 24 03:23:37 2020 |
committer | Nigel Tao <nigeltao@golang.org> | Thu Sep 24 06:21:09 2020 |
tree | e62c75e314d9e75bd46c2dbb2ce2a8f835aac015 | |
parent | e59bae62ef32fb2e966e0361b197117135d0c05e [diff] |
font/opentype: de-duplicate sfnt.loadGlyf calls Prior to this commit, opentype.Face.Glyph started with: segments, err := f.f.LoadGlyph(&f.buf, x, etc) etc bounds, advance, err := f.f.GlyphBounds(&f.buf, x, etc) etc doStuffWith(segments) One problem with this is that both f.f.FooBar calls ultimately lead to sfnt.loadGlyf(etc, x, etc) calls and the second one is unnecessary duplicate work for the same sfnt.GlyphIndex x. A subtler problem is that the sfnt.Font.LoadGlyph doc comment says that "the segments become invalid to use once [the buffer] is re-used" and we were re-using &f.buf before walking the segments. The fix to both problems is to downgrade the GlyphBounds call to a cheaper GlyphAdvance call and to also move it above the LoadGlyph call. This commit also defines and exports a new sfnt.Segments type (with a Bounds method). This commit also renames some s/segs/segments/ variables for consistency, and tweaks some opentype.Face.Glyph comments. Change-Id: I7d327db742dd701448dc097f30a87227b0fc61f6 Reviewed-on: https://go-review.googlesource.com/c/image/+/256957 Run-TryBot: Nigel Tao <nigeltao@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Hajime Hoshi <hajimehoshi@gmail.com> Trust: Nigel Tao <nigeltao@golang.org>
This repository holds supplementary Go image libraries.
The easiest way to install is to run go get -u golang.org/x/image/...
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/image
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the image repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/image:” in the subject line, so it is easy to find.