зеркало из https://github.com/stride3d/freetype.git
* 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:
Родитель
0f5616a801
Коммит
38208a6e6b
23
ChangeLog
23
ChangeLog
|
@ -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.
|
||||
|
||||
|
|
203
docs/docmaker.py
203
docs/docmaker.py
|
@ -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 )
|
||||
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
|
|
@ -38,9 +38,13 @@
|
|||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/********************************
|
||||
* <Section> outline_processing
|
||||
*/
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Section> */
|
||||
/* outline_processing */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
|
|
|
@ -264,8 +264,10 @@ FT_BEGIN_HEADER
|
|||
unsigned char* limit;
|
||||
};
|
||||
|
||||
|
||||
/* */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* __FTSYSTEM_H__ */
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче