* docs/docmaker.py: Minor improvements to reduce unwanted spaces

and empty lines in output.
* docs/docmaker.py: Improved script to generate table of contents
and index pages.  It also supports wildcards on non Unix systems.

* include/freetype/*.h, include/freetype/cache/*.h: Updated comments
to include section definitions/delimitations for the API Reference
generator.

* include/freetype/freetype.h: Moved declaration of
`FT_Generic_Finalizer' and the `FT_Generic' structure to...
* include/freetype/fttypes.h: here.
This commit is contained in:
Werner Lemberg 2001-01-11 09:27:49 +00:00
parent dec12f44fa
commit 6e07332f94
21 changed files with 554 additions and 408 deletions

View File

@ -1,13 +1,22 @@
2000-01-09 David Turner <david.turner@freetype.org>
2001-01-10 Werner Lemberg <wl@gnu.org>
* docs/docmaker.py: improved script to generate table of contents and
index pages. it also supports wildcards on non Unix systems
* docs/docmaker.py: Minor improvements to reduce unwanted spaces
and empty lines in output.
* include/freetype/*.h, include/freetype/cache/*.h: updated comments
to include section definitions / delimitations for the API Reference
generator..
2001-01-09 David Turner <david.turner@freetype.org>
2000-01-04 Werner Lemberg <wl@gnu.org>
* docs/docmaker.py: Improved script to generate table of contents
and index pages. It also supports wildcards on non Unix systems.
* include/freetype/*.h, include/freetype/cache/*.h: Updated comments
to include section definitions/delimitations for the API Reference
generator.
* include/freetype/freetype.h: Moved declaration of
`FT_Generic_Finalizer' and the `FT_Generic' structure to...
* include/freetype/fttypes.h: here.
2001-01-04 Werner Lemberg <wl@gnu.org>
* include/freetype/ttnameid.h: Updated Unicode code range comments.

View File

@ -10,7 +10,7 @@
import fileinput, sys, string, glob
html_header = """
html_header = """\
<html>
<header>
<title>FreeType 2 API Reference</title>
@ -21,54 +21,39 @@ html_header = """
LI { text-align=justify }
</style>
</header>
<body text="#000000"
bgcolor="#FFFFFF"
link="#0000EF"
vlink="#51188E"
alink="#FF0000">
<body text=#000000
bgcolor=#FFFFFF
link=#0000EF
vlink=#51188E
alink=#FF0000>
<center><h1>FreeType 2 API Reference</h1></center>
"""
html_footer = """
html_footer = """\
</body>
</html>
"""
</html>"""
section_title_header = """
<center><h1>
"""
section_title_header = "<center><h1>"
section_title_footer = "</h1></center>"
section_title_footer = """
</h1></center>
"""
code_header = """
<font color=blue><pre>
"""
code_footer = """
</pre></font>
"""
code_header = "<font color=blue><pre>"
code_footer = "</pre></font>"
para_header = "<p>"
para_footer = "</p>"
block_header = """<center><hr width="750"><table width="750"><tr><td>"""
block_header = "<center><hr width=75%><table width=75%><tr><td>"
block_footer = "</td></tr></table></center>"
description_header = """<center><table width="650"><tr><td>"""
description_footer = """</td></tr></table></center><br>"""
description_header = "<center><table width=65%><tr><td>"
description_footer = "</td></tr></table></center><br>"
marker_header = """<center><table width="650" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>"""
marker_header = "<center><table width=65% cellpadding=5><tr bgcolor=#EEEEFF><td><em><b>"
marker_inter = "</b></em></td></tr><tr><td>"
marker_footer = "</td></tr></table></center>"
source_header = """<center><table width="650"><tr bgcolor="#D6E8FF" width="100%"><td><pre>
"""
source_footer = """</pre></table></center>
<br>
"""
source_header = "<center><table width=65%><tr bgcolor=#D6E8FF width=100%><td><pre>"
source_footer = "</pre></table></center><br>"
current_section = None
@ -206,10 +191,14 @@ class DocCode:
while l > 0 and string.strip( self.lines[l - 1] ) == "":
l = l - 1
print code_header
# the code footer should be directly appended to the last code
# line to avoid an additional blank line
#
sys.stdout.write( code_header )
for line in self.lines[0 : l]:
print line
print code_footer
sys.stdout.write( '\n' + line )
sys.stdout.write( code_footer )
#############################################################################
@ -219,7 +208,6 @@ class DocCode:
#
# The paragraph is filled line by line by the parser.
#
class DocParagraph:
def __init__( self ):
@ -229,13 +217,13 @@ class DocParagraph:
def add( self, line ):
# Get rid of unwanted spaces in the paragraph.
#
# The following line is the same as
# The following two lines are the same as
#
# self.words.extend( string.split( line ) )
#
# but older Python versions don't have the `extend' attribute.
#
last = len(self.words)
last = len( self.words )
self.words[last:last] = string.split( line )
@ -287,6 +275,7 @@ class DocParagraph:
print para_footer
#############################################################################
#
# DocContent is used to store the content of a given marker.
@ -320,8 +309,6 @@ class DocParagraph:
# The DocContent object is entirely built at creation time; you must
# pass a list of input text lines in the "lines_list" parameter.
#
#
class DocContent:
def __init__( self, lines_list ):
@ -390,7 +377,7 @@ class DocContent:
paragraph.add( line )
else:
# we're in code mode...
# we are in code mode...
#
line = aline
@ -454,7 +441,7 @@ class DocContent:
element.dump()
if field:
print "</field> "
print "</field>"
def dump_html( self ):
@ -475,7 +462,7 @@ class DocContent:
else:
if not in_table:
print '<table cellpadding=4><tr valign=top><td>'
print "<table cellpadding=4><tr valign=top><td>"
in_table = 1
else:
print "</td></tr><tr valign=top><td>"
@ -514,7 +501,7 @@ class DocContent:
######################################################################################
#############################################################################
#
#
# The DocBlock class is used to store a given comment block. It contains
@ -527,9 +514,9 @@ class DocContent:
# "self.source" is simply a list of text lines taken from the
# uncommented source itself.
#
# Finally, "self.name" is a simple identifier used to
# uniquely identify the block. it is taken from the first word of the first
# paragraphe of the first marker of a given block, i.e:
# Finally, "self.name" is a simple identifier used to uniquely identify
# the block. It is taken from the first word of the first
# paragraph of the first marker of a given block, i.e:
#
# <Type> Goo
# <Description> Bla bla bla
@ -539,13 +526,13 @@ class DocContent:
class DocBlock:
def __init__( self, block_line_list = [], source_line_list = [] ):
self.items = [] # current ( marker, contents ) list
self.section = None # section this block belongs to
marker = None # current marker
content = [] # current content lines list
alphanum = string.letters + string.digits + "_"
self.name = None
self.items = [] # current ( marker, contents ) list
self.section = None # section this block belongs to
marker = None # current marker
content = [] # current content lines list
alphanum = string.letters + string.digits + "_"
self.name = None
for line in block_line_list:
line2 = string.lstrip( line )
@ -613,7 +600,7 @@ class DocBlock:
content = DocContent( lines )
self.items.append( ( string.lower( marker ), content ) )
def find_content( self, marker ):
for item in self.items:
if ( item[0] == marker ):
@ -629,23 +616,24 @@ class DocBlock:
def dump_html( self ):
types = [ 'type', 'struct', 'functype', 'function', 'constant',
'enum', 'macro' ]
types = [ 'type', 'struct', 'functype', 'function',
'constant', 'enum', 'macro' ]
parameters = [ 'input', 'inout', 'output', 'return' ]
if not self.items:
return
# place html anchor when needed
if self.name:
print '<a name="'+self.name+'">'
# start of a block
#
print block_header
print "<h4>" + self.name + "</h4>"
# place html anchor if needed
#
if self.name:
print '<a name="' + self.name + '">'
print "<h4>" + self.name + "</h4>"
print "</a>"
# print source code
#
@ -657,12 +645,13 @@ class DocBlock:
while l >= 0 and string.strip( lines[l] ) == "":
l = l - 1
print source_header
print ""
for line in lines[0 : l + 1]:
print line
print line
print source_footer
in_table = 0
# dump each (marker,content) element
#
for element in self.items:
@ -675,19 +664,19 @@ class DocBlock:
print description_footer
elif not ( marker in types ):
print marker_header
print marker
print marker_inter
sys.stdout.write( marker_header )
sys.stdout.write( marker )
sys.stdout.write( marker_inter + '\n' )
content.dump_html()
print marker_footer
print ""
print block_footer
######################################################################################
#############################################################################
#
# The DocSection class is used to store a given documentation section.
#
@ -725,7 +714,7 @@ class DocSection:
# section
#
if self.elements.has_key( block.name ):
sys.stderr.write( "ERROR - duplicate element definition for " +
sys.stderr.write( "ERROR - duplicate element definition for " +
"'" + block.name + "' in section '" +
section.name + "'" )
sys.quit()
@ -767,8 +756,8 @@ class DocSectionList:
self.sections = {}
self.list = []
self.current_section = None
self.index = [] # sorted list of blocks that are not sections
self.index = [] # sorted list of blocks that
# are not sections
def append_section( self, block ):
name = string.lower( block.name )
@ -776,7 +765,7 @@ class DocSectionList:
if self.sections.has_key( name ):
# There is already a section with this name in our
# list. We'll try to complete it.
# list. We will try to complete it.
#
section = self.sections[name]
if section.abstract:
@ -789,7 +778,7 @@ class DocSectionList:
" for '" + name + "'" )
sys.quit()
else:
# The old section didn't contain an abstract; we're
# The old section didn't contain an abstract; we are
# now going to replace it.
#
section.abstract = abstract
@ -802,7 +791,7 @@ class DocSectionList:
section = DocSection( block )
self.sections[name] = section
self.list.append( section )
self.current_section = section
@ -822,12 +811,14 @@ class DocSectionList:
def prepare_files( self, file_prefix = None ):
# prepare the section list, by computing section filenames
# and the index
#
if file_prefix:
prefix = file_prefix + "-"
else:
prefix = ""
# compute section names
#
for section in self.sections.values():
title_content = section.block.find_content( "title" )
if title_content:
@ -835,7 +826,8 @@ class DocSectionList:
else:
section.title = "UNKNOWN_SECTION_TITLE!"
# compute section filenames
# compute section filenames
#
for section in self.sections.values():
section.filename = prefix + section.name + ".html"
@ -843,8 +835,9 @@ class DocSectionList:
self.index_filename = prefix + "index.html"
# compute the sorted block list for the index
#
self.index.sort( block_lexicographical_compare )
def dump_html_toc( self ):
# dump an html table of contents
@ -852,7 +845,7 @@ class DocSectionList:
old_stdout = sys.stdout
new_file = open( self.toc_filename, "w" )
sys.stdout = new_file
print html_header
print "<center><h1>Table of Contents</h1></center>"
@ -861,9 +854,9 @@ class DocSectionList:
for section in self.list:
if section.abstract:
print "<tr valign=top><td>"
print '<a href="' + section.filename + '">'
print section.title
print "</a></td><td>"
sys.stdout.write( '<a href="' + section.filename + '">' )
sys.stdout.write( section.title )
sys.stdout.write( "</a></td><td>" + '\n' )
section.abstract.dump_html()
print "</td></tr>"
@ -878,7 +871,6 @@ class DocSectionList:
old_stdout = sys.stdout
for section in self.sections.values():
if section.filename:
new_file = open( section.filename, "w" )
sys.stdout = new_file
@ -889,7 +881,6 @@ class DocSectionList:
def dump_html_index( self ):
old_stdout = sys.stdout
new_file = open( self.index_filename, "w" )
sys.stdout = new_file
@ -899,36 +890,32 @@ class DocSectionList:
line = 0
print html_header
print "<center><h1>General Index</h1></center>"
print "<center><table cellpadding=5><tr valign=top><td>"
for block in self.index:
sys.stdout.write( '<a href="' + block.section.filename +
'#' + block.name + '">' )
sys.stdout.write( block.name )
sys.stdout.write( "</a><br>" + '\n' )
print '<a href="'+block.section.filename+'#'+block.name+'">'
print block.name
print "</a><br>"
if line*num_columns >= total:
if line * num_columns >= total:
print "</td><td>"
line = 0
else:
line = line+1
line = line + 1
print "</tr></table></center>"
print html_footer
sys.stdout = old_stdout
# Filter a given list of DocBlocks. Returns a new list
# of DocBlock objects that only contains element whose
# "type" (i.e. first marker) is in the "types" parameter.
#
def filter_blocks_by_type( block_list, types ):
new_list = []
for block in block_list:
if block.items:
@ -964,7 +951,6 @@ def block_lexicographical_compare( b1, b2 ):
return 1
# dump a list block as a single HTML page
#
def dump_html_1( block_list ):
@ -976,18 +962,16 @@ def dump_html_1( block_list ):
print html_footer
def make_block_list_inner():
"""parse a file and extract comments blocks from it"""
file_list = []
sys.stderr.write( repr( sys.argv[1:] ) + '\n' )
for pathname in sys.argv[1:]:
newpath = glob.glob( pathname )
sys.stderr.write ( repr(newpath) + '\n' )
last = len(file_list)
sys.stderr.write( repr(newpath) + '\n' )
last = len( file_list )
file_list[last:last] = newpath
if len( file_list ) == 0:
@ -1006,9 +990,9 @@ def make_block_list_inner():
# 4 - wait for beginning of source (or comment ??)
# 5 - process source
#
comment = []
source = []
state = 0
comment = []
source = []
state = 0
for line in fileinput.input( file_list ):
l = len( line )
@ -1144,7 +1128,6 @@ def make_block_list_inner():
# create a list of DocBlock elements
#
def make_block_list():
source_block_list = make_block_list_inner()
list = []
@ -1155,7 +1138,6 @@ def make_block_list():
return list
# This function is only used for debugging
#
def dump_block_list( list ):
@ -1191,8 +1173,8 @@ def main( argv ):
section_list.dump_html_toc()
section_list.dump_html_sections()
section_list.dump_html_index()
# list2 = filter_blocks( list, ['type','macro','enum','constant', 'functype'] )
# list2 = filter_blocks( list, ['type','macro','enum','constant','functype'] )
# list2 = list
# list2.sort( block_lexicographical_compare )
@ -1203,6 +1185,7 @@ def main( argv ):
# If called from the command line
#
if __name__ == '__main__':
main( sys.argv )

View File

@ -35,9 +35,13 @@
FT_BEGIN_HEADER
/***
* <Section> cache_subsystem
*/
/*************************************************************************/
/* */
/* <Section> */
/* cache_subsystem */
/* */
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
@ -163,8 +167,10 @@ FT_BEGIN_HEADER
FT_UInt gindex,
FT_Glyph *aglyph );
/* */
FT_END_HEADER
#endif /* __FTCIMAGE_H__ */

