[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] master d0e3239f3: [sdf, bsdf] Use shared FT_SqrtFixed.
From: |
Werner Lemberg |
Subject: |
[freetype2] master d0e3239f3: [sdf, bsdf] Use shared FT_SqrtFixed. |
Date: |
Mon, 6 May 2024 09:39:16 -0400 (EDT) |
branch: master
commit d0e3239f32a0fe71c234cf2c1ce7a90cb11b64bb
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
[sdf, bsdf] Use shared FT_SqrtFixed.
FT_SqrtFixed (95b0fe2a6dff) is faster and does not overflow.
* src/sdf/ftsdfcommin.h (square_root): Replace with a macro.
* src/sdf/ftsdfcommin.c (square_root): Remove function.
---
src/sdf/ftsdfcommon.c | 43 -------------------------------------------
src/sdf/ftsdfcommon.h | 3 +--
2 files changed, 1 insertion(+), 45 deletions(-)
diff --git a/src/sdf/ftsdfcommon.c b/src/sdf/ftsdfcommon.c
index 5841ded21..6b2cf7dfe 100644
--- a/src/sdf/ftsdfcommon.c
+++ b/src/sdf/ftsdfcommon.c
@@ -22,49 +22,6 @@
#include "ftsdfcommon.h"
- /**************************************************************************
- *
- * common functions
- *
- */
-
- /*
- * Original algorithm:
- *
- * https://github.com/chmike/fpsqrt
- *
- * Use this to compute the square root of a 16.16 fixed-point number.
- */
- FT_LOCAL_DEF( FT_16D16 )
- square_root( FT_16D16 val )
- {
- FT_ULong t, q, b, r;
-
-
- r = (FT_ULong)val;
- b = 0x40000000L;
- q = 0;
-
- while ( b > 0x40L )
- {
- t = q + b;
-
- if ( r >= t )
- {
- r -= t;
- q = t + b;
- }
-
- r <<= 1;
- b >>= 1;
- }
-
- q >>= 8;
-
- return (FT_16D16)q;
- }
-
-
/**************************************************************************
*
* format and sign manipulating functions
diff --git a/src/sdf/ftsdfcommon.h b/src/sdf/ftsdfcommon.h
index 44274e349..d0f623f9f 100644
--- a/src/sdf/ftsdfcommon.h
+++ b/src/sdf/ftsdfcommon.h
@@ -122,8 +122,7 @@ FT_BEGIN_HEADER
typedef FT_BBox FT_CBox; /* control box of a curve */
- FT_LOCAL( FT_16D16 )
- square_root( FT_16D16 val );
+#define square_root( x ) (FT_16D16)FT_SqrtFixed( (FT_UInt32)( x ) )
FT_LOCAL( FT_SDFFormat )
map_fixed_to_sdf( FT_16D16 dist,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] master d0e3239f3: [sdf, bsdf] Use shared FT_SqrtFixed.,
Werner Lemberg <=