From 7e39718af7ddda9f28d325aa4bffdd873d3eafc6 Mon Sep 17 00:00:00 2001 From: Benoit KUGLER Date: Mon, 2 Feb 2026 16:01:44 +0100 Subject: [PATCH 1/3] bump dep and remove use of deprecated API --- go.mod | 2 +- go.sum | 2 ++ render.go | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index c4948d7..8c133a4 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/go-text/render go 1.19 require ( - github.com/go-text/typesetting v0.3.0 + github.com/go-text/typesetting v0.3.3 github.com/go-text/typesetting-utils v0.0.0-20250620161931-017769003e3c github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef diff --git a/go.sum b/go.sum index d886b3e..3a0c9e0 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/go-text/typesetting v0.3.0 h1:OWCgYpp8njoxSRpwrdd1bQOxdjOXDj9Rqart9ML4iF4= github.com/go-text/typesetting v0.3.0/go.mod h1:qjZLkhRgOEYMhU9eHBr3AR4sfnGJvOXNLt8yRAySFuY= +github.com/go-text/typesetting v0.3.3 h1:ihGNJU9KzdK2QRDy1Bm7FT5RFQoYb+3n3EIhI/4eaQc= +github.com/go-text/typesetting v0.3.3/go.mod h1:vIRUT25mLQaSh4C8H/lIsKppQz/Gdb8Pu/tNwpi52ts= github.com/go-text/typesetting-utils v0.0.0-20250620161931-017769003e3c h1:EkVgKYSt3+6Y2FdS5TDAe8WRSVpFzWaMoSk0KVzVy2c= github.com/go-text/typesetting-utils v0.0.0-20250620161931-017769003e3c/go.mod h1:3/62I4La/HBRX9TcTpBj4eipLiwzf+vhI+7whTc9V7o= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= diff --git a/render.go b/render.go index 406245b..50f9375 100644 --- a/render.go +++ b/render.go @@ -122,7 +122,7 @@ func (r *Renderer) DrawShapedRunAt(run shaping.Output, img draw.Image, startX, s _ = r.drawSVG(g, format, img, xPos, yPos) } - x += fixed266ToFloat(g.XAdvance) * r.PixScale + x += fixed266ToFloat(g.Advance) * r.PixScale } f.Draw() r.filler = nil From 9a733e354e3e9d670ddcff434cf62bc08dcf1869 Mon Sep 17 00:00:00 2001 From: Benoit KUGLER Date: Mon, 23 Feb 2026 17:25:01 +0100 Subject: [PATCH 2/3] bump typesetting version to include latest fixes --- go.mod | 4 ++-- go.sum | 10 ++++------ testdata/out.png | Bin 30630 -> 30638 bytes 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/go.mod b/go.mod index 8c133a4..99b683a 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/go-text/render go 1.19 require ( - github.com/go-text/typesetting v0.3.3 - github.com/go-text/typesetting-utils v0.0.0-20250620161931-017769003e3c + github.com/go-text/typesetting v0.3.4-0.20260223162014-72238c6215e4 + github.com/go-text/typesetting-utils v0.0.0-20260223113751-2d88ac90dae3 github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef golang.org/x/image v0.23.0 diff --git a/go.sum b/go.sum index 3a0c9e0..140fd4d 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,7 @@ -github.com/go-text/typesetting v0.3.0 h1:OWCgYpp8njoxSRpwrdd1bQOxdjOXDj9Rqart9ML4iF4= -github.com/go-text/typesetting v0.3.0/go.mod h1:qjZLkhRgOEYMhU9eHBr3AR4sfnGJvOXNLt8yRAySFuY= -github.com/go-text/typesetting v0.3.3 h1:ihGNJU9KzdK2QRDy1Bm7FT5RFQoYb+3n3EIhI/4eaQc= -github.com/go-text/typesetting v0.3.3/go.mod h1:vIRUT25mLQaSh4C8H/lIsKppQz/Gdb8Pu/tNwpi52ts= -github.com/go-text/typesetting-utils v0.0.0-20250620161931-017769003e3c h1:EkVgKYSt3+6Y2FdS5TDAe8WRSVpFzWaMoSk0KVzVy2c= -github.com/go-text/typesetting-utils v0.0.0-20250620161931-017769003e3c/go.mod h1:3/62I4La/HBRX9TcTpBj4eipLiwzf+vhI+7whTc9V7o= +github.com/go-text/typesetting v0.3.4-0.20260223162014-72238c6215e4 h1:d1OLEbU/cRwxS+zaer01/7eDAKUEbHz24EMiF6tYMNQ= +github.com/go-text/typesetting v0.3.4-0.20260223162014-72238c6215e4/go.mod h1:4qZCQphq4KSgGTAeI0uMEkVbROgfah8BuyF5LRYr7XY= +github.com/go-text/typesetting-utils v0.0.0-20260223113751-2d88ac90dae3 h1:drBZzMgdYPbmyXqOto4YhhJGrFIQCX94FpR4MzTCsos= +github.com/go-text/typesetting-utils v0.0.0-20260223113751-2d88ac90dae3/go.mod h1:3/62I4La/HBRX9TcTpBj4eipLiwzf+vhI+7whTc9V7o= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c h1:km8GpoQut05eY3GiYWEedbTT0qnSxrCjsVbb7yKY1KE= github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c/go.mod h1:cNQ3dwVJtS5Hmnjxy6AgTPd0Inb3pW05ftPSX7NZO7Q= diff --git a/testdata/out.png b/testdata/out.png index 6ee9912a9f4ea87dc1eaf6938991059d9db0f604..94548fcb1b1019df649c01e2f4f42ca02960c687 100644 GIT binary patch delta 29289 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 delta 29315 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 Date: Mon, 23 Feb 2026 17:28:03 +0100 Subject: [PATCH 3/3] use font sample already bundled in typesetting-utils --- render_test.go | 4 ++-- testdata/cherry/LICENSE | 12 ------------ testdata/cherry/cherry-10-r.otb | Bin 3772 -> 0 bytes 3 files changed, 2 insertions(+), 14 deletions(-) delete mode 100644 testdata/cherry/LICENSE delete mode 100644 testdata/cherry/cherry-10-r.otb diff --git a/render_test.go b/render_test.go index f7066a2..975cd1d 100644 --- a/render_test.go +++ b/render_test.go @@ -56,8 +56,8 @@ func Test_Render(t *testing.T) { r.Color = color.NRGBA{R: 0xcc, G: 0x66, B: 0x33, A: 0xcc} r.DrawStringAt("\uE0A2░", img, 366, 164, f4) - data, _ = os.Open("testdata/cherry/cherry-10-r.otb") - f5, _ := font.ParseTTF(data) + content, _ := ot.Files.ReadFile("bitmap/cherry-10-r.otb") + f5, _ := font.ParseTTF(bytes.NewReader(content)) (&render.Renderer{FontSize: 10, PixScale: 1, Color: color.Black}).DrawStringAt("Hello, world!", img, 6, 10, f5) str = "Hello ज्या 😀! 🎁 fin." diff --git a/testdata/cherry/LICENSE b/testdata/cherry/LICENSE deleted file mode 100644 index e7ebbb5..0000000 --- a/testdata/cherry/LICENSE +++ /dev/null @@ -1,12 +0,0 @@ -Copyright (C) 2023 by camille - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. diff --git a/testdata/cherry/cherry-10-r.otb b/testdata/cherry/cherry-10-r.otb deleted file mode 100644 index de6a29afb6dd4ff30275fbc4ac19767bfc019551..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3772 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 Ck<=jo