[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] gsoc-anurag-2022 ca00d34af 2/3: Fixed point: added minmax an
From: |
Werner Lemberg |
Subject: |
[freetype2] gsoc-anurag-2022 ca00d34af 2/3: Fixed point: added minmax and changed array type |
Date: |
Mon, 3 Oct 2022 17:45:43 -0400 (EDT) |
branch: gsoc-anurag-2022
commit ca00d34af974adf561cb2a3109df31e5e7300f3b
Author: Anurag Thakur <anurag105csec21@bpitindia.edu.in>
Commit: Anurag Thakur <anurag105csec21@bpitindia.edu.in>
Fixed point: added minmax and changed array type
---
src/dense/ftdense.c | 35 +++++++++++++++++++++--------------
src/dense/ftdense.h | 4 +++-
2 files changed, 24 insertions(+), 15 deletions(-)
diff --git a/src/dense/ftdense.c b/src/dense/ftdense.c
index e6492f633..3bf94377e 100644
--- a/src/dense/ftdense.c
+++ b/src/dense/ftdense.c
@@ -58,6 +58,22 @@ dense_line_to( const FT_Vector* to, dense_worker* worker )
dense_move_to( to, worker );
return 0;
}
+
+FT26D6 max(FT26D6 x, FT26D6 y){
+ if(x > y){
+ return x;
+ }
+
+ return y;
+}
+
+FT26D6 min(FT26D6 x, FT26D6 y){
+ if(x < y){
+ return x;
+ }
+
+ return y;
+}
void
swap( long int* a, long int* b )
{
@@ -391,16 +407,15 @@ dense_render_glyph( dense_worker* worker, const
FT_Bitmap* target )
// offset = _mm_shuffle_ps(x, x, _MM_SHUFFLE(3, 3, 3, 3));
// }
- int valnew = 0;
- float value = 0.0f;
+ FT20D12 valnew = 0;
+ //float value = 0.0f;
while ( dest < dest_end )
{
- valnew += (int)(*source++ * 1048576.0f);
+ valnew += *source++;
-
- if(valnew > 10){
+ if(valnew > 0){
int nnew = valnew * 255;
- nnew >>= 20;
+ nnew >>= 4;
if(nnew>255)nnew=255;
*dest = (unsigned char)nnew;
@@ -421,14 +436,6 @@ dense_render_glyph( dense_worker* worker, const FT_Bitmap*
target )
dest++;
}
- // 12_20 integer
- // int value = 0;
- // while ( dest < dest_end )
- // {
- // if(*source != 0.0f){
- // printf("%f\n", *source);
- // }
- // value += (int) (*source++ * 1048576.0f);
// if ( value > 0.0f )
diff --git a/src/dense/ftdense.h b/src/dense/ftdense.h
index 9b74979d8..bc6d16c61 100644
--- a/src/dense/ftdense.h
+++ b/src/dense/ftdense.h
@@ -41,11 +41,13 @@ extern "C"
#endif
typedef long TPos;
+ typedef unsigned int FT26D6;
+ typedef signed int FT20D12;
typedef struct
{
/** The array used to store signed area differences. */
- float* m_a;
+ FT20D12* m_a;
/** The number of elements in m_a. */
int m_a_size;
/** The width of the current raster in pixels. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] gsoc-anurag-2022 ca00d34af 2/3: Fixed point: added minmax and changed array type,
Werner Lemberg <=