Re: [ft] python_freetype Design: Vector Matrix Operations

2015-02-14 Thread Lawrence D'Oliveiro
On Sun, 15 Feb 2015 07:47:59 +0100 (CET), Werner LEMBERG wrote: I know FreeType can’t handle non-affine transformations—presumably that is by design. But you could do what PostScript did, and have a 3×2 matrix that can only express affine transformations. Shifting glyphs is *much* more

Re: [ft] python_freetype Design: Vector Matrix Operations

2015-02-14 Thread Werner LEMBERG
Shifting glyphs is *much* more common than rotating or shearing. I guess one issue is that rotating and shearing will disable hinting? Yes. But scaling will not, and that comes from the same matrix, doesn’t it? Scaling itself doesn't disable hinting, however, it gets applied *after*

Re: [ft] python_freetype Design: Vector Matrix Operations

2015-02-14 Thread Lawrence D'Oliveiro
I’ve been wondering why FreeType uses only 2×2 matrices, so it has to express translations with a separate vector. It is common in graphics libraries to use homogeneous matrices (3×3 for 2D, 4×4 for 3D) so all linear transformations can be encapsulated in a single matrix. I know FreeType can’t

Re: [ft] python_freetype Design: Vector Matrix Operations

2015-02-14 Thread Lawrence D'Oliveiro
On Sun, 15 Feb 2015 07:47:59 +0100 (CET), Werner LEMBERG wrote: Shifting glyphs is *much* more common than rotating or shearing. Couple of points that occur to me: * Shearing is often used to simulate italic. * When you do want to bring in the other operations, being able to combine them

Re: [ft] python_freetype Design: Vector Matrix Operations

2015-02-14 Thread Werner LEMBERG
* Shearing is often used to simulate italic. Yes. In this special case, hinting along the vertical axis (which happens before shearing) doesn't harm. Werner ___ Freetype mailing list Freetype@nongnu.org