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 /include | |
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 'include')
-rw-r--r-- | include/freetype/internal/wofftypes.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/freetype/internal/wofftypes.h b/include/freetype/internal/wofftypes.h index 2035a251d..efadb7743 100644 --- a/include/freetype/internal/wofftypes.h +++ b/include/freetype/internal/wofftypes.h @@ -173,9 +173,10 @@ FT_BEGIN_HEADER FT_ULong privLength; FT_ULong uncompressed_size; - FT_UInt64 compressed_offset; + FT_ULong compressed_offset; FT_ULong header_version; FT_UShort num_fonts; + FT_ULong total_sfnt_size; WOFF2_TtcFont ttc_fonts; @@ -203,6 +204,7 @@ FT_BEGIN_HEADER */ typedef struct WOFF2_InfoRec_ { + FT_ULong header_checksum; FT_UShort num_glyphs; FT_UShort num_hmetrics; FT_Short* x_mins; |