View File

@ -70,9 +70,14 @@
FT_BEGIN_HEADER
/***
* <Section> cache_subsystem
*/
/*************************************************************************/
/* */
/* <Section> */
/* cache_subsystem */
/* */
/*************************************************************************/
#define FTC_MAX_FACES_DEFAULT 2
#define FTC_MAX_SIZES_DEFAULT 4
@ -363,6 +368,7 @@ FT_BEGIN_HEADER
} FTC_CacheRec;
/* */

View File

@ -26,63 +26,76 @@
#include FT_CACHE_IMAGE_H
FT_BEGIN_HEADER
/***
* <Section> cache_subsystem
*/
/***********************************************************************
*
* <Type> FTC_SBit
*
* <Description>
* handle to a small bitmap descriptor. see the FTC_SBitRec
* structure for details..
*/
/*************************************************************************/
/* */
/* <Section> */
/* cache_subsystem */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* <Type> */
/* FTC_SBit */
/* */
/* <Description> */
/* A handle to a small bitmap descriptor. See the FTC_SBitRec */
/* structure for details. */
/* */
typedef struct FTC_SBitRec_* FTC_SBit;
/***********************************************************************
*
* <Type> FTC_SBit_Cache
*
* <Description>
* handle to a small bitmap cache. These are special cache objects
* used to store small glyph bitmaps (and anti-aliased pixmaps) in
* a much more efficient way than the traditional glyph image cache
* implemented by FTC_Image_Cache
*/
/*************************************************************************/
/* */
/* <Type> */
/* FTC_SBit_Cache */
/* */
/* <Description> */
/* A handle to a small bitmap cache. These are special cache objects */
/* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */
/* much more efficient way than the traditional glyph image cache */
/* implemented by FTC_Image_Cache. */
/* */
typedef struct FTC_SBit_CacheRec_* FTC_SBit_Cache;
/***********************************************************************
*
* <Struct> FTC_SBitRec
*
* <Description>
* a very compact structure used to describe a small glyph bitmap
*
* <Fields>
* width :: bitmap width in pixels
* height :: bitmap height in pixels
*
* left :: horizontal distance from pen position to left bitmap
* border (a.k.a. "left side bearing", or "lsb")
*
* top :: vertical distance from pen position (on the baseline)
* to the upper bitmap border (a.k.a. "top side bearing")
* the distance is positive for upwards Y coordinates.
*
* format :: format of glyph bitmap (mono or gray)
*
* pitch :: number of bytes per bitmap lines. may be positive or
* negative
*
* xadvance :: horizontal advance width in pixels
* yadvance :: vertical advance height in pixels
*
* buffer :: pointer to bitmap pixels
*/
/*************************************************************************/
/* */
/* <Struct> */
/* FTC_SBitRec */
/* */
/* <Description> */
/* A very compact structure used to describe a small glyph bitmap. */
/* */
/* <Fields> */
/* width :: The bitmap width in pixels. */
/* */
/* height :: The bitmap height in pixels. */
/* */
/* left :: The horizontal distance from the pen position to the */
/* left bitmap border (a.k.a. `left side bearing', or */
/* `lsb'). */
/* */
/* top :: The vertical distance from the pen position (on the */
/* baseline) to the upper bitmap border (a.k.a. `top side */
/* bearing'). The distance is positive for upwards */
/* Y coordinates. */
/* */
/* format :: The format of the glyph bitmap (monochrome or gray). */
/* */
/* pitch :: The number of bytes per bitmap line. May be positive */
/* or negative. */
/* */
/* xadvance :: The horizontal advance width in pixels. */
/* */
/* yadvance :: The vertical advance height in pixels. */
/* */
/* buffer :: A pointer to the bitmap pixels. */
/* */
typedef struct FTC_SBitRec_
{
FT_Byte width;
@ -100,59 +113,64 @@ FT_BEGIN_HEADER
} FTC_SBitRec;
/*************************************************************************
*
* <Section> FTC_SBit_Cache_New
*
* <Description>
* Create a new cache to store small glyph bitmaps
*
* <Input>
* manager :: handle to source cache manager
*
* <Output>
* acache :: handle to new sbit cache. NULL in case of error
*
* <Return>
* error code. 0 means success
*/
/*************************************************************************/
/* */
/* <Function> */
/* FTC_SBit_Cache_New */
/* */
/* <Description> */
/* Creates a new cache to store small glyph bitmaps. */
/* */
/* <Input> */
/* manager :: A handle to the source cache manager. */
/* */
/* <Output> */
/* acache :: A handle to the new sbit cache. NULL in case of error. */
/* */
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
FT_EXPORT( FT_Error ) FTC_SBit_Cache_New( FTC_Manager manager,
FTC_SBit_Cache *acache );
/*************************************************************************
*
* <Section> FTC_SBit_Cache_Lookup
*
* <Description>
* Lookup a given small glyph bitmap in a given sbit cache
*
* <Input>
* cache :: handle to source sbit cache
* desc :: pointer to glyph image descriptor
* gindex :: glyph index
*
* <Output>
* sbit :: handle to a small bitmap descriptor
*
* <Return>
* error code. 0 means success
*
* <Note>
* the small bitmap descriptor, and its bit buffer are owned by the
* cache and should never be freed by the application. They might
* as well disappear from memory on the next cache lookup, so don't
* treat them like persistent data..
*
* the descriptor's "buffer" field is set to 0 to indicate a missing
* glyph bitmap.
*/
/*************************************************************************/
/* */
/* <Function> */
/* FTC_SBit_Cache_Lookup */
/* */
/* <Description> */
/* Looks up a given small glyph bitmap in a given sbit cache. */
/* */
/* <Input> */
/* cache :: A handle to the source sbit cache. */
/* desc :: A pointer to the glyph image descriptor. */
/* gindex :: The glyph index. */
/* */
/* <Output> */
/* sbit :: A handle to a small bitmap descriptor. */
/* */
/* <Return> */
/* FreeType error code. 0 means success. */
/* */
/* <Note> */
/* The small bitmap descriptor and its bit buffer are owned by the */
/* cache and should never be freed by the application. They might */
/* as well disappear from memory on the next cache lookup, so don't */
/* treat them as persistent data. */
/* */
/* The descriptor's `buffer' field is set to 0 to indicate a missing */
/* glyph bitmap. */
/* */
FT_EXPORT( FT_Error ) FTC_SBit_Cache_Lookup( FTC_SBit_Cache cache,
FTC_Image_Desc* desc,
FT_UInt gindex,
FTC_SBit *sbit );
/* */
FT_END_HEADER
#endif /* __FTCSBITS_H__ */

View File

@ -55,18 +55,23 @@ FT_BEGIN_HEADER
/*************************************************************************/
/*************************************************************************/
/*************************************************************************
*
* <Section> base_interface
*
* <Title> Base Interface
*
* <Abstract>
* The FreeType 2 base font interface
*
* <Description>
* This sections details the public high-level API of FreeType 2
*/
/*************************************************************************/
/* */
/* <Section> */
/* base_interface */
/* */
/* <Title> */
/* Base Interface */
/* */
/* <Abstract> */
/* The FreeType 2 base font interface. */
/* */
/* <Description> */
/* This section describes the public high-level API of FreeType 2. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -2243,6 +2248,7 @@ FT_BEGIN_HEADER
FT_EXPORT( void ) FT_Vector_Transform( FT_Vector* vec,
FT_Matrix* matrix );
/* */

View File

@ -38,9 +38,13 @@
FT_BEGIN_HEADER
/********************************
* <Section> outline_processing
*/
/*************************************************************************/
/* */
/* <Section> */
/* outline_processing */
/* */
/*************************************************************************/
/*************************************************************************/
/* */

View File

@ -50,19 +50,24 @@ FT_BEGIN_HEADER
#define FT_CACHE_INTERNAL_GLYPH_H FT2_PUBLIC_FILE(cache/ftcglyph.h)
#define FT_CACHE_INTERNAL_CHUNK_H FT2_PUBLIC_FILE(cache/ftcchunk.h)
/**************************************************************************
*
* <Section> cache_subsystem
*
* <Title> Cache Sub-System
*
* <Abstract>
* How to cache face, size and glyph data with FreeType 2
*
* <Description>
* This section details the FreeType 2 cache sub-system which is still
* in beta.
*/
/*************************************************************************/
/* */
/* <Section> */
/* cache_subsystem */
/* */
/* <Title> */
/* Cache Sub-System */
/* */
/* <Abstract> */
/* How to cache face, size, and glyph data with FreeType 2. */
/* */
/* <Description> */
/* This section describes the FreeType 2 cache sub-system which is */
/* stile in beta. */
/* */
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
@ -345,6 +350,9 @@ FT_BEGIN_HEADER
FTC_Cache *acache );
/* */
FT_END_HEADER
#endif /* __FTCACHE_H__ */

View File

@ -39,20 +39,25 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> glyph_management */
/* <Section> */
/* glyph_management */
/* */
/* <Title> Glyph Management */
/* <Title> */
/* Glyph Management */
/* */
/* <Abstract> */
/* Generic interface to manage individual glyph data */
/* Generic interface to manage individual glyph data. */
/* */
/* <Description> */
/* This section contains definitions used to manage glyph data */
/* through generic FT_Glyph objects. Each one of them can contain */
/* a bitmap, a vector outline, or even images in other formats. */
/* through generic FT_Glyph objects. Each of them can contain a */
/* bitmap, a vector outline, or even images in other formats. */
/* */
/*************************************************************************/
/* forward declaration to a private type */
typedef struct FT_Glyph_Class_ FT_Glyph_Class;
@ -296,7 +301,6 @@ FT_BEGIN_HEADER
/* */
/* The default value for `bbox_mode' is `ft_glyph_bbox_pixels'. */
/* */
enum
{
ft_glyph_bbox_unscaled = 0, /* return unscaled font units */
@ -405,9 +409,13 @@ FT_BEGIN_HEADER
/* other helpful functions */
/*****
* <Section> base_interface
*/
/*************************************************************************/
/* */
/* <Section> */
/* base_interface */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -448,6 +456,9 @@ FT_BEGIN_HEADER
FT_EXPORT( FT_Error ) FT_Matrix_Invert( FT_Matrix* matrix );
/* */
FT_END_HEADER
#endif /* __FTGLYPH_H__ */

View File

@ -33,11 +33,14 @@
FT_BEGIN_HEADER
/***********************************************************************
*
* <Section> basic_types
*
*/
/*************************************************************************/
/* */
/* <Section> */
/* basic_types */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -231,11 +234,13 @@ FT_BEGIN_HEADER
} FT_Bitmap;
/***********************************************************************
*
* <Section> outline_processing
*
*/
/*************************************************************************/
/* */
/* <Section> */
/* outline_processing */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -528,11 +533,13 @@ FT_BEGIN_HEADER
} FT_Outline_Funcs;
/***********************************************************************
*
* <Section> Basic_Types
*
*/
/*************************************************************************/
/* */
/* <Section> */
/* basic_types */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -612,18 +619,23 @@ FT_BEGIN_HEADER
/* */
/*************************************************************************/
/************************************************************************
*
* <Section> Raster
*
* <Title> Scanline converter
*
* <Abstract>
* How vectorial outlines are converted into bitmaps and pixmaps
*
* <Description>
* This section contains technical definitions
*/
/*************************************************************************/
/* */
/* <Section> */
/* Raster */
/* */
/* <Title> */
/* Scanline converter */
/* */
/* <Abstract> */
/* How vectorial outlines are converted into bitmaps and pixmaps. */
/* */
/* <Description> */
/* This section contains technical definitions. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -692,9 +704,9 @@ FT_BEGIN_HEADER
/* */
typedef struct FT_Span_
{
short x;
unsigned short len;
unsigned char coverage;
short x;
unsigned short len;
unsigned char coverage;
} FT_Span;
@ -804,28 +816,33 @@ FT_BEGIN_HEADER
/* <Fields> */
/* ft_raster_flag_default :: This value is 0. */
/* */
/* ft_raster_flag_aa :: */
/* this flag is set to indicate that a anti-aliased glyph image */
/* should be generated. Otherwise, it will be monochrome (1-bit) */
/* ft_raster_flag_aa :: This flag is set to indicate that an */
/* anti-aliased glyph image should be */
/* generated. Otherwise, it will be */
/* monochrome (1-bit) */
/* */
/* ft_raster_flag_direct :: */
/* this flag is set to indicate direct rendering. In this mode, */
/* client applications must provide their own span callback. */
/* this let them direct drawing or composition over an existing */
/* bitmap. If this bit is not set, the target pixmap's buffer */
/* _must_ be zeroed before rendering. */
/* ft_raster_flag_direct :: This flag is set to indicate direct */
/* rendering. In this mode, client */
/* applications must provide their own span */
/* callback. This lets them directly */
/* draw or compose over an existing bitmap. */
/* If this bit is not set, the target */
/* pixmap's buffer _must_ be zeroed before */
/* rendering. */
/* */
/* note that for now, direct rendering is only possible with */
/* anti-aliased glyphs only.. */
/* Note that for now, direct rendering is */
/* only possible with anti-aliased glyphs. */
/* */
/* ft_raster_flag_clip :: */
/* this flag is only used in direct rendering mode. When set, */
/* the output will be clipped to a box specified in the "clip_box" */
/* field of the FT_Raster_Params structure. */
/* ft_raster_flag_clip :: This flag is only used in direct */
/* rendering mode. If set, the output will */
/* be clipped to a box specified in the */
/* "clip_box" field of the FT_Raster_Params */
/* structure. */
/* */
/* note that by default, the glyph bitmap is clipped to the */
/* target pixmap, except in direct rendering mode where all */
/* spans are generated if no clipping box is set. */
/* Note that by default, the glyph bitmap */
/* is clipped to the target pixmap, except */
/* in direct rendering mode where all spans */
/* are generated if no clipping box is set. */
/* */
typedef enum
{
@ -1066,6 +1083,9 @@ FT_BEGIN_HEADER
} FT_Raster_Funcs;
/* */
FT_END_HEADER
#endif /* __FTIMAGE_H__ */

