summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c')
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c253
1 files changed, 1 insertions, 252 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c b/Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c
index 571dca1a965..e2c6f73f80f 100644
--- a/Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c
+++ b/Build/source/libs/freetype2/freetype-src/src/base/ftglyph.c
@@ -4,7 +4,7 @@
*
* FreeType convenience functions to handle glyphs (body).
*
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -34,7 +34,6 @@
#include <freetype/ftoutln.h>
#include <freetype/ftbitmap.h>
#include <freetype/internal/ftobjs.h>
-#include <freetype/otsvg.h>
#include "ftbase.h"
@@ -278,240 +277,6 @@
)
-#ifdef FT_CONFIG_OPTION_SVG
-
- /*************************************************************************/
- /*************************************************************************/
- /**** ****/
- /**** FT_SvgGlyph support ****/
- /**** ****/
- /*************************************************************************/
- /*************************************************************************/
-
-
- FT_CALLBACK_DEF( FT_Error )
- ft_svg_glyph_init( FT_Glyph svg_glyph,
- FT_GlyphSlot slot )
- {
- FT_ULong doc_length;
- FT_SVG_Document document;
- FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph;
-
- FT_Error error = FT_Err_Ok;
- FT_Memory memory = FT_GLYPH( glyph )->library->memory;
-
-
- if ( slot->format != FT_GLYPH_FORMAT_SVG )
- {
- error = FT_THROW( Invalid_Glyph_Format );
- goto Exit;
- }
-
- if ( slot->other == NULL )
- {
- error = FT_THROW( Invalid_Slot_Handle );
- goto Exit;
- }
-
- document = (FT_SVG_Document)slot->other;
-
- if ( document->svg_document_length == 0 )
- {
- error = FT_THROW( Invalid_Slot_Handle );
- goto Exit;
- }
-
- /* allocate a new document */
- doc_length = document->svg_document_length;
- if ( FT_QALLOC( glyph->svg_document, doc_length ) )
- goto Exit;
- glyph->svg_document_length = doc_length;
-
- glyph->glyph_index = slot->glyph_index;
-
- glyph->metrics = document->metrics;
- glyph->units_per_EM = document->units_per_EM;
-
- glyph->start_glyph_id = document->start_glyph_id;
- glyph->end_glyph_id = document->end_glyph_id;
-
- glyph->transform = document->transform;
- glyph->delta = document->delta;
-
- /* copy the document into glyph */
- FT_MEM_COPY( glyph->svg_document, document->svg_document, doc_length );
-
- Exit:
- return error;
- }
-
-
- FT_CALLBACK_DEF( void )
- ft_svg_glyph_done( FT_Glyph svg_glyph )
- {
- FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph;
- FT_Memory memory = svg_glyph->library->memory;
-
-
- /* just free the memory */
- FT_FREE( glyph->svg_document );
- }
-
-
- FT_CALLBACK_DEF( FT_Error )
- ft_svg_glyph_copy( FT_Glyph svg_source,
- FT_Glyph svg_target )
- {
- FT_SvgGlyph source = (FT_SvgGlyph)svg_source;
- FT_SvgGlyph target = (FT_SvgGlyph)svg_target;
-
- FT_Error error = FT_Err_Ok;
- FT_Memory memory = FT_GLYPH( source )->library->memory;
-
-
- if ( svg_source->format != FT_GLYPH_FORMAT_SVG )
- {
- error = FT_THROW( Invalid_Glyph_Format );
- goto Exit;
- }
-
- if ( source->svg_document_length == 0 )
- {
- error = FT_THROW( Invalid_Slot_Handle );
- goto Exit;
- }
-
- target->glyph_index = source->glyph_index;
-
- target->svg_document_length = source->svg_document_length;
-
- target->metrics = source->metrics;
- target->units_per_EM = source->units_per_EM;
-
- target->start_glyph_id = source->start_glyph_id;
- target->end_glyph_id = source->end_glyph_id;
-
- target->transform = source->transform;
- target->delta = source->delta;
-
- /* allocate space for the SVG document */
- if ( FT_QALLOC( target->svg_document, target->svg_document_length ) )
- goto Exit;
-
- /* copy the document */
- FT_MEM_COPY( target->svg_document,
- source->svg_document,
- target->svg_document_length );
-
- Exit:
- return error;
- }
-
-
- FT_CALLBACK_DEF( void )
- ft_svg_glyph_transform( FT_Glyph svg_glyph,
- const FT_Matrix* _matrix,
- const FT_Vector* _delta )
- {
- FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph;
- FT_Matrix* matrix = (FT_Matrix*)_matrix;
- FT_Vector* delta = (FT_Vector*)_delta;
-
- FT_Matrix tmp_matrix;
- FT_Vector tmp_delta;
-
- FT_Matrix a, b;
- FT_Pos x, y;
-
-
- if ( !matrix )
- {
- tmp_matrix.xx = 0x10000;
- tmp_matrix.xy = 0;
- tmp_matrix.yx = 0;
- tmp_matrix.yy = 0x10000;
-
- matrix = &tmp_matrix;
- }
-
- if ( !delta )
- {
- tmp_delta.x = 0;
- tmp_delta.y = 0;
-
- delta = &tmp_delta;
- }
-
- a = glyph->transform;
- b = *matrix;
- FT_Matrix_Multiply( &b, &a );
-
- x = ADD_LONG( ADD_LONG( FT_MulFix( matrix->xx, glyph->delta.x ),
- FT_MulFix( matrix->xy, glyph->delta.y ) ),
- delta->x );
- y = ADD_LONG( ADD_LONG( FT_MulFix( matrix->yx, glyph->delta.x ),
- FT_MulFix( matrix->yy, glyph->delta.y ) ),
- delta->y );
-
- glyph->delta.x = x;
- glyph->delta.y = y;
-
- glyph->transform = a;
- }
-
-
- FT_CALLBACK_DEF( FT_Error )
- ft_svg_glyph_prepare( FT_Glyph svg_glyph,
- FT_GlyphSlot slot )
- {
- FT_SvgGlyph glyph = (FT_SvgGlyph)svg_glyph;
-
- FT_Error error = FT_Err_Ok;
- FT_Memory memory = svg_glyph->library->memory;
-
- FT_SVG_Document document = NULL;
-
-
- if ( FT_NEW( document ) )
- return error;
-
- document->svg_document = glyph->svg_document;
- document->svg_document_length = glyph->svg_document_length;
-
- document->metrics = glyph->metrics;
- document->units_per_EM = glyph->units_per_EM;
-
- document->start_glyph_id = glyph->start_glyph_id;
- document->end_glyph_id = glyph->end_glyph_id;
-
- document->transform = glyph->transform;
- document->delta = glyph->delta;
-
- slot->format = FT_GLYPH_FORMAT_SVG;
- slot->glyph_index = glyph->glyph_index;
- slot->other = document;
-
- return error;
- }
-
-
- FT_DEFINE_GLYPH(
- ft_svg_glyph_class,
-
- sizeof ( FT_SvgGlyphRec ),
- FT_GLYPH_FORMAT_SVG,
-
- ft_svg_glyph_init, /* FT_Glyph_InitFunc glyph_init */
- ft_svg_glyph_done, /* FT_Glyph_DoneFunc glyph_done */
- ft_svg_glyph_copy, /* FT_Glyph_CopyFunc glyph_copy */
- ft_svg_glyph_transform, /* FT_Glyph_TransformFunc glyph_transform */
- NULL, /* FT_Glyph_GetBBoxFunc glyph_bbox */
- ft_svg_glyph_prepare /* FT_Glyph_PrepareFunc glyph_prepare */
- )
-
-#endif /* FT_CONFIG_OPTION_SVG */
-
-
/*************************************************************************/
/*************************************************************************/
/**** ****/
@@ -612,12 +377,6 @@
else if ( format == FT_GLYPH_FORMAT_OUTLINE )
clazz = &ft_outline_glyph_class;
-#ifdef FT_CONFIG_OPTION_SVG
- /* if it is an SVG glyph */
- else if ( format == FT_GLYPH_FORMAT_SVG )
- clazz = &ft_svg_glyph_class;
-#endif
-
else
{
/* try to find a renderer that supports the glyph image format */
@@ -836,16 +595,6 @@
if ( !error )
error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode );
-#ifdef FT_CONFIG_OPTION_SVG
- if ( clazz == &ft_svg_glyph_class )
- {
- FT_Memory memory = library->memory;
-
-
- FT_FREE( dummy.other );
- }
-#endif
-
#if 1
if ( !destroy && origin )
{