f93a897afe
* include/freetype/config/ftheader.h (FT_OTSVG_H): New macro. * include/freetype/freetype.h (FT_FACE_FLAG_SVG, FT_HAS_SVG): New macros. (FT_LOAD_SVG_ONLY): New internal macro. * include/freetype/ftimage.h (FT_Glyph_Format): New enumeration value `FT_GLYPH_FORMAT_SVG`. * include/freetype/internal/ftobjs.h (FT_GLYPH_OWN_GZIP_SVG): New macro. * include/freetype/internal/fttrace.h: Add `ttsvg` for `ttsvg.c`. * include/freetype/internal/sfnt.h(load_svg, free_svg, load_svg_doc): New functions. * include/freetype/internal/tttypes.h (TT_FaceRec): Add `svg` for the SVG table. * include/freetype/otsvg.h (FT_SVG_DocumentRec): New structure to hold the SVG document and other necessary information of an OT-SVG glyph in a glyph slot. * include/freetype/tttags.h (TTAG_SVG): New macro. * src/base/ftobjs.c: Include `otsvg.h`. (ft_glyphslot_init): Allocate `FT_SVG_DocumentRec` in `slot->other` if the SVG table exists. (ft_glyphslot_clear): Free it upon clean-up if it is a GZIP compressed glyph. (ft_glyphslot_done): Free the document data if it is a GZIP compressed glyph. (FT_Load_Glyph): Don't auto-hint SVG documents. * src/cache/ftcbasic.c (ftc_basic_family_load_glyph): Add support for FT_GLYPH_FORMAT_SVG. * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttsvg.c`. * src/sfnt/sfdriver.c: Include `ttsvg.h`. (sfnt_interface): Add `tt_face_load_svg`, `tt_face_free_svg` and `tt_face_load_svg_doc`. * src/sfnt/sfnt.c: Include `ttsvg.c`. * src/sfnt/sfobjs.c (sfnt_load_face, sfnt_done_face): Add code to load and free data of the the SVG table. * src/sfnt/ttsvg.c: New file, implementing `tt_face_load_svg`, `tt_face_free_svg` and `tt_face_load_svg_doc`. * src/sfnt/ttsvg.h: Declarations of the SVG functions in `ttsvg.c`.
44 lines
1009 B
C
44 lines
1009 B
C
/****************************************************************************
|
|
*
|
|
* ttsvg.h
|
|
*
|
|
* OpenType SVG Color (specification).
|
|
*
|
|
* Copyright (C) 2022 by
|
|
* David Turner, Robert Wilhelm, Werner Lemberg, and Moazin Khatti.
|
|
*
|
|
* This file is part of the FreeType project, and may only be used,
|
|
* modified, and distributed under the terms of the FreeType project
|
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
|
* this file you indicate that you have read the license and
|
|
* understand and accept it fully.
|
|
*
|
|
*/
|
|
|
|
#ifndef TTSVG_H_
|
|
#define TTSVG_H_
|
|
|
|
#include <freetype/internal/ftstream.h>
|
|
#include <freetype/internal/tttypes.h>
|
|
|
|
|
|
FT_BEGIN_HEADER
|
|
|
|
FT_LOCAL( FT_Error )
|
|
tt_face_load_svg( TT_Face face,
|
|
FT_Stream stream );
|
|
|
|
FT_LOCAL( void )
|
|
tt_face_free_svg( TT_Face face );
|
|
|
|
FT_LOCAL( FT_Error )
|
|
tt_face_load_svg_doc( FT_GlyphSlot glyph,
|
|
FT_UInt glyph_index );
|
|
|
|
FT_END_HEADER
|
|
|
|
#endif /* TTSVG_H_ */
|
|
|
|
|
|
/* END */
|