View File

@ -34,20 +34,24 @@
FT_BEGIN_HEADER
/**************************************************************************
*
* <Section> list_processing
*
* <Title> List Processing
*
* <Abstract>
* simple management of lists
*
* <Description>
* This section contains various definitions related to list processing
* using doubly-linked nodes.
*
*/
/*************************************************************************/
/* */
/* <Section> */
/* list_processing */
/* */
/* <Title> */
/* List Processing */
/* */
/* <Abstract> */
/* Simple management of lists. */
/* */
/* <Description> */
/* This section contains various definitions related to list */
/* processing using doubly-linked nodes. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -227,7 +231,9 @@ FT_BEGIN_HEADER
FT_Memory memory,
void* user );
/* */
FT_END_HEADER

View File

@ -34,19 +34,24 @@
FT_BEGIN_HEADER
/*******************************************************************
*
* <Section> Mac_Specific
*
* <Title> Mac-Specific Interface
*
* <Abstract>
* Only available on the Macintosh
*
* <Description>
* The following definitions are only available when FreeType
* is compiled on a Macintosh.
*/
/*************************************************************************/
/* */
/* <Section> */
/* Mac_Specific */
/* */
/* <Title> */
/* Mac-Specific Interface */
/* */
/* <Abstract> */
/* Only available on the Macintosh. */
/* */
/* <Description> */
/* The following definitions are only available if FreeType is */
/* compiled on a Macintosh. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -78,7 +83,6 @@ FT_BEGIN_HEADER
/* { */
/* fond = GetResource( 'FOND', fontName ); */
/* error = FT_New_Face_From_FOND( library, fond, 0, &face ); */
/* */
/* } */
/* */
FT_EXPORT( FT_Error ) FT_New_Face_From_FOND( FT_Library library,
@ -86,8 +90,10 @@ FT_BEGIN_HEADER
FT_Long face_index,
FT_Face *aface );
/* */
FT_END_HEADER

