Lines Matching refs:hint

60     size_t     j;          /* index of upper hint map edge   */
86 * Adjust stem hint for darkening here.
90 cf2_hint_init( CF2_Hint hint,
102 FT_ZERO( hint );
116 hint->csCoord = stemHint->max;
117 hint->flags = CF2_GhostBottom;
120 hint->flags = 0;
128 hint->flags = 0;
131 hint->csCoord = stemHint->min;
132 hint->flags = CF2_GhostTop;
147 * CoolType has a silent workaround that negates the hint width; for
158 hint->csCoord = stemHint->max;
159 hint->flags = CF2_PairBottom;
163 hint->csCoord = stemHint->min;
164 hint->flags = CF2_PairTop;
174 hint->csCoord = stemHint->min;
175 hint->flags = CF2_PairBottom;
179 hint->csCoord = stemHint->max;
180 hint->flags = CF2_PairTop;
187 if ( cf2_hint_isTop( hint ) )
188 hint->csCoord += 2 * font->darkenY;
190 hint->csCoord += hintOrigin;
191 hint->scale = scale;
192 hint->index = indexStemHint; /* index in original stem hint array */
194 /* if original stem hint has been used, use the same position */
195 if ( hint->flags != 0 && stemHint->used )
197 if ( cf2_hint_isTop( hint ) )
198 hint->dsCoord = stemHint->maxDS;
200 hint->dsCoord = stemHint->minDS;
202 cf2_hint_lock( hint );
205 hint->dsCoord = FT_MulFix( hint->csCoord, scale );
209 /* initialize an invalid hint map element */
211 cf2_hint_initZero( CF2_Hint hint )
213 FT_ZERO( hint );
218 cf2_hint_isValid( const CF2_Hint hint )
220 return (FT_Bool)( hint->flags != 0 );
225 cf2_hint_isPair( const CF2_Hint hint )
227 return (FT_Bool)( ( hint->flags &
233 cf2_hint_isPairTop( const CF2_Hint hint )
235 return (FT_Bool)( ( hint->flags & CF2_PairTop ) != 0 );
240 cf2_hint_isTop( const CF2_Hint hint )
242 return (FT_Bool)( ( hint->flags &
248 cf2_hint_isBottom( const CF2_Hint hint )
250 return (FT_Bool)( ( hint->flags &
256 cf2_hint_isLocked( const CF2_Hint hint )
258 return (FT_Bool)( ( hint->flags & CF2_Locked ) != 0 );
263 cf2_hint_isSynthetic( const CF2_Hint hint )
265 return (FT_Bool)( ( hint->flags & CF2_Synthetic ) != 0 );
270 cf2_hint_lock( CF2_Hint hint )
272 hint->flags |= CF2_Locked;
302 /* transform character space coordinate to device space using hint map */
354 * This hinting policy moves a hint pair in device space so that one of
361 * above have not yet been adjusted. If a hint above blocks an
376 * First pass is bottom-up (font hint order) without look-ahead.
388 /* index of upper edge (same value for ghost hint) */
399 /* hint edge is not locked, we can adjust it */
559 /* insert hint edges into map, sorted by csCoord */
619 return; /* ignore overlapping stem hint */
624 return; /* ignore overlapping stem hint */
628 return; /* ignore overlapping stem hint */
631 /* recompute device space locations using initial hint map */
637 /* Use hint map to position the center of stem, and nominal scale */
662 * don't currently have a way to delete a conflicting hint once it has
664 * initial hint map for second path, glyph 945 (the perispomeni (tilde)
672 * edge hint. This produces a small mismatch between the first and
673 * last points of this path, even though the hint masks are the same.
740 * Synthetic hints are used in two ways. A hint at zero is inserted, if
741 * needed, in the initial hint map, to prevent translations from
743 * for ideographic dictionaries, then they are inserted in all hint
780 /* without a hint mask, assume all hints are active */
792 /* make a copy of the hint mask so we can modify it */
806 cf2_hint_initZero( &dummy ); /* invalid hint map element */
849 /* insert captured hint into map */
852 *maskPtr &= ~maskByte; /* turn off the bit for this hint */
866 /* initial hint map includes only captured hints plus maybe one at 0 */
870 * single hint map containing all captured hints. It is
873 * separate hint zones (we are ignoring hint zones for the
876 * A stem hint for the psili conflicts with the top edge hint
877 * for the base character. The stem hint gets priority because
880 * hint, and the psili does not. This creates different initial
899 /* construct a locked edge hint at 0 */
963 * hint zone.
966 /* adjust positions of hint edges that are not locked to blue zones */
969 /* save the position of all hints that were used in this hint map; */
994 /* hint map is ready to use */
1082 * Input `current' hint map (which is actually delayed by one element).
1215 * using a hint map. This calculation must use a HintMap that was valid
1291 /* use first hint map if closing */
1353 /* hint zone */
1634 /* true if new hint map not on close */
1642 * lines in CS at the start of a new hint map can generate non-zero
1643 * lines in DS due to hint substitution. We detect a change in hint
1659 * Ignore zero-length lines in CS where the hint map is the same