Lines Matching defs:hint
86 PSH_Hint hint = table->hints;
89 for ( ; count > 0; count--, hint++ )
91 psh_hint_deactivate( hint );
92 hint->order = -1;
97 /* internal function to record a new hint */
102 PSH_Hint hint = table->hints + idx;
107 FT_TRACE0(( "psh_hint_table_record: invalid hint index %d\n", idx ));
112 if ( psh_hint_is_active( hint ) )
115 psh_hint_activate( hint );
117 /* now scan the current active hint set to check */
118 /* whether `hint' overlaps with another hint */
125 hint->parent = 0;
130 if ( psh_hint_overlap( hint, hint2 ) )
132 hint->parent = hint2;
139 table->sort_global[table->num_hints++] = hint;
215 /* activate the hints that are given by the initial hint masks */
234 FT_TRACE0(( "psh_hint_table_init: missing/incorrect hint masks\n" ));
270 PSH_Hint hint = &table->hints[idx];
273 if ( !psh_hint_is_active( hint ) )
285 if ( psh_hint_overlap( hint, hint2 ) )
295 psh_hint_activate( hint );
297 table->sort[count++] = hint;
405 PSH_Hint hint;
411 hint = table->hints + count;
413 hint->cur_pos = FT_MulFix( hint->org_pos, scale ) + delta;
414 hint->cur_len = FT_MulFix( hint->org_len, scale );
417 ps_debug_hint_func( hint, dimension );
440 psh_hint_align( PSH_Hint hint,
450 if ( !psh_hint_is_fitted( hint ) )
452 FT_Pos pos = FT_MulFix( hint->org_pos, scale ) + delta;
453 FT_Pos len = FT_MulFix( hint->org_len, scale );
460 /* ignore stem alignments when requested through the hint flags */
464 hint->cur_pos = pos;
465 hint->cur_len = len;
467 psh_hint_set_fitted( hint );
477 hint->cur_len = fit_len = len;
485 hint->org_pos + hint->org_len,
486 hint->org_pos,
493 hint->cur_pos = align.align_top - fit_len;
498 hint->cur_pos = align.align_bot;
503 hint->cur_pos = align.align_bot;
504 hint->cur_len = align.align_top - align.align_bot;
509 PSH_Hint parent = hint->parent;
527 cur_org_center = hint->org_pos + ( hint->org_len >> 1 );
533 hint->cur_pos = pos;
534 hint->cur_len = fit_len;
608 hint->cur_pos = pos + psh_hint_snap_stem_side_delta( pos, len );
609 hint->cur_len = len;
615 pos = hint->cur_pos;
616 len = hint->cur_len;
626 hint->cur_pos = align.align_top - len;
627 hint->cur_len = len;
631 hint->cur_len = len;
640 hint->cur_len = len;
646 hint->cur_pos = pos - ( len >> 1 );
647 hint->cur_len = len;
651 psh_hint_set_fitted( hint );
655 ps_debug_hint_func( hint, dimension );
668 psh_hint_align_light( PSH_Hint hint,
678 if ( !psh_hint_is_fitted( hint ) )
680 FT_Pos pos = FT_MulFix( hint->org_pos, scale ) + delta;
681 FT_Pos len = FT_MulFix( hint->org_len, scale );
688 /* ignore stem alignments when requested through the hint flags */
692 hint->cur_pos = pos;
693 hint->cur_len = len;
695 psh_hint_set_fitted( hint );
701 hint->cur_len = fit_len;
709 hint->org_pos + hint->org_len,
710 hint->org_pos,
717 hint->cur_pos = align.align_top - fit_len;
722 hint->cur_pos = align.align_bot;
727 hint->cur_pos = align.align_bot;
728 hint->cur_len = align.align_top - align.align_bot;
733 PSH_Hint parent = hint->parent;
748 cur_org_center = hint->org_pos + ( hint->org_len / 2 );
832 hint->cur_pos = pos;
836 psh_hint_set_fitted( hint );
840 ps_debug_hint_func( hint, dimension );
854 PSH_Hint hint;
878 hint = table->hints;
881 for ( ; count > 0; count--, hint++ )
882 psh_hint_align( hint, globals, dimension, glyph );
1196 point->hint = NULL;
1551 PSH_Hint hint = sort[nn];
1552 FT_Pos d = org_u - hint->org_pos;
1559 point->hint = hint;
1571 PSH_Hint hint = sort[nn];
1572 FT_Pos d = org_u - hint->org_pos - hint->org_len;
1579 point->hint = hint;
1608 PSH_Hint hint = sort[nn];
1609 FT_Pos d = org_u - hint->org_pos;
1615 point->hint = hint;
1625 PSH_Hint hint = sort[nn];
1626 FT_Pos d = org_u - hint->org_pos - hint->org_len;
1632 point->hint = hint;
1639 if ( point->hint == NULL )
1643 PSH_Hint hint = sort[nn];
1646 if ( org_u >= hint->org_pos &&
1647 org_u <= hint->org_pos + hint->org_len )
1649 point->hint = hint;
1674 /* has an `in' or `out' tangent parallel to the hint's direction */
1736 /* now, certain points may have been attached to a hint and */
1744 if ( point->hint && !psh_point_is_strong( point ) )
1840 PSH_Hint hint = point->hint;
1843 if ( hint )
1849 point->cur_u = hint->cur_pos;
1852 point->cur_u = hint->cur_pos + hint->cur_len;
1856 delta = point->org_u - hint->org_pos;
1859 point->cur_u = hint->cur_pos + FT_MulFix( delta, scale );
1861 else if ( delta >= hint->org_len )
1862 point->cur_u = hint->cur_pos + hint->cur_len +
1863 FT_MulFix( delta - hint->org_len, scale );
1865 else /* hint->org_len > 0 */
1866 point->cur_u = hint->cur_pos +
1867 FT_MulDiv( delta, hint->cur_len,
1868 hint->org_len );