< prev index next >
src/java.desktop/share/native/libfreetype/src/base/ftstroke.c
Print this page
*** 84,103 ****
{
FT_Pos a, b;
base[4].x = base[2].x;
! b = base[1].x;
! a = base[3].x = ( base[2].x + b ) / 2;
! b = base[1].x = ( base[0].x + b ) / 2;
! base[2].x = ( a + b ) / 2;
base[4].y = base[2].y;
! b = base[1].y;
! a = base[3].y = ( base[2].y + b ) / 2;
! b = base[1].y = ( base[0].y + b ) / 2;
! base[2].y = ( a + b ) / 2;
}
static FT_Bool
ft_conic_is_small_enough( FT_Vector* base,
--- 84,105 ----
{
FT_Pos a, b;
base[4].x = base[2].x;
! a = base[0].x + base[1].x;
! b = base[1].x + base[2].x;
! base[3].x = b >> 1;
! base[2].x = ( a + b ) >> 2;
! base[1].x = a >> 1;
base[4].y = base[2].y;
! a = base[0].y + base[1].y;
! b = base[1].y + base[2].y;
! base[3].y = b >> 1;
! base[2].y = ( a + b ) >> 2;
! base[1].y = a >> 1;
}
static FT_Bool
ft_conic_is_small_enough( FT_Vector* base,
*** 151,182 ****
static void
ft_cubic_split( FT_Vector* base )
{
! FT_Pos a, b, c, d;
base[6].x = base[3].x;
! c = base[1].x;
! d = base[2].x;
! base[1].x = a = ( base[0].x + c ) / 2;
! base[5].x = b = ( base[3].x + d ) / 2;
! c = ( c + d ) / 2;
! base[2].x = a = ( a + c ) / 2;
! base[4].x = b = ( b + c ) / 2;
! base[3].x = ( a + b ) / 2;
base[6].y = base[3].y;
! c = base[1].y;
! d = base[2].y;
! base[1].y = a = ( base[0].y + c ) / 2;
! base[5].y = b = ( base[3].y + d ) / 2;
! c = ( c + d ) / 2;
! base[2].y = a = ( a + c ) / 2;
! base[4].y = b = ( b + c ) / 2;
! base[3].y = ( a + b ) / 2;
}
/* Return the average of `angle1' and `angle2'. */
/* This gives correct result even if `angle1' and `angle2' */
--- 153,188 ----
static void
ft_cubic_split( FT_Vector* base )
{
! FT_Pos a, b, c;
base[6].x = base[3].x;
! a = base[0].x + base[1].x;
! b = base[1].x + base[2].x;
! c = base[2].x + base[3].x;
! base[5].x = c >> 1;
! c += b;
! base[4].x = c >> 2;
! base[1].x = a >> 1;
! a += b;
! base[2].x = a >> 2;
! base[3].x = ( a + c ) >> 3;
base[6].y = base[3].y;
! a = base[0].y + base[1].y;
! b = base[1].y + base[2].y;
! c = base[2].y + base[3].y;
! base[5].y = c >> 1;
! c += b;
! base[4].y = c >> 2;
! base[1].y = a >> 1;
! a += b;
! base[2].y = a >> 2;
! base[3].y = ( a + c ) >> 3;
}
/* Return the average of `angle1' and `angle2'. */
/* This gives correct result even if `angle1' and `angle2' */
< prev index next >