[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] gsoc-anurag-2023 c41d05e8a: Render prelines
From: |
Werner Lemberg |
Subject: |
[freetype2] gsoc-anurag-2023 c41d05e8a: Render prelines |
Date: |
Thu, 7 Sep 2023 16:16:12 -0400 (EDT) |
branch: gsoc-anurag-2023
commit c41d05e8a20c03137356d72cbc6d8dc1508cebab
Author: Anurag Thakur <anurag105csec21@bpitindia.edu.in>
Commit: Anurag Thakur <anurag105csec21@bpitindia.edu.in>
Render prelines
---
src/base/ftobjs.c | 4 ++--
src/dense/ftdense.c | 36 ++++++++++++++++++++++++++++--------
2 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 7426449ed..ed491dd41 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -2668,8 +2668,8 @@
(double)vec.x / 64, (double)vec.y / 64 ));
//error = func_interface->line_to( &vec, user );
FT_PreLine pl = malloc(sizeof(FT_PreLineRec));
- pl->x1 = v_last.x/64;
- pl->y1 = v_last.y/64;
+ pl->x1 = ptr->x2;
+ pl->y1 = ptr->y2;
pl->x2 = vec.x/64;
pl->y2 = vec.y/64;
pl->next = NULL;
diff --git a/src/dense/ftdense.c b/src/dense/ftdense.c
index 4e91d439c..90f0dc3c2 100644
--- a/src/dense/ftdense.c
+++ b/src/dense/ftdense.c
@@ -85,9 +85,20 @@ dense_line_to( const FT_Vector* to, dense_worker* worker )
return 0;
}
+static int
+dense_line_to2( const FT_Vector* from, const FT_Vector* to, dense_worker*
worker )
+{
+ dense_move_to( from, worker );
+ dense_render_line( worker, UPSCALE( to->x ), UPSCALE( to->y ) );
+ dense_move_to( to, worker );
+ return 0;
+}
+
+
void
dense_render_line( dense_worker* worker, FT_Pos tox, FT_Pos toy )
{
+ printf("Line from %d, %d to %d, %d\n", worker->prev_x, worker->prev_y, tox,
toy);
FT26D6 fx = worker->prev_x>>2;
FT26D6 fy = worker->prev_y>>2;
@@ -422,18 +433,24 @@ dense_render_glyph( dense_worker* worker, const
FT_Bitmap* target, FT_PreLine pl
{
// FT_Error error = FT_Outline_Decompose( &( worker->outline ),
// &dense_decompose_funcs, worker );
- FT_Vector point = {100, 100};
- FT_Error error = dense_move_to(&point, worker);
+ FT_Vector point1 = {100, 100};
+ FT_Vector point2 = {100, 100};
+
+ FT_Error error = dense_move_to(&point1, worker);
while (pl!=NULL)
{
- point.x = pl->x2/64;
- point.y = pl->y2/64;
- dense_line_to(&point, worker);
+ point1.x = pl->x1;
+ point1.y = pl->y1;
+ point2.x = pl->x2;
+ point2.y = pl->y2;
+
+
+ dense_line_to2(&point1, &point2, worker);
pl= pl->next;
}
- point.x = 100;
- point.y = 100;
- dense_move_to(&point, worker);
+ // point.x = 100;
+ // point.y = 100;
+ // dense_move_to(&point, worker);
// Render into bitmap
const FT20D12* source = worker->m_a;
@@ -523,6 +540,9 @@ dense_raster_render( FT_Raster raster, const
FT_Raster_Params* params )
worker->outline = *outline;
+
+
+
if ( !target_map )
return FT_THROW( Invalid_Argument );
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] gsoc-anurag-2023 c41d05e8a: Render prelines,
Werner Lemberg <=