diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2021-08-29 06:19:44 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2021-08-29 06:19:44 +0000 |
commit | 0de5be92a3a0fe27e8521fc4de67e19b1057842e (patch) | |
tree | e93a390fe965486cca19498840cb8d7904252fec /Build/source/libs/freetype2/freetype-src/src/raster | |
parent | 27ce96eea3f1190bd744448cfa149e8d767af95a (diff) |
revert freetype to 2.10.4
git-svn-id: svn://tug.org/texlive/trunk@60360 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/src/raster')
9 files changed, 179 insertions, 131 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/ftmisc.h b/Build/source/libs/freetype2/freetype-src/src/raster/ftmisc.h index 9de0b126993..6efe4a9a5a2 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/ftmisc.h +++ b/Build/source/libs/freetype2/freetype-src/src/raster/ftmisc.h @@ -5,7 +5,7 @@ * Miscellaneous macros for stand-alone rasterizer (specification * only). * - * Copyright (C) 2005-2021 by + * Copyright (C) 2005-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c b/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c index fbcf8d22a21..9f0a7976fad 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c +++ b/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.c @@ -4,7 +4,7 @@ * * The FreeType glyph rasterizer (body). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, @@ -149,6 +149,9 @@ /*************************************************************************/ /*************************************************************************/ + /* define DEBUG_RASTER if you want to compile a debugging version */ +/* #define DEBUG_RASTER */ + /*************************************************************************/ /*************************************************************************/ @@ -197,13 +200,12 @@ #define FT_THROW( e ) FT_ERR_CAT( Raster_Err_, e ) #endif -#define Raster_Err_Ok 0 -#define Raster_Err_Invalid_Outline -1 -#define Raster_Err_Cannot_Render_Glyph -2 -#define Raster_Err_Invalid_Argument -3 -#define Raster_Err_Raster_Overflow -4 -#define Raster_Err_Raster_Uninitialized -5 -#define Raster_Err_Raster_Negative_Height -6 +#define Raster_Err_None 0 +#define Raster_Err_Not_Ini -1 +#define Raster_Err_Overflow -2 +#define Raster_Err_Neg_Height -3 +#define Raster_Err_Invalid -4 +#define Raster_Err_Unsupported -5 #define ft_memset memset @@ -228,6 +230,13 @@ #include "rasterrs.h" +#define Raster_Err_None FT_Err_Ok +#define Raster_Err_Not_Ini Raster_Err_Raster_Uninitialized +#define Raster_Err_Overflow Raster_Err_Raster_Overflow +#define Raster_Err_Neg_Height Raster_Err_Raster_Negative_Height +#define Raster_Err_Invalid Raster_Err_Invalid_Outline +#define Raster_Err_Unsupported Raster_Err_Cannot_Render_Glyph + #endif /* !STANDALONE_ */ @@ -366,6 +375,16 @@ typedef PProfile* PProfileList; + /* Simple record used to implement a stack of bands, required */ + /* by the sub-banding mechanism */ + typedef struct black_TBand_ + { + Short y_min; /* band's minimum */ + Short y_max; /* band's maximum */ + + } black_TBand; + + #define AlignProfileSize \ ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( Long ) ) @@ -407,8 +426,8 @@ /* prototypes used for sweep function dispatch */ typedef void - Function_Sweep_Init( RAS_ARGS Short min, - Short max ); + Function_Sweep_Init( RAS_ARGS Short* min, + Short* max ); typedef void Function_Sweep_Span( RAS_ARGS Short y, @@ -473,11 +492,10 @@ Int numTurns; /* number of Y-turns in outline */ - Byte dropOutControl; /* current drop_out control method */ + TPoint* arc; /* current Bezier arc pointer */ UShort bWidth; /* target bitmap width */ PByte bOrigin; /* target bitmap bottom-left origin */ - PByte bLine; /* target bitmap current line */ Long lastX, lastY; Long minY, maxY; @@ -499,6 +517,9 @@ FT_Bitmap target; /* description of target bit/pixmap */ FT_Outline outline; + Long traceOfs; /* current offset in target bitmap */ + Short traceIncr; /* sweep's increment in target bitmap */ + /* dispatch variables */ Function_Sweep_Init* Proc_Sweep_Init; @@ -506,6 +527,18 @@ Function_Sweep_Span* Proc_Sweep_Drop; Function_Sweep_Step* Proc_Sweep_Step; + Byte dropOutControl; /* current drop_out control method */ + + Bool second_pass; /* indicates whether a horizontal pass */ + /* should be performed to control */ + /* drop-out accurately when calling */ + /* Render_Glyph. */ + + TPoint arcs[3 * MaxBezier + 1]; /* The Bezier stack */ + + black_TBand band_stack[16]; /* band stack used for sub-banding */ + Int band_top; /* band stack top */ + }; @@ -627,7 +660,7 @@ if ( ras.top >= ras.maxBuff ) { - ras.error = FT_THROW( Raster_Overflow ); + ras.error = FT_THROW( Overflow ); return FAILURE; } @@ -656,7 +689,7 @@ default: FT_ERROR(( "New_Profile: invalid profile direction\n" )); - ras.error = FT_THROW( Invalid_Outline ); + ras.error = FT_THROW( Invalid ); return FAILURE; } @@ -698,7 +731,7 @@ if ( h < 0 ) { FT_ERROR(( "End_Profile: negative height encountered\n" )); - ras.error = FT_THROW( Raster_Negative_Height ); + ras.error = FT_THROW( Neg_Height ); return FAILURE; } @@ -734,7 +767,7 @@ if ( ras.top >= ras.maxBuff ) { FT_TRACE1(( "overflow in End_Profile\n" )); - ras.error = FT_THROW( Raster_Overflow ); + ras.error = FT_THROW( Overflow ); return FAILURE; } @@ -789,7 +822,7 @@ ras.maxBuff--; if ( ras.maxBuff <= ras.top ) { - ras.error = FT_THROW( Raster_Overflow ); + ras.error = FT_THROW( Overflow ); return FAILURE; } ras.numTurns++; @@ -1053,7 +1086,7 @@ size = e2 - e1 + 1; if ( ras.top + size >= ras.maxBuff ) { - ras.error = FT_THROW( Raster_Overflow ); + ras.error = FT_THROW( Overflow ); return FAILURE; } @@ -1176,7 +1209,6 @@ */ static Bool Bezier_Up( RAS_ARGS Int degree, - TPoint* arc, TSplitter splitter, Long miny, Long maxy ) @@ -1184,11 +1216,13 @@ Long y1, y2, e, e2, e0; Short f1; + TPoint* arc; TPoint* start_arc; PLong top; + arc = ras.arc; y1 = arc[degree].y; y2 = arc[0].y; top = ras.top; @@ -1237,7 +1271,7 @@ if ( ( top + TRUNC( e2 - e ) + 1 ) >= ras.maxBuff ) { ras.top = top; - ras.error = FT_THROW( Raster_Overflow ); + ras.error = FT_THROW( Overflow ); return FAILURE; } @@ -1280,6 +1314,7 @@ Fin: ras.top = top; + ras.arc -= degree; return SUCCESS; } @@ -1311,11 +1346,11 @@ */ static Bool Bezier_Down( RAS_ARGS Int degree, - TPoint* arc, TSplitter splitter, Long miny, Long maxy ) { + TPoint* arc = ras.arc; Bool result, fresh; @@ -1327,7 +1362,7 @@ fresh = ras.fresh; - result = Bezier_Up( RAS_VARS degree, arc, splitter, -maxy, -miny ); + result = Bezier_Up( RAS_VARS degree, splitter, -maxy, -miny ); if ( fresh && !ras.fresh ) ras.cProfile->start = -ras.cProfile->start; @@ -1468,24 +1503,22 @@ { Long y1, y2, y3, x3, ymin, ymax; TStates state_bez; - TPoint arcs[2 * MaxBezier + 1]; /* The Bezier stack */ - TPoint* arc; /* current Bezier arc pointer */ - arc = arcs; - arc[2].x = ras.lastX; - arc[2].y = ras.lastY; - arc[1].x = cx; - arc[1].y = cy; - arc[0].x = x; - arc[0].y = y; + ras.arc = ras.arcs; + ras.arc[2].x = ras.lastX; + ras.arc[2].y = ras.lastY; + ras.arc[1].x = cx; + ras.arc[1].y = cy; + ras.arc[0].x = x; + ras.arc[0].y = y; do { - y1 = arc[2].y; - y2 = arc[1].y; - y3 = arc[0].y; - x3 = arc[0].x; + y1 = ras.arc[2].y; + y2 = ras.arc[1].y; + y3 = ras.arc[0].y; + x3 = ras.arc[0].x; /* first, categorize the Bezier arc */ @@ -1503,13 +1536,13 @@ if ( y2 < ymin || y2 > ymax ) { /* this arc has no given direction, split it! */ - Split_Conic( arc ); - arc += 2; + Split_Conic( ras.arc ); + ras.arc += 2; } else if ( y1 == y3 ) { /* this arc is flat, ignore it and pop it from the Bezier stack */ - arc -= 2; + ras.arc -= 2; } else { @@ -1536,18 +1569,15 @@ /* now call the appropriate routine */ if ( state_bez == Ascending_State ) { - if ( Bezier_Up( RAS_VARS 2, arc, Split_Conic, - ras.minY, ras.maxY ) ) + if ( Bezier_Up( RAS_VARS 2, Split_Conic, ras.minY, ras.maxY ) ) goto Fail; } else - if ( Bezier_Down( RAS_VARS 2, arc, Split_Conic, - ras.minY, ras.maxY ) ) + if ( Bezier_Down( RAS_VARS 2, Split_Conic, ras.minY, ras.maxY ) ) goto Fail; - arc -= 2; } - } while ( arc >= arcs ); + } while ( ras.arc >= ras.arcs ); ras.lastX = x3; ras.lastY = y3; @@ -1602,27 +1632,25 @@ { Long y1, y2, y3, y4, x4, ymin1, ymax1, ymin2, ymax2; TStates state_bez; - TPoint arcs[3 * MaxBezier + 1]; /* The Bezier stack */ - TPoint* arc; /* current Bezier arc pointer */ - arc = arcs; - arc[3].x = ras.lastX; - arc[3].y = ras.lastY; - arc[2].x = cx1; - arc[2].y = cy1; - arc[1].x = cx2; - arc[1].y = cy2; - arc[0].x = x; - arc[0].y = y; + ras.arc = ras.arcs; + ras.arc[3].x = ras.lastX; + ras.arc[3].y = ras.lastY; + ras.arc[2].x = cx1; + ras.arc[2].y = cy1; + ras.arc[1].x = cx2; + ras.arc[1].y = cy2; + ras.arc[0].x = x; + ras.arc[0].y = y; do { - y1 = arc[3].y; - y2 = arc[2].y; - y3 = arc[1].y; - y4 = arc[0].y; - x4 = arc[0].x; + y1 = ras.arc[3].y; + y2 = ras.arc[2].y; + y3 = ras.arc[1].y; + y4 = ras.arc[0].y; + x4 = ras.arc[0].x; /* first, categorize the Bezier arc */ @@ -1651,13 +1679,13 @@ if ( ymin2 < ymin1 || ymax2 > ymax1 ) { /* this arc has no given direction, split it! */ - Split_Cubic( arc ); - arc += 3; + Split_Cubic( ras.arc ); + ras.arc += 3; } else if ( y1 == y4 ) { /* this arc is flat, ignore it and pop it from the Bezier stack */ - arc -= 3; + ras.arc -= 3; } else { @@ -1683,18 +1711,15 @@ /* compute intersections */ if ( state_bez == Ascending_State ) { - if ( Bezier_Up( RAS_VARS 3, arc, Split_Cubic, - ras.minY, ras.maxY ) ) + if ( Bezier_Up( RAS_VARS 3, Split_Cubic, ras.minY, ras.maxY ) ) goto Fail; } else - if ( Bezier_Down( RAS_VARS 3, arc, Split_Cubic, - ras.minY, ras.maxY ) ) + if ( Bezier_Down( RAS_VARS 3, Split_Cubic, ras.minY, ras.maxY ) ) goto Fail; - arc -= 3; } - } while ( arc >= arcs ); + } while ( ras.arc >= ras.arcs ); ras.lastX = x4; ras.lastY = y4; @@ -1942,7 +1967,7 @@ return SUCCESS; Invalid_Outline: - ras.error = FT_THROW( Invalid_Outline ); + ras.error = FT_THROW( Invalid ); Fail: return FAILURE; @@ -2189,13 +2214,16 @@ */ static void - Vertical_Sweep_Init( RAS_ARGS Short min, - Short max ) + Vertical_Sweep_Init( RAS_ARGS Short* min, + Short* max ) { + Long pitch = ras.target.pitch; + FT_UNUSED( max ); - ras.bLine = ras.bOrigin - min * ras.target.pitch; + ras.traceIncr = (Short)-pitch; + ras.traceOfs = -*min * pitch; } @@ -2257,7 +2285,7 @@ f1 = (Byte) ( 0xFF >> ( e1 & 7 ) ); f2 = (Byte) ~( 0x7F >> ( e2 & 7 ) ); - target = ras.bLine + c1; + target = ras.bOrigin + ras.traceOfs + c1; c2 -= c1; if ( c2 > 0 ) @@ -2409,8 +2437,8 @@ c1 = (Short)( e1 >> 3 ); f1 = (Short)( e1 & 7 ); - if ( e1 >= 0 && e1 < ras.bWidth && - ras.bLine[c1] & ( 0x80 >> f1 ) ) + if ( e1 >= 0 && e1 < ras.bWidth && + ras.bOrigin[ras.traceOfs + c1] & ( 0x80 >> f1 ) ) goto Exit; } else @@ -2426,7 +2454,7 @@ c1 = (Short)( e1 >> 3 ); f1 = (Short)( e1 & 7 ); - ras.bLine[c1] |= (char)( 0x80 >> f1 ); + ras.bOrigin[ras.traceOfs + c1] |= (char)( 0x80 >> f1 ); } Exit: @@ -2437,7 +2465,7 @@ static void Vertical_Sweep_Step( RAS_ARG ) { - ras.bLine -= ras.target.pitch; + ras.traceOfs += ras.traceIncr; } @@ -2451,8 +2479,8 @@ */ static void - Horizontal_Sweep_Init( RAS_ARGS Short min, - Short max ) + Horizontal_Sweep_Init( RAS_ARGS Short* min, + Short* max ) { /* nothing, really */ FT_UNUSED_RASTER; @@ -2716,13 +2744,13 @@ /* check the Y-turns */ if ( ras.numTurns == 0 ) { - ras.error = FT_THROW( Invalid_Outline ); + ras.error = FT_THROW( Invalid ); return FAILURE; } /* now initialize the sweep */ - ras.Proc_Sweep_Init( RAS_VARS min_Y, max_Y ); + ras.Proc_Sweep_Init( RAS_VARS &min_Y, &max_Y ); /* then compute the distance of each profile from min_Y */ @@ -3011,54 +3039,63 @@ * Renderer error code. */ static int - Render_Single_Pass( RAS_ARGS Bool flipped, - Int y_min, - Int y_max ) + Render_Single_Pass( RAS_ARGS Bool flipped ) { - Int y_mid; - Int band_top = 0; - Int band_stack[32]; /* enough to bisect 32-bit int bands */ + Short i, j, k; - while ( 1 ) + while ( ras.band_top >= 0 ) { - ras.minY = (Long)y_min * ras.precision; - ras.maxY = (Long)y_max * ras.precision; + ras.maxY = (Long)ras.band_stack[ras.band_top].y_max * ras.precision; + ras.minY = (Long)ras.band_stack[ras.band_top].y_min * ras.precision; ras.top = ras.buff; - ras.error = Raster_Err_Ok; + ras.error = Raster_Err_None; if ( Convert_Glyph( RAS_VARS flipped ) ) { - if ( ras.error != Raster_Err_Raster_Overflow ) - return ras.error; + if ( ras.error != Raster_Err_Overflow ) + return FAILURE; + + ras.error = Raster_Err_None; /* sub-banding */ - if ( y_min == y_max ) - return ras.error; /* still Raster_Overflow */ +#ifdef DEBUG_RASTER + ClearBand( RAS_VARS TRUNC( ras.minY ), TRUNC( ras.maxY ) ); +#endif + + i = ras.band_stack[ras.band_top].y_min; + j = ras.band_stack[ras.band_top].y_max; + + k = (Short)( ( i + j ) / 2 ); + + if ( ras.band_top >= 7 || k < i ) + { + ras.band_top = 0; + ras.error = FT_THROW( Invalid ); + + return ras.error; + } + + ras.band_stack[ras.band_top + 1].y_min = k; + ras.band_stack[ras.band_top + 1].y_max = j; - y_mid = ( y_min + y_max ) >> 1; + ras.band_stack[ras.band_top].y_max = (Short)( k - 1 ); - band_stack[band_top++] = y_min; - y_min = y_mid + 1; + ras.band_top++; } else { if ( ras.fProfile ) if ( Draw_Sweep( RAS_VAR ) ) return ras.error; - - if ( --band_top < 0 ) - break; - - y_max = y_min - 1; - y_min = band_stack[band_top]; + ras.band_top--; } } - return Raster_Err_Ok; + return SUCCESS; } @@ -3095,6 +3132,9 @@ ras.dropOutControl += 1; } + ras.second_pass = (Bool)( !( ras.outline.flags & + FT_OUTLINE_SINGLE_PASS ) ); + /* Vertical Sweep */ FT_TRACE7(( "Vertical pass (ftraster)\n" )); @@ -3103,18 +3143,21 @@ ras.Proc_Sweep_Drop = Vertical_Sweep_Drop; ras.Proc_Sweep_Step = Vertical_Sweep_Step; + ras.band_top = 0; + ras.band_stack[0].y_min = 0; + ras.band_stack[0].y_max = (Short)( ras.target.rows - 1 ); + ras.bWidth = (UShort)ras.target.width; ras.bOrigin = (Byte*)ras.target.buffer; if ( ras.target.pitch > 0 ) ras.bOrigin += (Long)( ras.target.rows - 1 ) * ras.target.pitch; - error = Render_Single_Pass( RAS_VARS 0, 0, (Int)ras.target.rows - 1 ); - if ( error ) + if ( ( error = Render_Single_Pass( RAS_VARS 0 ) ) != 0 ) return error; /* Horizontal Sweep */ - if ( !( ras.outline.flags & FT_OUTLINE_SINGLE_PASS ) ) + if ( ras.second_pass && ras.dropOutControl != 2 ) { FT_TRACE7(( "Horizontal pass (ftraster)\n" )); @@ -3123,12 +3166,15 @@ ras.Proc_Sweep_Drop = Horizontal_Sweep_Drop; ras.Proc_Sweep_Step = Horizontal_Sweep_Step; - error = Render_Single_Pass( RAS_VARS 1, 0, (Int)ras.target.width - 1 ); - if ( error ) + ras.band_top = 0; + ras.band_stack[0].y_min = 0; + ras.band_stack[0].y_max = (Short)( ras.target.width - 1 ); + + if ( ( error = Render_Single_Pass( RAS_VARS 1 ) ) != 0 ) return error; } - return Raster_Err_Ok; + return Raster_Err_None; } @@ -3246,36 +3292,38 @@ if ( !raster ) - return FT_THROW( Raster_Uninitialized ); + return FT_THROW( Not_Ini ); if ( !outline ) - return FT_THROW( Invalid_Outline ); + return FT_THROW( Invalid ); /* return immediately if the outline is empty */ if ( outline->n_points == 0 || outline->n_contours <= 0 ) - return Raster_Err_Ok; + return Raster_Err_None; if ( !outline->contours || !outline->points ) - return FT_THROW( Invalid_Outline ); + return FT_THROW( Invalid ); if ( outline->n_points != outline->contours[outline->n_contours - 1] + 1 ) - return FT_THROW( Invalid_Outline ); + return FT_THROW( Invalid ); /* this version of the raster does not support direct rendering, sorry */ - if ( params->flags & FT_RASTER_FLAG_DIRECT || - params->flags & FT_RASTER_FLAG_AA ) - return FT_THROW( Cannot_Render_Glyph ); + if ( params->flags & FT_RASTER_FLAG_DIRECT ) + return FT_THROW( Unsupported ); + + if ( params->flags & FT_RASTER_FLAG_AA ) + return FT_THROW( Unsupported ); if ( !target_map ) - return FT_THROW( Invalid_Argument ); + return FT_THROW( Invalid ); /* nothing to do */ if ( !target_map->width || !target_map->rows ) - return Raster_Err_Ok; + return Raster_Err_None; if ( !target_map->buffer ) - return FT_THROW( Invalid_Argument ); + return FT_THROW( Invalid ); ras.outline = *outline; ras.target = *target_map; diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.h b/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.h index 4affd48b51f..1b2ee3c0167 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.h +++ b/Build/source/libs/freetype2/freetype-src/src/raster/ftraster.h @@ -4,7 +4,7 @@ * * The FreeType glyph rasterizer (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.c b/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.c index 236a8daf0a6..57fed9bc14c 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.c +++ b/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.c @@ -4,7 +4,7 @@ * * The FreeType glyph rasterizer interface (body). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.h b/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.h index e4cea537416..3f6be536755 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.h +++ b/Build/source/libs/freetype2/freetype-src/src/raster/ftrend1.h @@ -4,7 +4,7 @@ * * The FreeType glyph rasterizer interface (specification). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/module.mk b/Build/source/libs/freetype2/freetype-src/src/raster/module.mk index fbc1d64ec27..3600732b16e 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/module.mk +++ b/Build/source/libs/freetype2/freetype-src/src/raster/module.mk @@ -3,7 +3,7 @@ # -# Copyright (C) 1996-2021 by +# Copyright (C) 1996-2020 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/raster.c b/Build/source/libs/freetype2/freetype-src/src/raster/raster.c index ad81a394142..cd37943bf60 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/raster.c +++ b/Build/source/libs/freetype2/freetype-src/src/raster/raster.c @@ -4,7 +4,7 @@ * * FreeType monochrome rasterer module component (body only). * - * Copyright (C) 1996-2021 by + * Copyright (C) 1996-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/rasterrs.h b/Build/source/libs/freetype2/freetype-src/src/raster/rasterrs.h index 852dd5bc319..a29651a6c54 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/rasterrs.h +++ b/Build/source/libs/freetype2/freetype-src/src/raster/rasterrs.h @@ -4,7 +4,7 @@ * * monochrome renderer error codes (specification only). * - * Copyright (C) 2001-2021 by + * Copyright (C) 2001-2020 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used, diff --git a/Build/source/libs/freetype2/freetype-src/src/raster/rules.mk b/Build/source/libs/freetype2/freetype-src/src/raster/rules.mk index 7ffda772764..3e949d77416 100644 --- a/Build/source/libs/freetype2/freetype-src/src/raster/rules.mk +++ b/Build/source/libs/freetype2/freetype-src/src/raster/rules.mk @@ -3,7 +3,7 @@ # -# Copyright (C) 1996-2021 by +# Copyright (C) 1996-2020 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, |