Commit Graph

21 Commits

Author SHA1 Message Date
Hajime Hoshi
800835d081 Revert "text/v2: rename Glyph -> Cluster"
This reverts commit f0d23de3d3.

Reason: Cluster doesn't represent a cluster but a part of a cluster.
2023-12-05 19:44:32 +09:00
Hajime Hoshi
f0d23de3d3 text/v2: rename Glyph -> Cluster
This also changes AppendClusters to return cluster info even if a
cluster doesn't have a glyph.
2023-12-05 18:00:30 +09:00
Hajime Hoshi
a444f2dd40 text/v2: replace Metrics.Height/Width with HLineGap and VLineGap
Updates #2454
2023-12-02 14:33:41 +09:00
Hajime Hoshi
b925f28104 text/v2: add MultiFace
Closes #2845
2023-11-26 03:32:22 +09:00
Hajime Hoshi
f34f93a117 text/v2: remove the common UnsafeInternal and add ones to GoTextFaceSource and StdFace
Updates #2454
2023-11-25 22:56:22 +09:00
Hajime Hoshi
20c216b2b1 text/v2: bug fix: glyph image sizes might not be enough
Hajime found that one glyph 'ら' was not rendered correctly in a
vertical Japanese text in examples/texti18n. This was due to an
incorrect calculation of the image sizes.

This change fixes this issue by always adding +1 to the sizes no matter
what the glyph size is or the position is. It is in theory possible to
determine whether this addition is necessary, but this is pretty
complicated and might cause other issues.
2023-11-25 01:26:52 +09:00
Hajime Hoshi
c0e41de921 text/v2: add AppendVectorPath
Closes #1937
Updates #2454
2023-11-20 03:38:26 +09:00
Hajime Hoshi
03a8aaee5c text/v2: define different key types for StdFace and GoTextFaceSource 2023-11-19 23:40:47 +09:00
Hajime Hoshi
57ae07eb36 text/v2: let StdFace and GoTextFaceSource have their own glyph caches 2023-11-19 23:32:49 +09:00
Hajime Hoshi
2e60c67ec9 text/v2: improve rendering quality for small faces
Closes #2843
2023-11-16 12:02:50 +09:00
Hajime Hoshi
a612b3c861 text/v2: reduce members in structs 2023-11-15 14:38:03 +09:00
Hajime Hoshi
fe35180b78 text/v2: implement GoTextFace
Closes #675
Updates #2143
Updates #2454
2023-11-15 03:40:45 +09:00
Hajime Hoshi
2b46a77e39 text/v2: replace Rune and IndexInBytes with Start/EndIndexInBytes in Glyph
The relationships between runes and glyphs are n:m in general,
then Rune is not enough. Let Glyph have a range of a string.

Updates #2454
2023-11-14 01:38:45 +09:00
Hajime Hoshi
4a84f3697c text/v2: refactoring: simplify implementation 2023-11-13 13:24:39 +09:00
Hajime Hoshi
29fe3f6d21 text/v2: refactoring: don't consider origin's posotion for the subpixel offset Y 2023-11-13 02:44:09 +09:00
Hajime Hoshi
e4f9d854d2 Revert "text/v2: don't consider subpixels in Y direction in StdFace"
This reverts commit 38a0449b44.

Reason: the rendering result has changed unexpectedly
2023-11-13 02:41:38 +09:00
Hajime Hoshi
38a0449b44 text/v2: don't consider subpixels in Y direction in StdFace 2023-11-13 02:24:49 +09:00
Hajime Hoshi
a645fbb2b0 text/v2: refactoring 2023-11-13 02:16:17 +09:00
Hajime Hoshi
9735687d3e text/v2: refactoring 2023-11-13 01:31:25 +09:00
Hajime Hoshi
3f180b2165 text/v2: bug fix: StdFace was never released
StdFace was used as a cache key, then these are never released.

This change fixes this issue by adding faceCacheKey and use it as
a cache key.

Updates #498
2023-11-12 18:49:46 +09:00
Hajime Hoshi
b8b8b16098 all: add text/v2
This change adds some basic APIs incuding StdFace.

GoTextFace will be added later.

Updates #2454
2023-11-12 17:04:25 +09:00