View File

@ -26,20 +26,25 @@
FT_BEGIN_HEADER
/**********************************************************************
*
* <Section> Multiple_Masters
*
* <Title> Multiple Masters
*
* <Abstract>
* How to manage multiple masters fonts
*
* <Description>
* The following types and functions are used to manage multiple
* master fonts, i.e. choose specific design instances by setting
* design axis coordinates.
*/
/*************************************************************************/
/* */
/* <Section> */
/* multiple_masters */
/* */
/* <Title> */
/* Multiple Masters */
/* */
/* <Abstract> */
/* How to manage Multiple Masters fonts. */
/* */
/* <Description> */
/* The following types and functions are used to manage Multiple */
/* Master fonts, i.e. the selection of specific design instances by */
/* setting design axis coordinates. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -182,6 +187,9 @@ FT_BEGIN_HEADER
FT_Fixed* coords );
/* */
FT_END_HEADER
#endif /* __FTMM_H__ */

View File

@ -26,18 +26,24 @@
FT_BEGIN_HEADER
/**************************************************************************
*
* <Section> Module_Management
*
* <Title> Module Management
*
* <Abstract> How to add, upgrade and remove modules from FreeType
*
* <Description>
* The definitions below are used to manage modules within FreeType.
* Modules can be added, upgraded and removed at runtime.
*/
/*************************************************************************/
/* */
/* <Section> */
/* module_management */
/* */
/* <Title> */
/* Module Management */
/* */
/* <Abstract> */
/* How to add, upgrade, and remove modules from FreeType. */
/* */
/* <Description> */
/* The definitions below are used to manage modules within FreeType. */
/* Modules can be added, upgraded, and removed at runtime. */
/* */
/*************************************************************************/
/* module bit flags */
typedef enum FT_Module_Flags_
@ -278,6 +284,9 @@ FT_BEGIN_HEADER
FT_EXPORT( void ) FT_Add_Default_Modules( FT_Library library );
/* */
FT_END_HEADER
#endif /* __FTMODULE_H__ */

