1520 segment_dir = major_dir;
1522 axis->num_segments = 0;
1551 for ( ; contour < contour_limit; contour++ )
1562 FT_Pos min_coord = 32000;
1563 FT_Pos max_coord = -32000;
1566 FT_Pos min_on_coord = 32000;
1567 FT_Pos max_on_coord = -32000;
1573 FT_Pos prev_min_pos = min_pos;
1574 FT_Pos prev_max_pos = max_pos;
1575 FT_Pos prev_min_coord = min_coord;
1576 FT_Pos prev_max_coord = max_coord;
1579 FT_Pos prev_min_on_coord = min_on_coord;
1580 FT_Pos prev_max_on_coord = max_on_coord;
1621 if (
v < min_coord )
1624 min_flags =
point->flags;
1626 if (
v > max_coord )
1629 max_flags =
point->flags;
1636 if (
v < min_on_coord )
1638 if (
v > max_on_coord )
1648 if ( !prev_segment || segment->first != prev_segment->
last )
1653 segment->last =
point;
1654 segment->pos = (
FT_Short)( ( min_pos + max_pos ) >> 1 );
1655 segment->delta = (
FT_Short)( ( max_pos - min_pos ) >> 1 );
1661 ( max_on_coord - min_on_coord ) < flat_threshold )
1664 segment->min_coord = (
FT_Short)min_coord;
1665 segment->max_coord = (
FT_Short)max_coord;
1666 segment->height = segment->max_coord - segment->min_coord;
1668 prev_segment = segment;
1669 prev_min_pos = min_pos;
1670 prev_max_pos = max_pos;
1671 prev_min_coord = min_coord;
1672 prev_max_coord = max_coord;
1673 prev_min_flags = min_flags;
1674 prev_max_flags = max_flags;
1675 prev_min_on_coord = min_on_coord;
1676 prev_max_on_coord = max_on_coord;
1693 if ( prev_min_pos < min_pos )
1694 min_pos = prev_min_pos;
1695 if ( prev_max_pos > max_pos )
1696 max_pos = prev_max_pos;
1698 if ( prev_min_coord < min_coord )
1700 min_coord = prev_min_coord;
1701 min_flags = prev_min_flags;
1703 if ( prev_max_coord > max_coord )
1705 max_coord = prev_max_coord;
1706 max_flags = prev_max_flags;
1709 if ( prev_min_on_coord < min_on_coord )
1710 min_on_coord = prev_min_on_coord;
1711 if ( prev_max_on_coord > max_on_coord )
1712 max_on_coord = prev_max_on_coord;
1721 ( max_on_coord - min_on_coord ) < flat_threshold )
1736 if (
FT_ABS( prev_max_coord - prev_min_coord ) >
1737 FT_ABS( max_coord - min_coord ) )
1741 if ( min_pos < prev_min_pos )
1742 prev_min_pos = min_pos;
1743 if ( max_pos > prev_max_pos )
1744 prev_max_pos = max_pos;
1748 prev_max_pos ) >> 1 );
1750 prev_min_pos ) >> 1 );
1756 if ( prev_min_pos < min_pos )
1757 min_pos = prev_min_pos;
1758 if ( prev_max_pos > max_pos )
1759 max_pos = prev_max_pos;
1761 segment->last =
point;
1762 segment->pos = (
FT_Short)( ( min_pos + max_pos ) >> 1 );
1763 segment->delta = (
FT_Short)( ( max_pos - min_pos ) >> 1 );
1766 ( max_on_coord - min_on_coord ) < flat_threshold )
1769 segment->min_coord = (
FT_Short)min_coord;
1770 segment->max_coord = (
FT_Short)max_coord;
1771 segment->height = segment->max_coord -
1774 *prev_segment = *segment;
1776 prev_min_pos = min_pos;
1777 prev_max_pos = max_pos;
1778 prev_min_coord = min_coord;
1779 prev_max_coord = max_coord;
1780 prev_min_flags = min_flags;
1781 prev_max_flags = max_flags;
1782 prev_min_on_coord = min_on_coord;
1783 prev_max_on_coord = max_on_coord;
1787 axis->num_segments--;
1822 segment->dir = (
FT_Char)segment_dir;
1823 segment->first =
point;
1824 segment->last =
point;
1829 prev_segment = segment - 1;
1831 min_pos = max_pos =
point->u;
1832 min_coord = max_coord =
point->v;
1833 min_flags = max_flags =
point->flags;
1837 min_on_coord = 32000;
1838 max_on_coord = -32000;
1841 min_on_coord = max_on_coord =
point->v;
1857 segment->height = 0;
1874 AF_Segment segments_end = segments + axis->num_segments;
1877 for ( segment = segments; segment < segments_end; segment++ )
1885 if ( first_v < last_v )
1891 if (
p->v < first_v )
1892 segment->height = (
FT_Short)( segment->height +
1893 ( ( first_v -
p->v ) >> 1 ) );
1896 if (
p->v > last_v )
1897 segment->height = (
FT_Short)( segment->height +
1898 ( (
p->v - last_v ) >> 1 ) );
1906 if (
p->v > first_v )
1907 segment->height = (
FT_Short)( segment->height +
1908 ( (
p->v - first_v ) >> 1 ) );
1911 if (
p->v < last_v )
1912 segment->height = (
FT_Short)( segment->height +
1913 ( ( last_v -
p->v ) >> 1 ) );
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
namespace GUID const ADDRINFOEXW * hints
#define FLAT_THRESHOLD(x)
FT_BEGIN_HEADER typedef signed long FT_Pos
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
struct AF_LatinMetricsRec_ * AF_LatinMetrics
enum AF_Direction_ AF_Direction
static char memory[1024 *256]
FT_BEGIN_HEADER typedef unsigned char FT_Bool
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
af_axis_hints_new_segment(AF_AxisHints axis, FT_Memory memory, AF_Segment *asegment)