summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/freetype/src/sdf
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/freetype/src/sdf')
-rw-r--r--src/3rdparty/freetype/src/sdf/ftbsdf.c17
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdf.c41
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdf.h2
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfcommon.c8
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfcommon.h6
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdferrs.h2
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfrend.c37
-rw-r--r--src/3rdparty/freetype/src/sdf/ftsdfrend.h2
-rw-r--r--src/3rdparty/freetype/src/sdf/module.mk2
-rw-r--r--src/3rdparty/freetype/src/sdf/rules.mk2
-rw-r--r--src/3rdparty/freetype/src/sdf/sdf.c2
11 files changed, 65 insertions, 56 deletions
diff --git a/src/3rdparty/freetype/src/sdf/ftbsdf.c b/src/3rdparty/freetype/src/sdf/ftbsdf.c
index 1328ac4988..e472738339 100644
--- a/src/3rdparty/freetype/src/sdf/ftbsdf.c
+++ b/src/3rdparty/freetype/src/sdf/ftbsdf.c
@@ -4,7 +4,7 @@
*
* Signed Distance Field support for bitmap fonts (body only).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
@@ -1116,13 +1116,13 @@
goto Exit;
}
- spread = FT_INT_16D16( worker->params.spread );
+ spread = (FT_16D16)FT_INT_16D16( worker->params.spread );
#if USE_SQUARED_DISTANCES
- sp_sq = FT_INT_16D16( worker->params.spread *
- worker->params.spread );
+ sp_sq = (FT_16D16)FT_INT_16D16( worker->params.spread *
+ worker->params.spread );
#else
- sp_sq = FT_INT_16D16( worker->params.spread );
+ sp_sq = (FT_16D16)FT_INT_16D16( worker->params.spread );
#endif
for ( j = 0; j < r; j++ )
@@ -1173,9 +1173,12 @@
/* called when adding a new module through @FT_Add_Module */
static FT_Error
- bsdf_raster_new( FT_Memory memory,
- BSDF_PRaster* araster )
+ bsdf_raster_new( void* memory_, /* FT_Memory */
+ FT_Raster* araster_ ) /* BSDF_PRaster* */
{
+ FT_Memory memory = (FT_Memory)memory_;
+ BSDF_PRaster* araster = (BSDF_PRaster*)araster_;
+
FT_Error error;
BSDF_PRaster raster = NULL;
diff --git a/src/3rdparty/freetype/src/sdf/ftsdf.c b/src/3rdparty/freetype/src/sdf/ftsdf.c
index ffac8bf465..bc4625d984 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdf.c
+++ b/src/3rdparty/freetype/src/sdf/ftsdf.c
@@ -4,7 +4,7 @@
*
* Signed Distance Field support for outline fonts (body).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
@@ -871,7 +871,7 @@
cbox.yMax = edge.control_b.y;
is_set = 1;
- /* fall through */
+ FALL_THROUGH;
case SDF_EDGE_CONIC:
if ( is_set )
@@ -899,7 +899,7 @@
is_set = 1;
}
- /* fall through */
+ FALL_THROUGH;
case SDF_EDGE_LINE:
if ( is_set )
@@ -1293,7 +1293,7 @@
/* Calculate the number of necessary bisections. Each */
/* bisection causes a four-fold reduction of the deviation, */
/* hence we bisect the Bezier curve until the deviation */
- /* becomes less than 1/8th of a pixel. For more details */
+ /* becomes less than 1/8 of a pixel. For more details */
/* check file `ftgrays.c`. */
num_splits = 1;
while ( dx > ONE_PIXEL / 8 )
@@ -1939,7 +1939,7 @@
/* now factor is 16.16 */
factor = FT_DivFix( factor, sq_line_length );
- /* clamp the factor between 0.0 and 1.0 in fixed point */
+ /* clamp the factor between 0.0 and 1.0 in fixed-point */
if ( factor > FT_INT_16D16( 1 ) )
factor = FT_INT_16D16( 1 );
if ( factor < 0 )
@@ -2109,7 +2109,8 @@
FT_Error error = FT_Err_Ok;
FT_26D6_Vec aA, bB; /* A, B in the above comment */
- FT_26D6_Vec nearest_point; /* point on curve nearest to `point` */
+ FT_26D6_Vec nearest_point = { 0, 0 };
+ /* point on curve nearest to `point` */
FT_26D6_Vec direction; /* direction of curve at `nearest_point` */
FT_26D6_Vec p0, p1, p2; /* control points of a conic curve */
@@ -2370,11 +2371,11 @@
* ```
*
* (6) Our task is to find a value of `t` such that the above equation
- * `Q(t)` becomes zero, this is, the point-to-curve vector makes
+ * `Q(t)` becomes zero, that is, the point-to-curve vector makes
* 90~degrees with the curve. We solve this with the Newton-Raphson
* method.
*
- * (7) We first assume an arbitary value of factor `t`, which we then
+ * (7) We first assume an arbitrary value of factor `t`, which we then
* improve.
*
* ```
@@ -2405,7 +2406,8 @@
FT_Error error = FT_Err_Ok;
FT_26D6_Vec aA, bB, cC; /* A, B, C in the above comment */
- FT_26D6_Vec nearest_point; /* point on curve nearest to `point` */
+ FT_26D6_Vec nearest_point = { 0, 0 };
+ /* point on curve nearest to `point` */
FT_26D6_Vec direction; /* direction of curve at `nearest_point` */
FT_26D6_Vec p0, p1, p2; /* control points of a conic curve */
@@ -2682,11 +2684,11 @@
* ```
*
* (6) Our task is to find a value of `t` such that the above equation
- * `Q(t)` becomes zero, this is, the point-to-curve vector makes
+ * `Q(t)` becomes zero, that is, the point-to-curve vector makes
* 90~degree with curve. We solve this with the Newton-Raphson
* method.
*
- * (7) We first assume an arbitary value of factor `t`, which we then
+ * (7) We first assume an arbitrary value of factor `t`, which we then
* improve.
*
* ```
@@ -2716,8 +2718,9 @@
FT_Error error = FT_Err_Ok;
- FT_26D6_Vec aA, bB, cC, dD; /* A, B, C in the above comment */
- FT_16D16_Vec nearest_point; /* point on curve nearest to `point` */
+ FT_26D6_Vec aA, bB, cC, dD; /* A, B, C, D in the above comment */
+ FT_16D16_Vec nearest_point = { 0, 0 };
+ /* point on curve nearest to `point` */
FT_16D16_Vec direction; /* direction of curve at `nearest_point` */
FT_26D6_Vec p0, p1, p2, p3; /* control points of a cubic curve */
@@ -3164,7 +3167,7 @@
if ( min_dist.distance > sp_sq )
min_dist.distance = sp_sq;
- /* square_root the values and fit in a 6.10 fixed point */
+ /* square_root the values and fit in a 6.10 fixed-point */
if ( USE_SQUARED_DISTANCES )
min_dist.distance = square_root( min_dist.distance );
@@ -3256,7 +3259,7 @@
/* and also determine the signs properly. */
SDF_Signed_Distance* dists = NULL;
- const FT_16D16 fixed_spread = FT_INT_16D16( spread );
+ const FT_16D16 fixed_spread = (FT_16D16)FT_INT_16D16( spread );
if ( !shape || !bitmap )
@@ -3759,9 +3762,13 @@
*/
static FT_Error
- sdf_raster_new( FT_Memory memory,
- SDF_PRaster* araster )
+ sdf_raster_new( void* memory_, /* FT_Memory */
+ FT_Raster* araster_ ) /* SDF_PRaster* */
{
+ FT_Memory memory = (FT_Memory)memory_;
+ SDF_PRaster* araster = (SDF_PRaster*)araster_;
+
+
FT_Error error;
SDF_PRaster raster = NULL;
diff --git a/src/3rdparty/freetype/src/sdf/ftsdf.h b/src/3rdparty/freetype/src/sdf/ftsdf.h
index 5f6b3f52aa..234c075b0a 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdf.h
+++ b/src/3rdparty/freetype/src/sdf/ftsdf.h
@@ -4,7 +4,7 @@
*
* Signed Distance Field support (specification).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
diff --git a/src/3rdparty/freetype/src/sdf/ftsdfcommon.c b/src/3rdparty/freetype/src/sdf/ftsdfcommon.c
index 072a36ea6c..5052201e22 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdfcommon.c
+++ b/src/3rdparty/freetype/src/sdf/ftsdfcommon.c
@@ -4,7 +4,7 @@
*
* Auxiliary data for Signed Distance Field support (body).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
@@ -33,7 +33,7 @@
*
* https://github.com/chmike/fpsqrt
*
- * Use this to compute the square root of a 16.16 fixed point number.
+ * Use this to compute the square root of a 16.16 fixed-point number.
*/
FT_LOCAL_DEF( FT_16D16 )
square_root( FT_16D16 val )
@@ -72,8 +72,8 @@
*/
/*
- * Convert 16.16 fixed point values to the desired output format.
- * In this case we reduce 16.16 fixed point values to normalized
+ * Convert 16.16 fixed-point values to the desired output format.
+ * In this case we reduce 16.16 fixed-point values to normalized
* 8-bit values.
*
* The `max_value` in the parameter is the maximum value in the
diff --git a/src/3rdparty/freetype/src/sdf/ftsdfcommon.h b/src/3rdparty/freetype/src/sdf/ftsdfcommon.h
index af4490bbca..60ca9773e3 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdfcommon.h
+++ b/src/3rdparty/freetype/src/sdf/ftsdfcommon.h
@@ -4,7 +4,7 @@
*
* Auxiliary data for Signed Distance Field support (specification).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
@@ -115,8 +115,8 @@ FT_BEGIN_HEADER
typedef FT_Vector FT_26D6_Vec; /* with 26.6 fixed-point components */
typedef FT_Vector FT_16D16_Vec; /* with 16.16 fixed-point components */
- typedef FT_Fixed FT_16D16; /* 16.16 fixed-point representation */
- typedef FT_Fixed FT_26D6; /* 26.6 fixed-point representation */
+ typedef FT_Int32 FT_16D16; /* 16.16 fixed-point representation */
+ typedef FT_Int32 FT_26D6; /* 26.6 fixed-point representation */
typedef FT_Byte FT_SDFFormat; /* format to represent SDF data */
typedef FT_BBox FT_CBox; /* control box of a curve */
diff --git a/src/3rdparty/freetype/src/sdf/ftsdferrs.h b/src/3rdparty/freetype/src/sdf/ftsdferrs.h
index b28867609a..519db0fc26 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdferrs.h
+++ b/src/3rdparty/freetype/src/sdf/ftsdferrs.h
@@ -4,7 +4,7 @@
*
* Signed Distance Field error codes (specification only).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
diff --git a/src/3rdparty/freetype/src/sdf/ftsdfrend.c b/src/3rdparty/freetype/src/sdf/ftsdfrend.c
index b0213a40d3..5610c119f8 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdfrend.c
+++ b/src/3rdparty/freetype/src/sdf/ftsdfrend.c
@@ -4,7 +4,7 @@
*
* Signed Distance Field renderer interface (body).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
@@ -197,10 +197,10 @@
static FT_Module_Interface
- ft_sdf_requester( FT_Renderer render,
+ ft_sdf_requester( FT_Module module,
const char* module_interface )
{
- FT_UNUSED( render );
+ FT_UNUSED( module );
return ft_service_list_lookup( sdf_services, module_interface );
}
@@ -221,9 +221,9 @@
*/
static FT_Error
- ft_sdf_init( FT_Renderer render )
+ ft_sdf_init( FT_Module module ) /* SDF_Renderer */
{
- SDF_Renderer sdf_render = SDF_RENDERER( render );
+ SDF_Renderer sdf_render = SDF_RENDERER( module );
sdf_render->spread = DEFAULT_SPREAD;
@@ -236,9 +236,9 @@
static void
- ft_sdf_done( FT_Renderer render )
+ ft_sdf_done( FT_Module module )
{
- FT_UNUSED( render );
+ FT_UNUSED( module );
}
@@ -300,7 +300,7 @@
/* nothing to render */
if ( !bitmap->rows || !bitmap->pitch )
- return FT_Err_Ok;
+ goto Exit;
/* the padding will simply be equal to the `spread' */
x_pad = sdf_module->spread;
@@ -508,6 +508,10 @@
goto Exit;
}
+ /* nothing to render */
+ if ( !bitmap->rows || !bitmap->pitch )
+ goto Exit;
+
/* Do not generate SDF if the bitmap is not owned by the */
/* glyph: it might be that the source buffer is already freed. */
if ( !( slot->internal->flags & FT_GLYPH_OWN_BITMAP ) )
@@ -519,10 +523,6 @@
goto Exit;
}
- /* nothing to render */
- if ( !bitmap->rows || !bitmap->pitch )
- return FT_Err_Ok;
-
FT_Bitmap_New( &target );
/* padding will simply be equal to `spread` */
@@ -557,15 +557,14 @@
{
/* the glyph is successfully converted to a SDF */
if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
- {
FT_FREE( bitmap->buffer );
- slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
- }
- slot->bitmap = target;
- slot->bitmap_top += y_pad;
- slot->bitmap_left -= x_pad;
- slot->internal->flags |= FT_GLYPH_OWN_BITMAP;
+ slot->bitmap = target;
+ slot->bitmap_top += y_pad;
+ slot->bitmap_left -= x_pad;
+
+ if ( target.buffer )
+ slot->internal->flags |= FT_GLYPH_OWN_BITMAP;
}
else if ( target.buffer )
FT_FREE( target.buffer );
diff --git a/src/3rdparty/freetype/src/sdf/ftsdfrend.h b/src/3rdparty/freetype/src/sdf/ftsdfrend.h
index cdb9c5f02f..571ac833d3 100644
--- a/src/3rdparty/freetype/src/sdf/ftsdfrend.h
+++ b/src/3rdparty/freetype/src/sdf/ftsdfrend.h
@@ -4,7 +4,7 @@
*
* Signed Distance Field renderer interface (specification).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.
diff --git a/src/3rdparty/freetype/src/sdf/module.mk b/src/3rdparty/freetype/src/sdf/module.mk
index 772bc48bf7..e896d20e66 100644
--- a/src/3rdparty/freetype/src/sdf/module.mk
+++ b/src/3rdparty/freetype/src/sdf/module.mk
@@ -3,7 +3,7 @@
#
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 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/src/3rdparty/freetype/src/sdf/rules.mk b/src/3rdparty/freetype/src/sdf/rules.mk
index 5239d643ff..d7742413c3 100644
--- a/src/3rdparty/freetype/src/sdf/rules.mk
+++ b/src/3rdparty/freetype/src/sdf/rules.mk
@@ -3,7 +3,7 @@
#
-# Copyright (C) 2020-2022 by
+# Copyright (C) 2020-2023 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/src/3rdparty/freetype/src/sdf/sdf.c b/src/3rdparty/freetype/src/sdf/sdf.c
index 297ba9ab02..c159b08128 100644
--- a/src/3rdparty/freetype/src/sdf/sdf.c
+++ b/src/3rdparty/freetype/src/sdf/sdf.c
@@ -4,7 +4,7 @@
*
* FreeType Signed Distance Field renderer module component (body only).
*
- * Copyright (C) 2020-2022 by
+ * Copyright (C) 2020-2023 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* Written by Anuj Verma.