View File

@ -30,24 +30,29 @@
FT_BEGIN_HEADER
/**************************************************************************
*
* <Section> SFNT_Names
*
* <Title> SFNT Names
*
* <Abstract> Access the names embedded in TrueType and OpenType files
*
* <Description>
* The TrueType and OpenType specification allow the inclusion of
* a special "names table" in font files. This table contains textual
* (and internationalised) information regarding the font, like
* family name, copyright, version, etc..
*
* the definitions below are used to access them when available
*
* note that this has nothing to do with "glyph names" !!
*/
/*************************************************************************/
/* */
/* <Section> */
/* sfnt_names */
/* */
/* <Title> */
/* SFNT Names */
/* */
/* <Abstract> */
/* Access the names embedded in TrueType and OpenType files. */
/* */
/* <Description> */
/* The TrueType and OpenType specification allow the inclusion of */
/* a special `names table' in font files. This table contains */
/* textual (and internationalized) information regarding the font, */
/* like family name, copyright, version, etc. */
/* */
/* The definitions below are used to access them if available. */
/* */
/* Note that this has nothing to do with glyph names! */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -137,8 +142,11 @@ FT_BEGIN_HEADER
FT_EXPORT( FT_Error ) FT_Get_Sfnt_Name( FT_Face face,
FT_UInt index,
FT_SfntName *aname );
/* */
FT_END_HEADER
#endif /* __FTNAMES_H__ */

