diff options
author | Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com> | 2019-07-16 02:45:03 +0530 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2019-08-27 09:46:47 +0200 |
commit | 4d9b3d1d506c2da2cc078369ed130fb2b6994bb2 (patch) | |
tree | a6fb9461e0ee091cf3ef327bbc4be0cf95c47a23 /src/sfnt/sfobjs.c | |
parent | e3953e5410eaeec7ae49dbda26be6e4b1ca5d26c (diff) | |
download | freetype2-4d9b3d1d506c2da2cc078369ed130fb2b6994bb2.tar.gz |
[woff2] Reconstruct `loca', `hmtx', and swap out stream.
Add necessary functions to reconstruct loca and hmtx tables (the two
remaining tables that can have a transform). `woff2_open_font' is
now capable of loading a woff2 font face. This code may still need
more refining and better memory management.
* include/freetype/internal/wofftypes.h (WOFF2_HeaderRec): Add total
(final) size of sfnt stream.
(WOFF2_InfoRec): Add header checksum value.
* src/sfnt/sfobjs.c (sfnt_open_font): Change `face_instance_index'
parameter to its pointer so its value can be modified by
`woff2_open_font'.
* src/sfnt/sfwoff2.c: (WRITE_SFNT_BUF_AT): New macro to write into
sfnt buffer at given position.
(write_buf): Add parameter `extend_buf' which allows caller to
specify whether buffer should be reallocated before copying data.
(WRITE_SFNT_BUF): Updated.
(pad4, store_loca, reconstruct_htmx): New functions.
(reconstruct_glyf): Calculate loca values and store them.
(reconstruct_font): Call `reconstruct_hmtx', write table record
entries, and calculate table checksums. Also calculate font
checksum and update `checksumAdjustment' entry in head table.
(woff2_open_font): Open stream for sfnt buffer, swap out input
stream and return.
* src/sfnt/sfwoff2.h (woff2_open_font): Modify parameter to accept
pointer to `face_index'.
Diffstat (limited to 'src/sfnt/sfobjs.c')
-rw-r--r-- | src/sfnt/sfobjs.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/sfnt/sfobjs.c b/src/sfnt/sfobjs.c index 67b917822..7fe25ace7 100644 --- a/src/sfnt/sfobjs.c +++ b/src/sfnt/sfobjs.c @@ -343,7 +343,7 @@ static FT_Error sfnt_open_font( FT_Stream stream, TT_Face face, - FT_Int face_instance_index ) + FT_Int* face_instance_index ) { FT_Memory memory = stream->memory; FT_Error error; @@ -532,7 +532,7 @@ FT_TRACE2(( "SFNT driver\n" )); - error = sfnt_open_font( stream, face, face_instance_index ); + error = sfnt_open_font( stream, face, &face_instance_index ); if ( error ) return error; |