Go to the source code of this file.
|
| FT_BEGIN_HEADER | FT_MulDiv_No_Round (FT_Long a, FT_Long b, FT_Long c) |
| |
| | FT_Matrix_Multiply_Scaled (const FT_Matrix *a, FT_Matrix *b, FT_Long scaling) |
| |
| | FT_Matrix_Check (const FT_Matrix *matrix) |
| |
| | FT_Vector_Transform_Scaled (FT_Vector *vector, const FT_Matrix *matrix, FT_Long scaling) |
| |
| | FT_Vector_NormLen (FT_Vector *vector) |
| |
| | ft_corner_orientation (FT_Pos in_x, FT_Pos in_y, FT_Pos out_x, FT_Pos out_y) |
| |
| | ft_corner_is_flat (FT_Pos in_x, FT_Pos in_y, FT_Pos out_x, FT_Pos out_y) |
| |
| | FT_MSB (FT_UInt32 z) |
| |
| | FT_Hypot (FT_Fixed x, FT_Fixed y) |
| |
◆ ADD_INT
◆ ADD_INT32
| #define ADD_INT32 |
( |
|
a, |
|
|
|
b |
|
) |
| (FT_Int32)( (FT_UInt32)(a) + (FT_UInt32)(b) ) |
◆ ADD_LONG
◆ F2DOT14_TO_FIXED
◆ FIXED_TO_INT
◆ INT_TO_F26DOT6
◆ INT_TO_F2DOT14
◆ INT_TO_FIXED
◆ MUL_INT
◆ MUL_INT32
| #define MUL_INT32 |
( |
|
a, |
|
|
|
b |
|
) |
| (FT_Int32)( (FT_UInt32)(a) * (FT_UInt32)(b) ) |
◆ MUL_LONG
◆ NEG_INT
◆ NEG_INT32
| #define NEG_INT32 |
( |
|
a | ) |
(FT_Int32)( (FT_UInt32)0 - (FT_UInt32)(a) ) |
◆ NEG_LONG
◆ ROUND_F26DOT6
| #define ROUND_F26DOT6 |
( |
|
x | ) |
( ( (x) + 32 - ( x < 0 ) ) & -64 ) |
◆ SUB_INT
◆ SUB_INT32
| #define SUB_INT32 |
( |
|
a, |
|
|
|
b |
|
) |
| (FT_Int32)( (FT_UInt32)(a) - (FT_UInt32)(b) ) |
◆ SUB_LONG
◆ ft_corner_is_flat()
Definition at line 1046 of file ftcalc.c.
1050 {
1052 FT_Pos ay = in_y + out_y;
1053
1054 FT_Pos d_in, d_out, d_hypot;
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1079
1080
1081
1082
1083
1084 return ( d_in + d_out - d_hypot ) < ( d_hypot >> 4 );
1085 }
FT_BEGIN_HEADER typedef signed long FT_Pos
ecx edi movl ebx edx edi decl ecx esi eax jecxz decl eax andl eax esi movl edx movl TEMP incl eax andl eax ecx incl ebx testl eax jnz xchgl ecx incl TEMP esp ecx subl ebx pushl ecx ecx edx ecx shrl ecx mm0 mm4 mm0 mm4 mm1 mm5 mm1 mm5 mm2 mm6 mm2 mm6 mm3 mm7 mm3 mm7 paddd mm0 paddd mm4 paddd mm0 paddd mm4 paddd mm0 paddd mm4 movq mm1 movq mm5 psrlq mm1 psrlq mm5 paddd mm0 paddd mm4 psrad mm0 psrad mm4 packssdw mm0 packssdw mm4 mm1 punpckldq mm0 pand mm1 pand mm0 por mm1 movq edi esi edx edi decl ecx jnz popl ecx andl ecx jecxz mm0 mm0 mm1 mm1 mm2 mm2 mm3 mm3 paddd mm0 paddd mm0 paddd mm0 movq mm1 psrlq mm1 paddd mm0 psrad mm0 packssdw mm0 movd eax movw ax
Referenced by af_glyph_hints_reload().
◆ ft_corner_orientation()
Definition at line 980 of file ftcalc.c.
984 {
985
986
987
988#ifdef FT_LONG64
989
990 FT_Int64 delta = SUB_INT64( MUL_INT64( in_x, out_y ),
991 MUL_INT64( in_y, out_x ) );
992
993
994 return ( delta > 0 ) - ( delta < 0 );
995
996#else
997
999
1000
1003 {
1006
1007
1012 else
1014 }
1015 else
1016 {
1018
1019
1020
1023
1024 if (
z1.hi >
z2.hi )
1026 else if (
z1.hi <
z2.hi )
1028 else if (
z1.lo >
z2.lo )
1030 else if (
z1.lo <
z2.lo )
1032 else
1034 }
1035
1036
1038
1039#endif
1040 }
static void ft_multo64(FT_UInt32 x, FT_UInt32 y, FT_Int64 *z)
static double float double int float z1
static double float double int float double float z2
◆ FT_Hypot()
Definition at line 154 of file ftcalc.c.
156 {
158
159
162
164 }
FT_Vector_Length(FT_Vector *vec)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
Referenced by TT_Process_Composite_Component().
◆ FT_Matrix_Check()
Definition at line 750 of file ftcalc.c.
751 {
757
758
760 return 0;
761
766
767
768
769
770
771
772
773
774
775 maxval = 0;
777
778 for (
i = 0;
i < 4;
i++ )
779 {
780 if (
val[
i] > maxval )
782 if (
val[
i] &&
val[
i] < nonzero_minval )
783 nonzero_minval =
val[
i];
784 }
785
786
787 if ( maxval > 0x7FFFFFFFL )
788 return 0;
789
790 if ( maxval > 23170 )
791 {
793
794
796 return 0;
797
802 }
803 else
805
807 temp2 =
m.xx *
m.xx +
m.xy *
m.xy +
m.yx *
m.yx +
m.yy *
m.yy;
808
809 if ( temp1 == 0 ||
810 temp2 / temp1 > 50 )
811 return 0;
812
813 return 1;
814 }
FT_DivFix(FT_Long a_, FT_Long b_)
GLenum GLenum GLenum GLenum GLenum scale
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Referenced by cff_parse_font_matrix(), cid_parse_font_matrix(), t1_parse_font_matrix(), and t42_parse_font_matrix().
◆ FT_Matrix_Multiply_Scaled()
Definition at line 719 of file ftcalc.c.
722 {
724
726
727
729 return;
730
739
744 }
FT_MulDiv(FT_Long a_, FT_Long b_, FT_Long c_)
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
Referenced by cff_face_init().
◆ FT_MSB()
◆ FT_MulDiv_No_Round()
Definition at line 463 of file ftcalc.c.
466 {
469
470
471
472
476
480
483
484 else if (
a +
b <= 131071UL )
486
487 else
488 {
490
491
493
494
497 }
498
500
502 }
#define FT_MOVE_SIGN(x, x_unsigned, s)
static FT_UInt32 ft_div64by32(FT_UInt32 hi, FT_UInt32 lo, FT_UInt32 y)
◆ FT_Vector_NormLen()
Definition at line 845 of file ftcalc.c.
846 {
850 FT_UInt32
x,
y,
u,
v,
l;
852
853
856
859
860
862 {
866 }
868 {
872 }
873
874
875
876
877
878 l =
x >
y ?
x + (
y >> 1 )
880
883
885 {
888
889
890 l =
x >
y ?
x + (
y >> 1 )
892 }
893 else
894 {
898 }
899
900
901 b = 0x10000 - (FT_Int32)
l;
902
905
906
907 do
908 {
909 u = (FT_UInt32)( x_ + ( x_ *
b >> 16 ) );
910 v = (FT_UInt32)( y_ + ( y_ *
b >> 16 ) );
911
912
913
914
915 z = -(FT_Int32)(
u *
u +
v *
v ) / 0x200;
916 z =
z * ( ( 0x10000 +
b ) >> 8 ) / 0x10000;
917
919
921
924
925
926
927
928 l = (FT_UInt32)( 0x10000 + (FT_Int32)(
u *
x +
v *
y ) / 0x10000 );
931 else
933
935 }
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Referenced by FT_Outline_EmboldenXY().
◆ FT_Vector_Transform_Scaled()