summaryrefslogtreecommitdiff
path: root/src/sfnt/sfobjs.c
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 /src/sfnt/sfobjs.c
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 'src/sfnt/sfobjs.c')
-rw-r--r--src/sfnt/sfobjs.c4
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;