View File

@ -27,21 +27,25 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> outline_processing */
/* <Section> */
/* outline_processing */
/* */
/* <Title> Outline Processing */
/* <Title> */
/* Outline Processing */
/* */
/* <Abstract> */
/* Functions to create, transform and render vectorial glyph images */
/* Functions to create, transform, and render vectorial glyph images. */
/* */
/* <Description> */
/* This sections contains routines used to create and destroy */
/* scalable glyph images known as "outlines". These can also be */
/* measured, transformed and converted into bitmaps, pixmaps and */
/* */
/* This section contains routines used to create and destroy scalable */
/* glyph images known as `outlines'. These can also be measured, */
/* transformed, and converted into bitmaps and pixmaps. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -331,6 +335,9 @@ FT_BEGIN_HEADER
FT_Raster_Params* params );
/* */
FT_END_HEADER
#endif /* __FTOUTLN_H__ */

View File

@ -27,9 +27,14 @@
FT_BEGIN_HEADER
/****
* <Section> Module_Management
*/
/*************************************************************************/
/* */
/* <Section> */
/* module_management */
/* */
/*************************************************************************/
/* create a new glyph object */
typedef FT_Error (*FT_Glyph_Init_Func) ( FT_Glyph glyph,
@ -183,6 +188,7 @@ FT_BEGIN_HEADER
FT_UInt num_params,
FT_Parameter* parameters );
/* */

View File

@ -264,8 +264,10 @@ FT_BEGIN_HEADER
unsigned char* limit;
};
/* */
FT_END_HEADER
#endif /* __FTSYSTEM_H__ */

View File

@ -29,19 +29,24 @@
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> basic_types */
/* <Section> */
/* basic_types */
/* */
/* <Title> Basic Data Types */
/* <Title> */
/* Basic Data Types */
/* */
/* <Abstract> */
/* The basic data types defined by the library */
/* The basic data types defined by the library. */
/* */
/* <Description> */
/* This sections contains the basic data types defined by FreeType 2, */
/* rangine from simple scalar types to font specific ones */
/* This section contains the basic data types defined by FreeType 2, */
/* ranging from simple scalar types to font specific ones. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -341,7 +346,6 @@ FT_BEGIN_HEADER
} FT_Generic;
/*************************************************************************/
/* */
/* <Macro> */
@ -366,10 +370,14 @@ FT_BEGIN_HEADER
/*************************************************************************/
/*************************************************************************/
/**************************************************************************
*
* <Section> list_processing
*/
/*************************************************************************/
/* */
/* <Section> */
/* list_processing */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -440,6 +448,7 @@ FT_BEGIN_HEADER
} FT_ListRec;
/* */
#define FT_IS_EMPTY( list ) ( (list).head == 0 )

View File

@ -28,18 +28,24 @@
FT_BEGIN_HEADER
/********************************************************************
*
* <Section> Type1_Tables
*
* <Title> Type 1 Tables
*
* <Abstract> Type 1 (Postscript) specific font tables
*
* <Description>
* This section ....
*/
/*************************************************************************/
/* */
/* <Section> */
/* type1_tables */
/* */
/* <Title> */
/* Type 1 Tables */
/* */
/* <Abstract> */
/* Type 1 (PostScript) specific font tables. */
/* */
/* <Description> */
/* This section contains the definition of Type 1-specific tables, */
/* including structures related to other PostScript font formats. */
/* */
/*************************************************************************/
/* Note that we separate font data in T1_FontInfo and T1_Private */
/* structures in order to support Multiple Master fonts. */
@ -246,6 +252,9 @@ FT_BEGIN_HEADER
} CID_Info;
/* */
FT_END_HEADER
#endif /* __T1TABLES_H__ */

View File

@ -29,17 +29,21 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Section> TrueType_Tables */
/* <Section> */
/* truetype_tables */
/* */
/* <Title> TrueType Tables */
/* <Title> */
/* TrueType Tables */
/* */
/* <Abstract> */
/* TrueType-specific table types and functions */
/* TrueType-specific table types and functions. */
/* */
/* <Description> */
/* This sections contains the definition of TrueType-specific tables */
/* This section contains the definition of TrueType-specific tables */
/* as well as some routines used to access and process them. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
@ -586,6 +590,7 @@ FT_BEGIN_HEADER
/* */
FT_END_HEADER
#endif /* __TTTABLES_H__ */