summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>2019-07-16 02:45:03 +0530
committerWerner Lemberg <wl@gnu.org>2019-08-27 09:46:47 +0200
commit4d9b3d1d506c2da2cc078369ed130fb2b6994bb2 (patch)
treea6fb9461e0ee091cf3ef327bbc4be0cf95c47a23 /include
parente3953e5410eaeec7ae49dbda26be6e4b1ca5d26c (diff)
downloadfreetype2-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.h4
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;