Big, big commit!!

1) Remove WITH_FREETYPE2 from code, so now blender always need freetype2
2) Remove the old bmfont
3) Remove ftfont and bFTGL library
4) Implement a new BLF_draw_default function for place that still need/use
   the old BMF api.

I try to update both, scons and cmake, but I only can test with make, so
hope all work fine.

MSVC is broken, but I don't have Windows, things to search and fix are
any reference to WITH_FREETYPE2, FTGL and BMFONT (take in care that
blenkernel also have a BKE_bmfont.h, this don't have anything to do with bmfont).
        Always have to link/include the freetype2 library
        Remove any reference to libbmfont
        Remove any reference to libftfont
        Remove any reference to libbftgl (or libbFTGL)
This commit is contained in:
Diego Borghetti
2009-05-05 23:10:32 +00:00
parent 71c38978e1
commit 405cf80eb8
233 changed files with 331 additions and 20598 deletions

View File

@@ -43,9 +43,9 @@ MACRO(SETUP_LIBDIRS)
CMAKE_POLICY(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
LINK_DIRECTORIES(${PYTHON_LIBPATH} ${SDL_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${ICONV_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH})
LINK_DIRECTORIES(${FREETYPE_LIBPATH})
IF(WITH_INTERNATIONAL)
LINK_DIRECTORIES(${GETTEXT_LIBPATH})
LINK_DIRECTORIES(${FREETYPE_LIBPATH})
ENDIF(WITH_INTERNATIONAL)
IF(WITH_OPENAL)
LINK_DIRECTORIES(${OPENAL_LIBPATH})
@@ -62,6 +62,7 @@ MACRO(SETUP_LIBLINKS
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LIB} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIB} ${LLIBS})
TARGET_LINK_LIBRARIES(${target} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${PYTHON_LINKFLAGS} ${JPEG_LIB} ${PNG_LIB} ${ZLIB_LIB} ${SDL_LIB} ${LLIBS})
TARGET_LINK_LIBRARIES(${target} ${FREETYPE_LIB})
# since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
@@ -78,7 +79,6 @@ MACRO(SETUP_LIBLINKS
ENDIF(WIN32)
IF(WITH_INTERNATIONAL)
TARGET_LINK_LIBRARIES(${target} ${FREETYPE_LIB})
TARGET_LINK_LIBRARIES(${target} ${GETTEXT_LIB})
ENDIF(WITH_INTERNATIONAL)
IF(WITH_OPENAL)

View File

@@ -436,10 +436,6 @@ ENDIF(CMAKE_SYSTEM_NAME MATCHES "Linux")
#-----------------------------------------------------------------------------
# Common.
SET(FTGL ${CMAKE_SOURCE_DIR}/extern/bFTGL)
SET(FTGL_INC ${FTGL}/include)
SET(FTGL_LIB extern_ftgl)
set(OPENJPEG ${CMAKE_SOURCE_DIR}/extern/libopenjpeg)
set(OPENJPEG_INC ${OPENJPEG})
set(OPENJPEG_LIb extern_libopenjpeg)

View File

@@ -281,7 +281,6 @@ if 'blenderlite' in B.targets:
target_env_defs['WITH_BF_QUICKTIME'] = False
target_env_defs['WITH_BF_YAFRAY'] = False
target_env_defs['WITH_BF_REDCODE'] = False
target_env_defs['WITH_BF_FTGL'] = False
target_env_defs['WITH_BF_DDS'] = False
target_env_defs['WITH_BF_ZLIB'] = False
target_env_defs['WITH_BF_SDL'] = False

View File

@@ -100,14 +100,11 @@ IF(UNIX)
extern_bullet
bf_guardedalloc
bf_memutil
bf_bmfont
bf_blenlib
bf_cineon
bf_openexr
extern_libopenjpeg
bf_dds
bf_ftfont
extern_ftgl
bf_readblenfile
blenkernel_blc
bf_quicktime

View File

@@ -138,11 +138,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'intl'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE=True
WITH_BF_PLAYER=True

View File

@@ -77,11 +77,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gettextpo intl'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = 'true'
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE='false'
WITH_BF_ODE = 'false'

View File

@@ -71,11 +71,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gettextlib'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE=False
WITH_BF_ODE = False

View File

@@ -74,11 +74,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE = False
WITH_BF_ODE = True

View File

@@ -59,11 +59,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'intl iconv'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE=False
WITH_BF_ODE = False

View File

@@ -67,11 +67,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gettextlib'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = '#extern/bFTGL'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE=False
WITH_BF_ODE = False

View File

@@ -75,11 +75,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE = False
WITH_BF_ODE = True

View File

@@ -87,11 +87,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gnu_gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = True
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = True

View File

@@ -90,11 +90,6 @@ BF_GETTEXT_INC = '${BF_GETTEXT}/include'
BF_GETTEXT_LIB = 'gettext'
BF_GETTEXT_LIBPATH = '${BF_GETTEXT}/lib'
WITH_BF_FTGL = False
BF_FTGL = LIBDIR + '/ftgl'
BF_FTGL_INC = '${BF_FTGL}/include'
BF_FTGL_LIB = 'extern_ftgl'
WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = False

4
extern/Makefile vendored
View File

@@ -32,10 +32,6 @@ SOURCEDIR = extern
DIR = $(OCGDIR)/extern
DIRS = qhull/src solid glew/src
ifeq ($(WITH_FREETYPE2), true)
DIRS += bFTGL/src
endif
ifeq ($(WITH_FFMPEG), true)
ifeq ($(NAN_FFMPEG), $(LCGDIR)/ffmpeg)
DIRS += ffmpeg

View File

@@ -1,32 +0,0 @@
# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# The Original Code is Copyright (C) 2006, Blender Foundation
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): Jacques Beaurain.
#
# ***** END GPL LICENSE BLOCK *****
SET(INC include src ${FREETYPE_INC})
FILE(GLOB SRC src/*.cpp)
ADD_DEFINITIONS(-DFTGL_LIBRARY_STATIC)
BLENDERLIB(extern_ftgl "${SRC}" "${INC}")
#, libtype=['international','player'], priority=[5, 210])

View File

@@ -1,481 +0,0 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

View File

@@ -1,51 +0,0 @@
FTGL 2.0.11
16 August 2004
DESCRIPTION:
FTGL is a free open source library to enable developers to use arbitrary
fonts in their OpenGL (www.opengl.org) applications.
Unlike other OpenGL font libraries FTGL uses standard font file formats
so doesn't need a preprocessing step to convert the high quality font data
into a lesser quality, proprietary format.
FTGL uses the Freetype (www.freetype.org) font library to open and 'decode'
the fonts. It then takes that output and stores it in a format most efficient
for OpenGL rendering.
Rendering modes supported are
- Bit maps
- Antialiased Pix maps
- Texture maps
- Outlines
- Polygon meshes
- Extruded polygon meshes
FTGL is designed to be used in commercial quality software. It has been
written with performance, robustness and simplicity in mind.
USAGE:
FTGLPixmapFont font( "Fonts:Arial");
font.FaceSize( 72);
font.render( "Hello World!");
This library was inspired by gltt, Copyright (C) 1998-1999 Stephane Rehel
(http://gltt.sourceforge.net)
Bezier curve code contributed by Jed Soane.
Demo, Linux port, extrusion code and gltt maintainance by Gerard Lanois
Linux port by Matthias Kretz
Windows port by Andrew Ellerton & Max Rheiner
Bug fixes by Robert Osfield, Marcelo E. Magallon, Markku Rontu, Mark A. Fox,
Patrick Rogers
Containers and optimisations by Sebastien Barre
Autoconf Marcelo E. Magallon.
Please contact me if you have any suggestions, feature requests, or problems.
Henry Maddocks
ftgl@opengl.geek.nz
http://homepages.paradise.net.nz/henryj/

View File

@@ -1,12 +0,0 @@
#!/usr/bin/python
import sys
import os
Import('env')
incs = 'include src ' + env['BF_FREETYPE_INC'] + ' ' + env['BF_OPENGL_INC']
defs = ''
sources = env.Glob('src/*.cpp')
env.BlenderLib ( 'extern_ftgl', sources, Split(incs), Split(defs), libtype=['extern'], priority=[5])

View File

@@ -1,4 +0,0 @@
#!/bin/sh -fx
# script to get rid of the grabage that MAC OSX drops in all the directories
find . -name .DS_Store -print -exec rm {} \;

View File

@@ -1,124 +0,0 @@
#ifndef __FTBBox__
#define __FTBBox__
#include <ft2build.h>
#include FT_FREETYPE_H
//#include FT_GLYPH_H
#include FT_OUTLINE_H
#include "FTGL.h"
#include "FTPoint.h"
/**
* FTBBox is a convenience class for handling bounding boxes.
*/
class FTGL_EXPORT FTBBox
{
public:
/**
* Default constructor. Bounding box is set to zero.
*/
FTBBox()
: lowerX(0.0f),
lowerY(0.0f),
lowerZ(0.0f),
upperX(0.0f),
upperY(0.0f),
upperZ(0.0f)
{}
/**
* Constructor.
*/
FTBBox( float lx, float ly, float lz, float ux, float uy, float uz)
: lowerX(lx),
lowerY(ly),
lowerZ(lz),
upperX(ux),
upperY(uy),
upperZ(uz)
{}
/**
* Constructor. Extracts a bounding box from a freetype glyph. Uses
* the control box for the glyph. <code>FT_Glyph_Get_CBox()</code>
*
* @param glyph A freetype glyph
*/
FTBBox( FT_GlyphSlot glyph)
: lowerX(0.0f),
lowerY(0.0f),
lowerZ(0.0f),
upperX(0.0f),
upperY(0.0f),
upperZ(0.0f)
{
FT_BBox bbox;
FT_Outline_Get_CBox( &(glyph->outline), &bbox);
lowerX = static_cast<float>( bbox.xMin) / 64.0f;
lowerY = static_cast<float>( bbox.yMin) / 64.0f;
lowerZ = 0.0f;
upperX = static_cast<float>( bbox.xMax) / 64.0f;
upperY = static_cast<float>( bbox.yMax) / 64.0f;
upperZ = 0.0f;
}
/**
* Destructor
*/
~FTBBox()
{}
/**
* Move the Bounding Box by a vector.
*
* @param distance The distance to move the bbox in 3D space.
*/
FTBBox& Move( FTPoint distance)
{
lowerX += distance.x;
lowerY += distance.y;
lowerZ += distance.z;
upperX += distance.x;
upperY += distance.y;
upperZ += distance.z;
return *this;
}
FTBBox& operator += ( const FTBBox& bbox)
{
lowerX = bbox.lowerX < lowerX? bbox.lowerX: lowerX;
lowerY = bbox.lowerY < lowerY? bbox.lowerY: lowerY;
lowerZ = bbox.lowerZ < lowerZ? bbox.lowerZ: lowerZ;
upperX = bbox.upperX > upperX? bbox.upperX: upperX;
upperY = bbox.upperY > upperY? bbox.upperY: upperY;
upperZ = bbox.upperZ > upperZ? bbox.upperZ: upperZ;
return *this;
}
void SetDepth( float depth)
{
upperZ = lowerZ + depth;
}
/**
* The bounds of the box
*/
// Make these ftPoints & private
float lowerX, lowerY, lowerZ, upperX, upperY, upperZ;
protected:
private:
};
#endif // __FTBBox__

View File

@@ -1,76 +0,0 @@
#ifndef __FTBitmapGlyph__
#define __FTBitmapGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
/**
* FTBitmapGlyph is a specialisation of FTGlyph for creating bitmaps.
*
* It provides the interface between Freetype glyphs and their openGL
* Renderable counterparts. This is an abstract class and derived classes
* must implement the <code>Render</code> function.
*
* @see FTGlyphContainer
*
*/
class FTGL_EXPORT FTBitmapGlyph : public FTGlyph
{
public:
/**
* Constructor
*
* @param glyph The Freetype glyph to be processed
*/
FTBitmapGlyph( FT_GlyphSlot glyph);
/**
* Destructor
*/
virtual ~FTBitmapGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
private:
/**
* The width of the glyph 'image'
*/
unsigned int destWidth;
/**
* The height of the glyph 'image'
*/
unsigned int destHeight;
/**
* The pitch of the glyph 'image'
*/
unsigned int destPitch;
/**
* Vector from the pen position to the topleft corner of the bitmap
*/
FTPoint pos;
/**
* Pointer to the 'image' data
*/
unsigned char* data;
};
#endif // __FTBitmapGlyph__

View File

@@ -1,76 +0,0 @@
#ifndef __FTBufferGlyph__
#define __FTBufferGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
/**
* FTBufferGlyph is a specialisation of FTGlyph for creating pixmaps.
*
* @see FTGlyphContainer
*
*/
class FTGL_EXPORT FTBufferGlyph : public FTGlyph
{
public:
/**
* Constructor
*
* @param glyph The Freetype glyph to be processed
*/
FTBufferGlyph( FT_GlyphSlot glyph, unsigned char* clientBuffer);
/**
* Destructor
*/
virtual ~FTBufferGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
// attributes
private:
/**
* The width of the glyph 'image'
*/
int destWidth;
/**
* The height of the glyph 'image'
*/
int destHeight;
/**
* The pitch of the glyph 'image'
*/
unsigned int destPitch;
/**
* Vector from the pen position to the topleft corner of the pixmap
*/
FTPoint pos;
/**
* Pointer to the 'image' data
*/
unsigned char* data;
unsigned char* buffer;
};
#endif // __FTBufferGlyph__

View File

@@ -1,130 +0,0 @@
#ifndef __FTCharToGlyphIndexMap__
#define __FTCharToGlyphIndexMap__
#include <stdlib.h>
#include "FTGL.h"
/**
* Provides a non-STL alternative to the STL map<unsigned long, unsigned long>
* which maps character codes to glyph indices inside FTCharmap.
*
* Implementation:
* - NumberOfBuckets buckets are considered.
* - Each bucket has BucketSize entries.
* - When the glyph index for the character code C has to be stored, the
* bucket this character belongs to is found using 'C div BucketSize'.
* If this bucket has not been allocated yet, do it now.
* The entry in the bucked is found using 'C mod BucketSize'.
* If it is set to IndexNotFound, then the glyph entry has not been set.
* - Try to mimic the calls made to the STL map API.
*
* Caveats:
* - The glyph index is now a signed long instead of unsigned long, so
* the special value IndexNotFound (= -1) can be used to specify that the
* glyph index has not been stored yet.
*/
class FTGL_EXPORT FTCharToGlyphIndexMap
{
public:
typedef unsigned long CharacterCode;
typedef signed long GlyphIndex;
enum
{
NumberOfBuckets = 256,
BucketSize = 256,
IndexNotFound = -1
};
FTCharToGlyphIndexMap()
{
this->Indices = 0;
}
virtual ~FTCharToGlyphIndexMap()
{
if( this->Indices)
{
// Free all buckets
this->clear();
// Free main structure
delete [] this->Indices;
this->Indices = 0;
}
}
void clear()
{
if(this->Indices)
{
for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
{
if( this->Indices[i])
{
delete [] this->Indices[i];
this->Indices[i] = 0;
}
}
}
}
const GlyphIndex find( CharacterCode c)
{
if( !this->Indices)
{
return 0;
}
// Find position of char code in buckets
div_t pos = div( c, FTCharToGlyphIndexMap::BucketSize);
if( !this->Indices[pos.quot])
{
return 0;
}
const FTCharToGlyphIndexMap::GlyphIndex *ptr = &this->Indices[pos.quot][pos.rem];
if( *ptr == FTCharToGlyphIndexMap::IndexNotFound)
{
return 0;
}
return *ptr;
}
void insert( CharacterCode c, GlyphIndex g)
{
if( !this->Indices)
{
this->Indices = new GlyphIndex* [FTCharToGlyphIndexMap::NumberOfBuckets];
for( int i = 0; i < FTCharToGlyphIndexMap::NumberOfBuckets; i++)
{
this->Indices[i] = 0;
}
}
// Find position of char code in buckets
div_t pos = div(c, FTCharToGlyphIndexMap::BucketSize);
// Allocate bucket if does not exist yet
if( !this->Indices[pos.quot])
{
this->Indices[pos.quot] = new GlyphIndex [FTCharToGlyphIndexMap::BucketSize];
for( int i = 0; i < FTCharToGlyphIndexMap::BucketSize; i++)
{
this->Indices[pos.quot][i] = FTCharToGlyphIndexMap::IndexNotFound;
}
}
this->Indices[pos.quot][pos.rem] = g;
}
private:
GlyphIndex** Indices;
};
#endif // __FTCharToGlyphIndexMap__

View File

@@ -1,136 +0,0 @@
#ifndef __FTCharmap__
#define __FTCharmap__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTCharToGlyphIndexMap.h"
#include "FTGL.h"
/**
* FTCharmap takes care of specifying the encoding for a font and mapping
* character codes to glyph indices.
*
* It doesn't preprocess all indices, only on an as needed basis. This may
* seem like a performance penalty but it is quicker than using the 'raw'
* freetype calls and will save significant amounts of memory when dealing
* with unicode encoding
*
* @see "Freetype 2 Documentation"
*
*/
class FTFace;
class FTGL_EXPORT FTCharmap
{
public:
/**
* Constructor
*/
FTCharmap( FTFace* face);
/**
* Destructor
*/
virtual ~FTCharmap();
/**
* Queries for the current character map code.
*
* @return The current character map code.
*/
FT_Encoding Encoding() const { return ftEncoding;}
/**
* Sets the character map for the face.
* Valid encodings as at Freetype 2.0.4
* ft_encoding_none
* ft_encoding_symbol
* ft_encoding_unicode
* ft_encoding_latin_2
* ft_encoding_sjis
* ft_encoding_gb2312
* ft_encoding_big5
* ft_encoding_wansung
* ft_encoding_johab
* ft_encoding_adobe_standard
* ft_encoding_adobe_expert
* ft_encoding_adobe_custom
* ft_encoding_apple_roman
*
* @param encoding the Freetype encoding symbol. See above.
* @return <code>true</code> if charmap was valid and set
* correctly. If the requested encoding is
* unavailable it will be set to ft_encoding_none.
*/
bool CharMap( FT_Encoding encoding);
/**
* Get the FTGlyphContainer index of the input character.
*
* @param characterCode The character code of the requested glyph in
* the current encoding eg apple roman.
* @return The FTGlyphContainer index for the character or zero
* if it wasn't found
*/
unsigned int GlyphListIndex( const unsigned int characterCode);
/**
* Get the font glyph index of the input character.
*
* @param characterCode The character code of the requested glyph in
* the current encoding eg apple roman.
* @return The glyph index for the character.
*/
unsigned int FontIndex( const unsigned int characterCode);
/**
* Set the FTGlyphContainer index of the character code.
*
* @param characterCode The character code of the requested glyph in
* the current encoding eg apple roman.
* @param containerIndex The index into the FTGlyphContainer of the
* character code.
*/
void InsertIndex( const unsigned int characterCode, const unsigned int containerIndex);
/**
* Queries for errors.
*
* @return The current error code. Zero means no error.
*/
FT_Error Error() const { return err;}
private:
/**
* Current character map code.
*/
FT_Encoding ftEncoding;
/**
* The current Freetype face.
*/
const FT_Face ftFace;
/**
* A structure that maps glyph indices to character codes
*
* < character code, face glyph index>
*/
typedef FTCharToGlyphIndexMap CharacterMap;
CharacterMap charMap;
/**
* Current error code.
*/
FT_Error err;
};
#endif // __FTCharmap__

View File

@@ -1,88 +0,0 @@
#ifndef __FTContour__
#define __FTContour__
#include "FTPoint.h"
#include "FTVector.h"
#include "FTGL.h"
/**
* FTContour class is a container of points that describe a vector font
* outline. It is used as a container for the output of the bezier curve
* evaluator in FTVectoriser.
*
* @see FTOutlineGlyph
* @see FTPolyGlyph
* @see FTPoint
*/
class FTGL_EXPORT FTContour
{
public:
/**
* Constructor
*
* @param contour
* @param pointTags
* @param numberOfPoints
*/
FTContour( FT_Vector* contour, char* pointTags, unsigned int numberOfPoints);
/**
* Destructor
*/
~FTContour()
{
pointList.clear();
}
/**
* Return a point at index.
*
* @param index of the point in the curve.
* @return const point reference
*/
const FTPoint& Point( unsigned int index) const { return pointList[index];}
/**
* How many points define this contour
*
* @return the number of points in this contour
*/
size_t PointCount() const { return pointList.size();}
private:
/**
* Add a point to this contour. This function tests for duplicate
* points.
*
* @param point The point to be added to the contour.
*/
inline void AddPoint( FTPoint point);
inline void AddPoint( float x, float y);
/**
* De Casteljau (bezier) algorithm contributed by Jed Soane
* Evaluates a quadratic or conic (second degree) curve
*/
inline void evaluateQuadraticCurve();
/**
* De Casteljau (bezier) algorithm contributed by Jed Soane
* Evaluates a cubic (third degree) curve
*/
inline void evaluateCubicCurve();
/**
* The list of points in this contour
*/
typedef FTVector<FTPoint> PointVector;
PointVector pointList;
/**
* 2D array storing values of de Casteljau algorithm.
*/
float controlPoints[4][2];
};
#endif // __FTContour__

View File

@@ -1,71 +0,0 @@
#ifndef __FTExtrdGlyph__
#define __FTExtrdGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
class FTVectoriser;
/**
* FTExtrdGlyph is a specialisation of FTGlyph for creating tessellated
* extruded polygon glyphs.
*
* @see FTGlyphContainer
* @see FTVectoriser
*
*/
class FTGL_EXPORT FTExtrdGlyph : public FTGlyph
{
public:
/**
* Constructor. Sets the Error to Invalid_Outline if the glyphs isn't an outline.
*
* @param glyph The Freetype glyph to be processed
* @param depth The distance along the z axis to extrude the glyph
*/
FTExtrdGlyph( FT_GlyphSlot glyph, float depth);
/**
* Destructor
*/
virtual ~FTExtrdGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
private:
/**
* Calculate the normal vector to 2 points. This is 2D and ignores
* the z component. The normal will be normalised
*
* @param a
* @param b
* @return
*/
FTPoint GetNormal( const FTPoint &a, const FTPoint &b);
/**
* OpenGL display list
*/
GLuint glList;
/**
* Distance to extrude the glyph
*/
float depth;
};
#endif // __FTExtrdGlyph__

View File

@@ -1,149 +0,0 @@
#ifndef __FTFace__
#define __FTFace__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTPoint.h"
#include "FTSize.h"
/**
* FTFace class provides an abstraction layer for the Freetype Face.
*
* @see "Freetype 2 Documentation"
*
*/
class FTGL_EXPORT FTFace
{
public:
/**
* Opens and reads a face file. Error is set.
*
* @param filename font file name.
*/
FTFace( const char* filename);
/**
* Read face data from an in-memory buffer. Error is set.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTFace( const unsigned char *pBufferBytes, size_t bufferSizeInBytes );
/**
* Destructor
*
* Disposes of the current Freetype Face.
*/
virtual ~FTFace();
/**
* Attach auxilliary file to font (e.g., font metrics).
*
* @param filename auxilliary font file name.
* @return <code>true</code> if file has opened
* successfully.
*/
bool Attach( const char* filename);
/**
* Attach auxilliary data to font (e.g., font metrics) from memory
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
* @return <code>true</code> if file has opened
* successfully.
*/
bool Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Disposes of the face
*/
void Close();
/**
* Get the freetype face object..
*
* @return pointer to an FT_Face.
*/
FT_Face* Face() const { return ftFace;}
/**
* Sets the char size for the current face.
*
* This doesn't guarantee that the size was set correctly. Clients
* should check errors.
*
* @param size the face size in points (1/72 inch)
* @param res the resolution of the target device.
* @return <code>FTSize</code> object
*/
const FTSize& Size( const unsigned int size, const unsigned int res);
unsigned int UnitsPerEM() const;
/**
* Get the number of character maps in this face.
*
* @return character map count.
*/
unsigned int CharMapCount();
/**
* Get a list of character maps in this face.
*
* @return pointer to the first encoding.
*/
FT_Encoding* CharMapList();
/**
* Gets the kerning vector between two glyphs
*/
FTPoint KernAdvance( unsigned int index1, unsigned int index2);
/**
* Loads and creates a Freetype glyph.
*/
FT_GlyphSlot Glyph( unsigned int index, FT_Int load_flags);
/**
* Gets the number of glyphs in the current face.
*/
unsigned int GlyphCount() const { return numGlyphs;}
/**
* Queries for errors.
*
* @return The current error code.
*/
FT_Error Error() const { return err; }
private:
/**
* The Freetype face
*/
FT_Face* ftFace;
/**
* The size object associated with this face
*/
FTSize charSize;
/**
* The number of glyphs in this face
*/
int numGlyphs;
FT_Encoding* fontEncodingList;
/**
* Current error code. Zero means no error.
*/
FT_Error err;
};
#endif // __FTFace__

View File

@@ -1,260 +0,0 @@
#ifndef __FTFont__
#define __FTFont__
#include <ft2build.h>
#include FT_FREETYPE_H
#include "FTFace.h"
#include "FTGL.h"
class FTGlyphContainer;
class FTGlyph;
/**
* FTFont is the public interface for the FTGL library.
*
* Specific font classes are derived from this class. It uses the helper
* classes FTFace and FTSize to access the Freetype library. This class
* is abstract and deriving classes must implement the protected
* <code>MakeGlyph</code> function to create glyphs of the
* appropriate type.
*
* It is good practice after using these functions to test the error
* code returned. <code>FT_Error Error()</code>
*
* @see FTFace
* @see FTSize
* @see FTGlyphContainer
* @see FTGlyph
*/
class FTGL_EXPORT FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
* The buffer is owned by the client and is NOT copied by FTGL. The
* pointer must be valid while using FTGL.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
virtual ~FTFont();
/**
* Attach auxilliary file to font e.g font metrics.
*
* Note: not all font formats implement this function.
*
* @param filename auxilliary font file name.
* @return <code>true</code> if file has been attached
* successfully.
*/
bool Attach( const char* filename);
/**
* Attach auxilliary data to font e.g font metrics, from memory
*
* Note: not all font formats implement this function.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
* @return <code>true</code> if file has been attached
* successfully.
*/
bool Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Set the character map for the face.
*
* @param encoding Freetype enumerate for char map code.
* @return <code>true</code> if charmap was valid and
* set correctly
*/
bool CharMap( FT_Encoding encoding );
/**
* Get the number of character maps in this face.
*
* @return character map count.
*/
unsigned int CharMapCount();
/**
* Get a list of character maps in this face.
*
* @return pointer to the first encoding.
*/
FT_Encoding* CharMapList();
/**
* Set the char size for the current face.
*
* @param size the face size in points (1/72 inch)
* @param res the resolution of the target device.
* @return <code>true</code> if size was set correctly
*/
virtual bool FaceSize( const unsigned int size, const unsigned int res = 72);
/**
* Get the current face size in points.
*
* @return face size
*/
unsigned int FaceSize() const;
/**
* Set the extrusion distance for the font. Only implemented by
* FTGLExtrdFont
*
* @param d The extrusion distance.
*/
virtual void Depth( float d){}
/**
* Get the global ascender height for the face.
*
* @return Ascender height
*/
float Ascender() const;
/**
* Gets the global descender height for the face.
*
* @return Descender height
*/
float Descender() const;
/**
* Get the bounding box for a string.
*
* @param string a char string
* @param llx lower left near x coord
* @param lly lower left near y coord
* @param llz lower left near z coord
* @param urx upper right far x coord
* @param ury upper right far y coord
* @param urz upper right far z coord
*/
void BBox( const char* string, float& llx, float& lly, float& llz, float& urx, float& ury, float& urz);
/**
* Get the bounding box for a string.
*
* @param string a wchar_t string
* @param llx lower left near x coord
* @param lly lower left near y coord
* @param llz lower left near z coord
* @param urx upper right far x coord
* @param ury upper right far y coord
* @param urz upper right far z coord
*/
void BBox( const wchar_t* string, float& llx, float& lly, float& llz, float& urx, float& ury, float& urz);
/**
* Get the advance width for a string.
*
* @param string a wchar_t string
* @return advance width
*/
float Advance( const wchar_t* string);
/**
* Get the advance width for a string.
*
* @param string a char string
* @return advance width
*/
float Advance( const char* string);
/**
* Render a string of characters
*
* @param string 'C' style string to be output.
*/
virtual void Render( const char* string );
/**
* Render a string of characters
*
* @param string wchar_t string to be output.
*/
virtual void Render( const wchar_t* string );
/**
* Queries the Font for errors.
*
* @return The current error code.
*/
FT_Error Error() const { return err;}
protected:
/**
* Construct a glyph of the correct type.
*
* Clients must overide the function and return their specialised
* FTGlyph.
*
* @param g The glyph index NOT the char code.
* @return An FT****Glyph or <code>null</code> on failure.
*/
virtual FTGlyph* MakeGlyph( unsigned int g) = 0;
/**
* Current face object
*/
FTFace face;
/**
* Current size object
*/
FTSize charSize;
/**
* Current error code. Zero means no error.
*/
FT_Error err;
private:
/**
* Render a character
* This function does an implicit conversion on it's arguments.
*
* @param chr current character
* @param nextChr next character
*/
inline void DoRender( const unsigned int chr, const unsigned int nextChr);
/**
* Check that the glyph at <code>chr</code> exist. If not load it.
*
* @param chr character index
*/
inline void CheckGlyph( const unsigned int chr);
/**
* An object that holds a list of glyphs
*/
FTGlyphContainer* glyphList;
/**
* Current pen or cursor position;
*/
FTPoint pen;
};
#endif // __FTFont__

View File

@@ -1,100 +0,0 @@
#ifndef __FTGL__
#define __FTGL__
typedef double FTGL_DOUBLE;
typedef float FTGL_FLOAT;
// Fixes for deprecated identifiers in 2.1.5
#ifndef FT_OPEN_MEMORY
#define FT_OPEN_MEMORY (FT_Open_Flags)1
#endif
#ifndef FT_RENDER_MODE_MONO
#define FT_RENDER_MODE_MONO ft_render_mode_mono
#endif
#ifndef FT_RENDER_MODE_NORMAL
#define FT_RENDER_MODE_NORMAL ft_render_mode_normal
#endif
#ifdef WIN32
// Under windows avoid including <windows.h> is overrated.
// Sure, it can be avoided and "name space pollution" can be
// avoided, but why? It really doesn't make that much difference
// these days.
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#ifndef __gl_h_
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#else
// Non windows platforms - don't require nonsense as seen above :-)
#ifndef __gl_h_
#ifdef __APPLE_CC__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
#if defined (__sun__) && !defined (__sparc__)
#include <mesa/glu.h>
#else
#include <GL/glu.h>
#endif
#endif
#endif
// Required for compatibility with glext.h style function definitions of
// OpenGL extensions, such as in src/osg/Point.cpp.
#ifndef APIENTRY
#define APIENTRY
#endif
#endif
// Compiler-specific conditional compilation
#ifdef _MSC_VER // MS Visual C++
// Disable various warning.
// 4786: template name too long
#pragma warning( disable : 4251 )
#pragma warning( disable : 4275 )
#pragma warning( disable : 4786 )
// The following definitions control how symbols are exported.
// If the target is a static library ensure that FTGL_LIBRARY_STATIC
// is defined. If building a dynamic library (ie DLL) ensure the
// FTGL_LIBRARY macro is defined, as it will mark symbols for
// export. If compiling a project to _use_ the _dynamic_ library
// version of the library, no definition is required.
#ifdef FTGL_LIBRARY_STATIC // static lib - no special export required
# define FTGL_EXPORT
#elif FTGL_LIBRARY // dynamic lib - must export/import symbols appropriately.
# define FTGL_EXPORT __declspec(dllexport)
#else
# define FTGL_EXPORT __declspec(dllimport)
#endif
#else
// Compiler that is not MS Visual C++.
// Ensure that the export symbol is defined (and blank)
#define FTGL_EXPORT
#endif
// lifted from glext.h, to remove dependancy on glext.h
#ifndef GL_EXT_texture_object
#define GL_TEXTURE_PRIORITY_EXT 0x8066
#define GL_TEXTURE_RESIDENT_EXT 0x8067
#define GL_TEXTURE_1D_BINDING_EXT 0x8068
#define GL_TEXTURE_2D_BINDING_EXT 0x8069
#define GL_TEXTURE_3D_BINDING_EXT 0x806A
#endif
#endif // __FTGL__

View File

@@ -1,65 +0,0 @@
#ifndef __FTGLBitmapFont__
#define __FTGLBitmapFont__
#include "FTFont.h"
#include "FTGL.h"
class FTGlyph;
/**
* FTGLBitmapFont is a specialisation of the FTFont class for handling
* Bitmap fonts
*
* @see FTFont
*/
class FTGL_EXPORT FTGLBitmapFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLBitmapFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLBitmapFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
~FTGLBitmapFont();
/**
* Renders a string of characters
*
* @param string 'C' style string to be output.
*/
void Render( const char* string);
/**
* Renders a string of characters
*
* @param string 'C' style wide string to be output.
*/
void Render( const wchar_t* string);
// attributes
private:
/**
* Construct a FTBitmapGlyph.
*
* @param g The glyph index NOT the char code.
* @return An FTBitmapGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int g);
};
#endif // __FTGLBitmapFont__

View File

@@ -1,76 +0,0 @@
#ifndef __FTGLBufferFont__
#define __FTGLBufferFont__
#include "FTFont.h"
#include "FTGL.h"
class FTGlyph;
/**
* FTGLBufferFont is a specialisation of the FTFont class for handling
* Pixmap (Grey Scale) fonts
*
* @see FTFont
*/
class FTGL_EXPORT FTGLBufferFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLBufferFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLBufferFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
void SetClientBuffer( unsigned char* b)
{
buffer = b;
}
/**
* Destructor
*/
~FTGLBufferFont();
/**
* Renders a string of characters
*
* @param string 'C' style string to be output.
*/
void Render( const char* string);
/**
* Renders a string of characters
*
* @param string wchar_t string to be output.
*/
void Render( const wchar_t* string);
private:
/**
* Construct a FTBufferGlyph.
*
* @param g The glyph index NOT the char code.
* @return An FTBufferGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int g);
unsigned char* buffer;
};
#endif // __FTGLBufferFont__

View File

@@ -1,55 +0,0 @@
#ifndef __FTGLExtrdFont__
#define __FTGLExtrdFont__
#include "FTFont.h"
#include "FTGL.h"
class FTGlyph;
/**
* FTGLExtrdFont is a specialisation of the FTFont class for handling
* extruded Polygon fonts
*
* @see FTFont
* @see FTGLPolygonFont
*/
class FTGL_EXPORT FTGLExtrdFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLExtrdFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLExtrdFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
~FTGLExtrdFont();
void Depth( float d) { depth = d;}
private:
/**
* Construct a FTPolyGlyph.
*
* @param glyphIndex The glyph index NOT the char code.
* @return An FTExtrdGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int glyphIndex);
float depth;
};
#endif // __FTGLExtrdFont__

View File

@@ -1,64 +0,0 @@
#ifndef __FTGLOutlineFont__
#define __FTGLOutlineFont__
#include "FTFont.h"
#include "FTGL.h"
class FTGlyph;
/**
* FTGLOutlineFont is a specialisation of the FTFont class for handling
* Vector Outline fonts
*
* @see FTFont
*/
class FTGL_EXPORT FTGLOutlineFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLOutlineFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLOutlineFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
~FTGLOutlineFont();
/**
* Renders a string of characters
*
* @param string 'C' style string to be output.
*/
void Render( const char* string);
/**
* Renders a string of characters
*
* @param string wchar_t string to be output.
*/
void Render( const wchar_t* string);
private:
/**
* Construct a FTOutlineGlyph.
*
* @param g The glyph index NOT the char code.
* @return An FTOutlineGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int g);
};
#endif // __FTGLOutlineFont__

View File

@@ -1,68 +0,0 @@
#ifndef __FTGLPixmapFont__
#define __FTGLPixmapFont__
#include "FTFont.h"
#include "FTGL.h"
class FTGlyph;
/**
* FTGLPixmapFont is a specialisation of the FTFont class for handling
* Pixmap (Grey Scale) fonts
*
* @see FTFont
*/
class FTGL_EXPORT FTGLPixmapFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLPixmapFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLPixmapFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
~FTGLPixmapFont();
/**
* Renders a string of characters
*
* @param string 'C' style string to be output.
*/
void Render( const char* string);
/**
* Renders a string of characters
*
* @param string wchar_t string to be output.
*/
void Render( const wchar_t* string);
private:
/**
* Construct a FTPixmapGlyph.
*
* @param g The glyph index NOT the char code.
* @return An FTPixmapGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int g);
};
#endif // __FTGLPixmapFont__

View File

@@ -1,53 +0,0 @@
#ifndef __FTGLPolygonFont__
#define __FTGLPolygonFont__
#include "FTFont.h"
#include "FTGL.h"
class FTGlyph;
/**
* FTGLPolygonFont is a specialisation of the FTFont class for handling
* tesselated Polygon Mesh fonts
*
* @see FTFont
*/
class FTGL_EXPORT FTGLPolygonFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLPolygonFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLPolygonFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
~FTGLPolygonFont();
private:
/**
* Construct a FTPolyGlyph.
*
* @param g The glyph index NOT the char code.
* @return An FTPolyGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int g);
};
#endif // __FTGLPolygonFont__

View File

@@ -1,151 +0,0 @@
#ifndef __FTGLTextureFont__
#define __FTGLTextureFont__
#include "FTFont.h"
#include "FTVector.h"
#include "FTGL.h"
class FTTextureGlyph;
/**
* FTGLTextureFont is a specialisation of the FTFont class for handling
* Texture mapped fonts
*
* @see FTFont
*/
class FTGL_EXPORT FTGLTextureFont : public FTFont
{
public:
/**
* Open and read a font file. Sets Error flag.
*
* @param fontname font file name.
*/
FTGLTextureFont( const char* fontname);
/**
* Open and read a font from a buffer in memory. Sets Error flag.
*
* @param pBufferBytes the in-memory buffer
* @param bufferSizeInBytes the length of the buffer in bytes
*/
FTGLTextureFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
/**
* Destructor
*/
virtual ~FTGLTextureFont();
/**
* Set the char size for the current face.
*
* @param size the face size in points (1/72 inch)
* @param res the resolution of the target device.
* @return <code>true</code> if size was set correctly
*/
virtual bool FaceSize( const unsigned int size, const unsigned int res = 72);
/**
* Renders a string of characters
*
* @param string 'C' style string to be output.
*/
virtual void Render( const char* string);
/**
* Renders a string of characters
*
* @param string wchar_t string to be output.
*/
virtual void Render( const wchar_t* string);
private:
/**
* Construct a FTTextureGlyph.
*
* @param glyphIndex The glyph index NOT the char code.
* @return An FTTextureGlyph or <code>null</code> on failure.
*/
inline virtual FTGlyph* MakeGlyph( unsigned int glyphIndex);
/**
* Get the size of a block of memory required to layout the glyphs
*
* Calculates a width and height based on the glyph sizes and the
* number of glyphs. It over estimates.
*/
inline void CalculateTextureSize();
/**
* Creates a 'blank' OpenGL texture object.
*
* The format is GL_ALPHA and the params are
* GL_TEXTURE_WRAP_S = GL_CLAMP
* GL_TEXTURE_WRAP_T = GL_CLAMP
* GL_TEXTURE_MAG_FILTER = GL_LINEAR
* GL_TEXTURE_MIN_FILTER = GL_LINEAR
* Note that mipmapping is NOT used
*/
inline GLuint CreateTexture();
/**
* The maximum texture dimension on this OpenGL implemetation
*/
GLsizei maxTextSize;
/**
* The minimum texture width required to hold the glyphs
*/
GLsizei textureWidth;
/**
* The minimum texture height required to hold the glyphs
*/
GLsizei textureHeight;
/**
*An array of texture ids
*/
FTVector<GLuint> textureIDList;
/**
* The max height for glyphs in the current font
*/
int glyphHeight;
/**
* The max width for glyphs in the current font
*/
int glyphWidth;
/**
* A value to be added to the height and width to ensure that
* glyphs don't overlap in the texture
*/
unsigned int padding;
/**
*
*/
unsigned int numGlyphs;
/**
*/
unsigned int remGlyphs;
/**
*/
int xOffset;
/**
*/
int yOffset;
};
#endif // __FTGLTextureFont__

View File

@@ -1,89 +0,0 @@
#ifndef __FTGlyph__
#define __FTGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTBBox.h"
#include "FTPoint.h"
#include "FTGL.h"
/**
* FTGlyph is the base class for FTGL glyphs.
*
* It provides the interface between Freetype glyphs and their openGL
* renderable counterparts. This is an abstract class and derived classes
* must implement the <code>render</code> function.
*
* @see FTGlyphContainer
* @see FTBBox
* @see FTPoint
*
*/
class FTGL_EXPORT FTGlyph
{
public:
/**
* Constructor
*/
FTGlyph( FT_GlyphSlot glyph);
/**
* Destructor
*/
virtual ~FTGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen) = 0;
/**
* Return the advance width for this glyph.
*
* @return advance width.
*/
float Advance() const { return advance;}
/**
* Return the bounding box for this glyph.
*
* @return bounding box.
*/
const FTBBox& BBox() const { return bBox;}
/**
* Queries for errors.
*
* @return The current error code.
*/
FT_Error Error() const { return err;}
protected:
/**
* The advance distance for this glyph
*/
float advance;
/**
* The bounding box of this glyph.
*/
FTBBox bBox;
/**
* Current error code. Zero means no error.
*/
FT_Error err;
private:
};
#endif // __FTGlyph__

View File

@@ -1,127 +0,0 @@
#ifndef __FTGlyphContainer__
#define __FTGlyphContainer__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTBBox.h"
#include "FTPoint.h"
#include "FTVector.h"
class FTFace;
class FTGlyph;
class FTCharmap;
/**
* FTGlyphContainer holds the post processed FTGlyph objects.
*
* @see FTGlyph
*/
class FTGL_EXPORT FTGlyphContainer
{
typedef FTVector<FTGlyph*> GlyphVector;
public:
/**
* Constructor
*
* @param face The Freetype face
*/
FTGlyphContainer( FTFace* face);
/**
* Destructor
*/
~FTGlyphContainer();
/**
* Sets the character map for the face.
*
* @param encoding the Freetype encoding symbol. See above.
* @return <code>true</code> if charmap was valid
* and set correctly
*/
bool CharMap( FT_Encoding encoding);
/**
* Get the font index of the input character.
*
* @param characterCode The character code of the requested glyph in the
* current encoding eg apple roman.
* @return The font index for the character.
*/
unsigned int FontIndex( const unsigned int characterCode ) const;
/**
* Adds a glyph to this glyph list.
*
* @param glyph The FTGlyph to be inserted into the container
* @param characterCode The char code of the glyph NOT the glyph index.
*/
void Add( FTGlyph* glyph, const unsigned int characterCode);
/**
* Get a glyph from the glyph list
*
* @param characterCode The char code of the glyph NOT the glyph index
* @return An FTGlyph or <code>null</code> is it hasn't been
* loaded.
*/
const FTGlyph* const Glyph( const unsigned int characterCode) const;
/**
* Get the bounding box for a character.
* @param characterCode The char code of the glyph NOT the glyph index
*/
FTBBox BBox( const unsigned int characterCode) const;
/**
* Returns the kerned advance width for a glyph.
*
* @param characterCode glyph index of the character
* @param nextCharacterCode the next glyph in a string
* @return advance width
*/
float Advance( const unsigned int characterCode, const unsigned int nextCharacterCode);
/**
* Renders a character
* @param characterCode the glyph to be Rendered
* @param nextCharacterCode the next glyph in the string. Used for kerning.
* @param penPosition the position to Render the glyph
* @return The distance to advance the pen position after Rendering
*/
FTPoint Render( const unsigned int characterCode, const unsigned int nextCharacterCode, FTPoint penPosition);
/**
* Queries the Font for errors.
*
* @return The current error code.
*/
FT_Error Error() const { return err;}
private:
/**
* The FTGL face
*/
FTFace* face;
/**
* The Character Map object associated with the current face
*/
FTCharmap* charMap;
/**
* A structure to hold the glyphs
*/
GlyphVector glyphs;
/**
* Current error code. Zero means no error.
*/
FT_Error err;
};
#endif // __FTGlyphContainer__

View File

@@ -1,97 +0,0 @@
#ifndef __FTLibrary__
#define __FTLibrary__
#include <ft2build.h>
#include FT_FREETYPE_H
//#include FT_CACHE_H
#include "FTGL.h"
/**
* FTLibrary class is the global accessor for the Freetype library.
*
* This class encapsulates the Freetype Library. This is a singleton class
* and ensures that only one FT_Library is in existence at any one time.
* All constructors are private therefore clients cannot create or
* instantiate this class themselves and must access it's methods via the
* static <code>FTLibrary::Instance()</code> function.
*
* Just because this class returns a valid <code>FTLibrary</code> object
* doesn't mean that the Freetype Library has been successfully initialised.
* Clients should check for errors. You can initialse the library AND check
* for errors using the following code...
* <code>err = FTLibrary::Instance().Error();</code>
*
* @see "Freetype 2 Documentation"
*
*/
class FTGL_EXPORT FTLibrary
{
public:
/**
* Global acces point to the single FTLibrary object.
*
* @return The global <code>FTLibrary</code> object.
*/
static FTLibrary& Instance();
/**
* Gets a pointer to the native Freetype library.
*
* @return A handle to a FreeType library instance.
*/
const FT_Library* const GetLibrary() const { return library;}
/**
* Queries the library for errors.
*
* @return The current error code.
*/
FT_Error Error() const { return err;}
/**
* Destructor
*
* Disposes of the Freetype library
*/
~FTLibrary();
private:
/**
* Default constructors.
*
* Made private to stop clients creating there own FTLibrary
* objects.
*/
FTLibrary();
FTLibrary( const FT_Library&){}
FTLibrary& operator=( const FT_Library&) { return *this; }
/**
* Initialises the Freetype library
*
* Even though this function indicates success via the return value,
* clients can't see this so must check the error codes. This function
* is only ever called by the default c_stor
*
* @return <code>true</code> if the Freetype library was
* successfully initialised, <code>false</code>
* otherwise.
*/
bool Initialise();
/**
* Freetype library handle.
*/
FT_Library* library;
// FTC_Manager* manager;
/**
* Current error code. Zero means no error.
*/
FT_Error err;
};
#endif // __FTLibrary__

View File

@@ -1,112 +0,0 @@
#ifndef __FTList__
#define __FTList__
#include "FTGL.h"
/**
* Provides a non-STL alternative to the STL list
*/
template <typename FT_LIST_ITEM_TYPE>
class FTGL_EXPORT FTList
{
public:
typedef FT_LIST_ITEM_TYPE value_type;
typedef value_type& reference;
typedef const value_type& const_reference;
typedef size_t size_type;
/**
* Constructor
*/
FTList()
: listSize(0),
tail(0)
{
tail = NULL;
head = new Node;
}
/**
* Destructor
*/
~FTList()
{
Node* next;
for( Node *walk = head; walk; walk = next)
{
next = walk->next;
delete walk;
}
}
/**
* Get the number of items in the list
*/
size_type size() const
{
return listSize;
}
/**
* Add an item to the end of the list
*/
void push_back( const value_type& item)
{
Node* node = new Node( item);
if( head->next == NULL)
{
head->next = node;
}
if( tail)
{
tail->next = node;
}
tail = node;
++listSize;
}
/**
* Get the item at the front of the list
*/
reference front() const
{
return head->next->payload;
}
/**
* Get the item at the end of the list
*/
reference back() const
{
return tail->payload;
}
private:
struct Node
{
Node()
: next(NULL)
{}
Node( const value_type& item)
: next(NULL)
{
payload = item;
}
Node* next;
value_type payload;
};
size_type listSize;
Node* head;
Node* tail;
};
#endif // __FTList__

View File

@@ -1,54 +0,0 @@
#ifndef __FTOutlineGlyph__
#define __FTOutlineGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
class FTVectoriser;
/**
* FTOutlineGlyph is a specialisation of FTGlyph for creating outlines.
*
* @see FTGlyphContainer
* @see FTVectoriser
*
*/
class FTGL_EXPORT FTOutlineGlyph : public FTGlyph
{
public:
/**
* Constructor. Sets the Error to Invalid_Outline if the glyphs isn't an outline.
*
* @param glyph The Freetype glyph to be processed
*/
FTOutlineGlyph( FT_GlyphSlot glyph);
/**
* Destructor
*/
virtual ~FTOutlineGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
private:
/**
* OpenGL display list
*/
GLuint glList;
};
#endif // __FTOutlineGlyph__

View File

@@ -1,68 +0,0 @@
#ifndef __FTPixmapGlyph__
#define __FTPixmapGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
/**
* FTPixmapGlyph is a specialisation of FTGlyph for creating pixmaps.
*
* @see FTGlyphContainer
*
*/
class FTGL_EXPORT FTPixmapGlyph : public FTGlyph
{
public:
/**
* Constructor
*
* @param glyph The Freetype glyph to be processed
*/
FTPixmapGlyph( FT_GlyphSlot glyph);
/**
* Destructor
*/
virtual ~FTPixmapGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
// attributes
private:
/**
* The width of the glyph 'image'
*/
int destWidth;
/**
* The height of the glyph 'image'
*/
int destHeight;
/**
* Vector from the pen position to the topleft corner of the pixmap
*/
FTPoint pos;
/**
* Pointer to the 'image' data
*/
unsigned char* data;
};
#endif // __FTPixmapGlyph__

View File

@@ -1,85 +0,0 @@
#ifndef __FTPoint__
#define __FTPoint__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
/**
* FTPoint class is a basic 3 dimensional point or vector.
*/
class FTGL_EXPORT FTPoint
{
public:
/**
* Default constructor. Point is set to zero.
*/
FTPoint()
: x(0), y(0), z(0)
{}
/**
* Constructor.
*
* @param X
* @param Y
* @param Z
*/
FTPoint( const FTGL_DOUBLE X, const FTGL_DOUBLE Y, const FTGL_DOUBLE Z)
: x(X), y(Y), z(Z)
{}
/**
* Constructor. This converts an FT_Vector to an FT_Point
*
* @param ft_vector A freetype vector
*/
FTPoint( const FT_Vector& ft_vector)
: x(ft_vector.x), y(ft_vector.y), z(0)
{}
/**
* Operator +=
*
* @param point
* @return this plus point.
*/
FTPoint& operator += ( const FTPoint& point)
{
x += point.x;
y += point.y;
z += point.z;
return *this;
}
/**
* Operator == Tests for eqaulity
*
* @param a
* @param b
* @return
*/
friend bool operator == ( const FTPoint &a, const FTPoint &b);
/**
* Operator != Tests for non equality
*
* @param a
* @param b
* @return
*/
friend bool operator != ( const FTPoint &a, const FTPoint &b);
/**
* The point data
*/
FTGL_DOUBLE x, y, z; // FIXME make private
private:
};
#endif // __FTPoint__

View File

@@ -1,55 +0,0 @@
#ifndef __FTPolyGlyph__
#define __FTPolyGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
class FTVectoriser;
/**
* FTPolyGlyph is a specialisation of FTGlyph for creating tessellated
* polygon glyphs.
*
* @see FTGlyphContainer
* @see FTVectoriser
*
*/
class FTGL_EXPORT FTPolyGlyph : public FTGlyph
{
public:
/**
* Constructor. Sets the Error to Invalid_Outline if the glyphs isn't an outline.
*
* @param glyph The Freetype glyph to be processed
*/
FTPolyGlyph( FT_GlyphSlot glyph);
/**
* Destructor
*/
virtual ~FTPolyGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
private:
/**
* OpenGL display list
*/
GLuint glList;
};
#endif // __FTPolyGlyph__

View File

@@ -1,132 +0,0 @@
#ifndef __FTSize__
#define __FTSize__
#include <ft2build.h>
#include FT_FREETYPE_H
#include "FTGL.h"
/**
* FTSize class provides an abstraction layer for the Freetype Size.
*
* @see "Freetype 2 Documentation"
*
*/
class FTGL_EXPORT FTSize
{
public:
/**
* Default Constructor
*/
FTSize();
/**
* Destructor
*/
virtual ~FTSize();
/**
* Sets the char size for the current face.
*
* This doesn't guarantee that the size was set correctly. Clients
* should check errors.
*
* @param face Parent face for this size object
* @param point_size the face size in points (1/72 inch)
* @param x_resolution the horizontal resolution of the target device.
* @param y_resolution the vertical resolution of the target device.
* @return <code>true</code> if the size has been set. Clients should check Error() for more information if this function returns false()
*/
bool CharSize( FT_Face* face, unsigned int point_size, unsigned int x_resolution, unsigned int y_resolution);
/**
* get the char size for the current face.
*
* @return The char size in points
*/
unsigned int CharSize() const;
/**
* Gets the global ascender height for the face in pixels.
*
* @return Ascender height
*/
float Ascender() const;
/**
* Gets the global descender height for the face in pixels.
*
* @return Ascender height
*/
float Descender() const;
/**
* Gets the global face height for the face.
*
* If the face is scalable this returns the height of the global
* bounding box which ensures that any glyph will be less than or
* equal to this height. If the font isn't scalable there is no
* guarantee that glyphs will not be taller than this value.
*
* @return height in pixels.
*/
float Height() const;
/**
* Gets the global face width for the face.
*
* If the face is scalable this returns the width of the global
* bounding box which ensures that any glyph will be less than or
* equal to this width. If the font isn't scalable this value is
* the max_advance for the face.
*
* @return width in pixels.
*/
float Width() const;
/**
* Gets the underline position for the face.
*
* @return underline position in pixels
*/
float Underline() const;
unsigned int XPixelsPerEm() const;
unsigned int YPixelsPerEm() const;
/**
* Queries for errors.
*
* @return The current error code.
*/
FT_Error Error() const { return err; }
private:
/**
* The current Freetype face that this FTSize object relates to.
*/
FT_Face* ftFace;
/**
* The Freetype size.
*/
FT_Size ftSize;
/**
* The size in points.
*/
unsigned int size;
/**
* Current error code. Zero means no error.
*/
FT_Error err;
};
#endif // __FTSize__

View File

@@ -1,89 +0,0 @@
#ifndef __FTTextureGlyph__
#define __FTTextureGlyph__
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include "FTGL.h"
#include "FTGlyph.h"
/**
* FTTextureGlyph is a specialisation of FTGlyph for creating texture
* glyphs.
*
* @see FTGlyphContainer
*
*/
class FTGL_EXPORT FTTextureGlyph : public FTGlyph
{
public:
/**
* Constructor
*
* @param glyph The Freetype glyph to be processed
* @param id The id of the texture that this glyph will be
* drawn in
* @param xOffset The x offset into the parent texture to draw
* this glyph
* @param yOffset The y offset into the parent texture to draw
* this glyph
* @param width The width of the parent texture
* @param height The height (number of rows) of the parent texture
*/
FTTextureGlyph( FT_GlyphSlot glyph, int id, int xOffset, int yOffset, GLsizei width, GLsizei height);
/**
* Destructor
*/
virtual ~FTTextureGlyph();
/**
* Renders this glyph at the current pen position.
*
* @param pen The current pen position.
* @return The advance distance for this glyph.
*/
virtual float Render( const FTPoint& pen);
private:
/**
* The width of the glyph 'image'
*/
int destWidth;
/**
* The height of the glyph 'image'
*/
int destHeight;
/**
* Vector from the pen position to the topleft corner of the pixmap
*/
FTPoint pos;
/**
* The texture co-ords of this glyph within the texture.
*/
FTPoint uv[2];
/**
* The texture index that this glyph is contained in.
*/
int glTextureID;
/**
* The texture index of the currently active texture
*
* We call glGetIntegerv( GL_TEXTURE_2D_BINDING, activeTextureID);
* to get the currently active texture to try to reduce the number
* of texture bind operations
*/
GLint activeTextureID;
};
#endif // __FTTextureGlyph__

View File

@@ -1,190 +0,0 @@
#ifndef __FTVector__
#define __FTVector__
#include "FTGL.h"
/**
* Provides a non-STL alternative to the STL vector
*/
template <typename FT_VECTOR_ITEM_TYPE>
class FTGL_EXPORT FTVector
{
public:
typedef FT_VECTOR_ITEM_TYPE value_type;
typedef value_type& reference;
typedef const value_type& const_reference;
typedef value_type* iterator;
typedef const value_type* const_iterator;
typedef size_t size_type;
FTVector()
{
Capacity = Size = 0;
Items = 0;
}
virtual ~FTVector()
{
clear();
}
FTVector& operator =(const FTVector& v)
{
reserve(v.capacity());
iterator ptr = begin();
const_iterator vbegin = v.begin();
const_iterator vend = v.end();
while( vbegin != vend)
{
*ptr++ = *vbegin++;
}
Size = v.size();
return *this;
}
size_type size() const
{
return Size;
}
size_type capacity() const
{
return Capacity;
}
iterator begin()
{
return Items;
}
const_iterator begin() const
{
return Items;
}
iterator end()
{
return begin() + size();
}
const_iterator end() const
{
return begin() + size();
}
bool empty() const
{
return size() == 0;
}
reference operator [](size_type pos)
{
return( *(begin() + pos));
}
const_reference operator []( size_type pos) const
{
return( *(begin() + pos));
}
void clear()
{
if( Capacity)
{
delete [] Items;
Capacity = Size = 0;
Items = 0;
}
}
void reserve( size_type n)
{
if( capacity() < n)
{
expand(n);
}
}
void push_back(const value_type& x)
{
if( size() == capacity())
{
expand();
}
( *this)[size()] = x;
++Size;
}
void resize(size_type n, value_type x)
{
if( n == size())
{
return;
}
reserve(n);
iterator begin, end;
if( n >= Size)
{
begin = this->end();
end = this->begin() + n;
}
else
{
begin = this->begin() + n;
end = this->end();
}
while( begin != end)
{
*begin++ = x;
}
Size = n;
}
private:
void expand(size_type capacity_hint = 0)
{
size_type new_capacity =( capacity() == 0) ? 256 : capacity()* 2;
if( capacity_hint)
{
while( new_capacity < capacity_hint)
{
new_capacity *= 2;
}
}
value_type *new_items = new value_type[new_capacity];
iterator begin = this->begin();
iterator end = this->end();
value_type *ptr = new_items;
while( begin != end)
{
*ptr++ = *begin++;
}
if( Capacity)
{
delete [] Items;
}
Items = new_items;
Capacity = new_capacity;
}
size_type Capacity;
size_type Size;
value_type* Items;
};
#endif // __FTVector__

View File

@@ -1,275 +0,0 @@
#ifndef __FTVectoriser__
#define __FTVectoriser__
#include "FTContour.h"
#include "FTList.h"
#include "FTPoint.h"
#include "FTVector.h"
#include "FTGL.h"
#ifndef CALLBACK
#define CALLBACK
#endif
/**
* FTTesselation captures points that are output by OpenGL's gluTesselator.
*/
class FTGL_EXPORT FTTesselation
{
public:
/**
* Default constructor
*/
FTTesselation( GLenum m)
: meshType(m)
{
pointList.reserve( 128);
}
/**
* Destructor
*/
~FTTesselation()
{
pointList.clear();
}
/**
* Add a point to the mesh.
*/
void AddPoint( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z)
{
pointList.push_back( FTPoint( x, y, z));
}
/**
* The number of points in this mesh
*/
size_t PointCount() const { return pointList.size();}
/**
*
*/
const FTPoint& Point( unsigned int index) const { return pointList[index];}
/**
* Return the OpenGL polygon type.
*/
GLenum PolygonType() const { return meshType;}
private:
/**
* Points generated by gluTesselator.
*/
typedef FTVector<FTPoint> PointVector;
PointVector pointList;
/**
* OpenGL primitive type from gluTesselator.
*/
GLenum meshType;
};
/**
* FTMesh is a container of FTTesselation's that make up a polygon glyph
*/
class FTGL_EXPORT FTMesh
{
typedef FTVector<FTTesselation*> TesselationVector;
typedef FTList<FTPoint> PointList;
public:
/**
* Default constructor
*/
FTMesh();
/**
* Destructor
*/
~FTMesh();
/**
*
*/
void AddPoint( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z);
/**
*
*/
FTGL_DOUBLE* Combine( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z);
/**
*
*/
void Begin( GLenum meshType);
/**
*
*/
void End();
/**
*
*/
void Error( GLenum e) { err = e;}
/**
*
*/
unsigned int TesselationCount() const { return tesselationList.size();}
/**
*
*/
const FTTesselation* const Tesselation( unsigned int index) const;
/**
*
*/
const PointList& TempPointList() const { return tempPointList;}
/**
* Get the GL ERROR returned by the glu tesselator
*/
GLenum Error() const { return err;}
private:
/**
* The current sub mesh that we are constructing.
*/
FTTesselation* currentTesselation;
/**
* Holds each sub mesh that comprises this glyph.
*/
TesselationVector tesselationList;
/**
* Holds extra points created by gluTesselator. See ftglCombine.
*/
PointList tempPointList;
/**
* GL ERROR returned by the glu tesselator
*/
GLenum err;
};
const FTGL_DOUBLE FTGL_FRONT_FACING = 1.0;
const FTGL_DOUBLE FTGL_BACK_FACING = -1.0;
/**
* FTVectoriser class is a helper class that converts font outlines into
* point data.
*
* @see FTExtrdGlyph
* @see FTOutlineGlyph
* @see FTPolyGlyph
* @see FTContour
* @see FTPoint
*
*/
class FTGL_EXPORT FTVectoriser
{
public:
/**
* Constructor
*
* @param glyph The freetype glyph to be processed
*/
FTVectoriser( const FT_GlyphSlot glyph);
/**
* Destructor
*/
virtual ~FTVectoriser();
/**
* Build an FTMesh from the vector outline data.
*
* @param zNormal The direction of the z axis of the normal
* for this mesh
*/
void MakeMesh( FTGL_DOUBLE zNormal = FTGL_FRONT_FACING);
/**
* Get the current mesh.
*/
const FTMesh* const GetMesh() const { return mesh;}
/**
* Get the total count of points in this outline
*
* @return the number of points
*/
size_t PointCount();
/**
* Get the count of contours in this outline
*
* @return the number of contours
*/
size_t ContourCount() const { return ftContourCount;}
/**
* Return a contour at index
*
* @return the number of contours
*/
const FTContour* const Contour( unsigned int index) const;
/**
* Get the number of points in a specific contour in this outline
*
* @param c The contour index
* @return the number of points in contour[c]
*/
size_t ContourSize( int c) const { return contourList[c]->PointCount();}
/**
* Get the flag for the tesselation rule for this outline
*
* @return The contour flag
*/
int ContourFlag() const { return contourFlag;}
private:
/**
* Process the freetype outline data into contours of points
*/
void ProcessContours();
/**
* The list of contours in the glyph
*/
FTContour** contourList;
/**
* A Mesh for tesselations
*/
FTMesh* mesh;
/**
* The number of contours reported by Freetype
*/
short ftContourCount;
/**
* A flag indicating the tesselation rule for the glyph
*/
int contourFlag;
/**
* A Freetype outline
*/
FT_Outline outline;
};
#endif // __FTVectoriser__

View File

@@ -1,27 +0,0 @@
FTGL
Herewith is a license. I've also chucked in a gnu (see COPYING.txt) license
for those that are that way inclined. Basically I want you to use this
software and if you think this license is preventing you from doing so
let me know.
Copyright (C) 2001-3 Henry Maddocks
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,406 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="ftgl_static_lib"
ProjectGUID="{F9850C15-FF0A-429E-9D47-89FB433C9BD8}"
SccProjectName=""
SccLocalPath="">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Blender Debug|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl\debug"
IntermediateDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl\debug"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="2"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\extern\ftgl\debug\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_7\extern\ftgl\debug\"
ObjectFile="..\..\..\..\..\build\msvc_7\extern\ftgl\debug\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\extern\ftgl\debug\"
WarningLevel="2"
SuppressStartupBanner="TRUE"
DebugInformationFormat="3"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_7\libs\extern\debug\ftgl_static.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library (debug target) to lib tree."
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_7\extern\ftgl\include
XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_7\extern\ftgl\include
ECHO Done
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Blender Release|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl"
IntermediateDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
StringPooling="TRUE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\extern\ftgl\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_7\extern\ftgl\"
ObjectFile="..\..\..\..\..\build\msvc_7\extern\ftgl\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\extern\ftgl\"
WarningLevel="2"
SuppressStartupBanner="TRUE"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_7\libs\extern\ftgl_static.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library to lib tree."
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_7\extern\ftgl\include
XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_7\extern\ftgl\include
ECHO Done
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="3D Plugin Release|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll"
IntermediateDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\"
ObjectFile="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\"
WarningLevel="2"
SuppressStartupBanner="TRUE"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_7\libs\extern\mtdll\ftgl_static.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library to lib tree."
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_7\extern\ftgl\include
XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_7\extern\ftgl\include
ECHO Done
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="3D Plugin Debug|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\debug"
IntermediateDirectory="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\debug"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\debug\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\debug\"
ObjectFile="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\debug\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_7\extern\ftgl\mtdll\debug\"
WarningLevel="2"
SuppressStartupBanner="TRUE"
DebugInformationFormat="3"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_7\libs\extern\mtdll\debug\ftgl_static.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library (debug target) to lib tree."
CommandLine="ECHO Copying header files
IF NOT EXIST ..\..\..\..\..\build\msvc_7\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_7\extern\ftgl\include
XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_7\extern\ftgl\include
ECHO Done
"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
RelativePath="..\..\src\FTBitmapGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTCharmap.cpp">
</File>
<File
RelativePath="..\..\src\FTContour.cpp">
</File>
<File
RelativePath="..\..\src\FTExtrdGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTFace.cpp">
</File>
<File
RelativePath="..\..\src\FTFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGLBitmapFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGLExtrdFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGLOutlineFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGLPixmapFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGLPolygonFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGLTextureFont.cpp">
</File>
<File
RelativePath="..\..\src\FTGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTGlyphContainer.cpp">
</File>
<File
RelativePath="..\..\src\FTLibrary.cpp">
</File>
<File
RelativePath="..\..\src\FTOutlineGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTPixmapGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTPoint.cpp">
</File>
<File
RelativePath="..\..\src\FTPolyGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTSize.cpp">
</File>
<File
RelativePath="..\..\src\FTTextureGlyph.cpp">
</File>
<File
RelativePath="..\..\src\FTVectoriser.cpp">
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl">
<File
RelativePath="..\..\include\FTBBox.h">
</File>
<File
RelativePath="..\..\include\FTBitmapGlyph.h">
</File>
<File
RelativePath="..\..\include\FTCharmap.h">
</File>
<File
RelativePath="..\..\include\FTCharToGlyphIndexMap.h">
</File>
<File
RelativePath="..\..\include\FTContour.h">
</File>
<File
RelativePath="..\..\include\FTExtrdGlyph.h">
</File>
<File
RelativePath="..\..\include\FTFace.h">
</File>
<File
RelativePath="..\..\include\FTFont.h">
</File>
<File
RelativePath="..\..\include\FTGL.h">
</File>
<File
RelativePath="..\..\include\FTGLBitmapFont.h">
</File>
<File
RelativePath="..\..\include\FTGLExtrdFont.h">
</File>
<File
RelativePath="..\..\include\FTGLOutlineFont.h">
</File>
<File
RelativePath="..\..\include\FTGLPixmapFont.h">
</File>
<File
RelativePath="..\..\include\FTGLPolygonFont.h">
</File>
<File
RelativePath="..\..\include\FTGLTextureFont.h">
</File>
<File
RelativePath="..\..\include\FTGlyph.h">
</File>
<File
RelativePath="..\..\include\FTGlyphContainer.h">
</File>
<File
RelativePath="..\..\include\FTLibrary.h">
</File>
<File
RelativePath="..\..\include\FTList.h">
</File>
<File
RelativePath="..\..\include\FTOutlineGlyph.h">
</File>
<File
RelativePath="..\..\include\FTPixmapGlyph.h">
</File>
<File
RelativePath="..\..\include\FTPoint.h">
</File>
<File
RelativePath="..\..\include\FTPolyGlyph.h">
</File>
<File
RelativePath="..\..\include\FTSize.h">
</File>
<File
RelativePath="..\..\include\FTTextureGlyph.h">
</File>
<File
RelativePath="..\..\include\FTVector.h">
</File>
<File
RelativePath="..\..\include\FTVectoriser.h">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,537 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="EXT_ftgl_static_lib"
ProjectGUID="{F9850C15-FF0A-429E-9D47-89FB433C9BD8}"
RootNamespace="ftgl_static_lib"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Blender Debug|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl\debug"
IntermediateDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl\debug"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\extern\ftgl\debug\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_9\extern\ftgl\debug\"
ObjectFile="..\..\..\..\..\build\msvc_9\extern\ftgl\debug\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\extern\ftgl\debug\"
WarningLevel="2"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_9\libs\extern\debug\ftgl_static.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library (debug target) to lib tree."
CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="Blender Release|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl"
IntermediateDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
StringPooling="true"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\extern\ftgl\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_9\extern\ftgl\"
ObjectFile="..\..\..\..\..\build\msvc_9\extern\ftgl\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\extern\ftgl\"
WarningLevel="2"
SuppressStartupBanner="true"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_9\libs\extern\ftgl_static.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library to lib tree."
CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="3D Plugin Release|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll"
IntermediateDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="NDEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\"
ObjectFile="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\"
WarningLevel="2"
SuppressStartupBanner="true"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_9\libs\extern\mtdll\ftgl_static.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library to lib tree."
CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
/>
</Configuration>
<Configuration
Name="3D Plugin Debug|Win32"
OutputDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\debug"
IntermediateDirectory="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\debug"
ConfigurationType="4"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\include;..\..\..\..\..\lib\windows\freetype\include"
PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FTGL_LIBRARY_STATIC"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
PrecompiledHeaderFile="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\debug\ftgl_static_lib.pch"
AssemblerListingLocation="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\debug\"
ObjectFile="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\debug\"
ProgramDataBaseFileName="..\..\..\..\..\build\msvc_9\extern\ftgl\mtdll\debug\"
WarningLevel="2"
SuppressStartupBanner="true"
DebugInformationFormat="3"
CompileAs="0"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="..\..\..\..\..\build\msvc_9\libs\extern\mtdll\debug\ftgl_static.lib"
SuppressStartupBanner="true"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Copying FTGL files library (debug target) to lib tree."
CommandLine="ECHO Copying header files&#x0D;&#x0A;IF NOT EXIST ..\..\..\..\..\build\msvc_9\extern\ftgl\include\ MKDIR ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;XCOPY /Y ..\..\include\*.h ..\..\..\..\..\build\msvc_9\extern\ftgl\include&#x0D;&#x0A;ECHO Done&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="..\..\src\FTBitmapGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTCharmap.cpp"
>
</File>
<File
RelativePath="..\..\src\FTContour.cpp"
>
</File>
<File
RelativePath="..\..\src\FTExtrdGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTFace.cpp"
>
</File>
<File
RelativePath="..\..\src\FTFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGLBitmapFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGLExtrdFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGLOutlineFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGLPixmapFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGLPolygonFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGLTextureFont.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTGlyphContainer.cpp"
>
</File>
<File
RelativePath="..\..\src\FTLibrary.cpp"
>
</File>
<File
RelativePath="..\..\src\FTOutlineGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTPixmapGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTPoint.cpp"
>
</File>
<File
RelativePath="..\..\src\FTPolyGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTSize.cpp"
>
</File>
<File
RelativePath="..\..\src\FTTextureGlyph.cpp"
>
</File>
<File
RelativePath="..\..\src\FTVectoriser.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="..\..\include\FTBBox.h"
>
</File>
<File
RelativePath="..\..\include\FTBitmapGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTCharmap.h"
>
</File>
<File
RelativePath="..\..\include\FTCharToGlyphIndexMap.h"
>
</File>
<File
RelativePath="..\..\include\FTContour.h"
>
</File>
<File
RelativePath="..\..\include\FTExtrdGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTFace.h"
>
</File>
<File
RelativePath="..\..\include\FTFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGL.h"
>
</File>
<File
RelativePath="..\..\include\FTGLBitmapFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGLExtrdFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGLOutlineFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGLPixmapFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGLPolygonFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGLTextureFont.h"
>
</File>
<File
RelativePath="..\..\include\FTGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTGlyphContainer.h"
>
</File>
<File
RelativePath="..\..\include\FTLibrary.h"
>
</File>
<File
RelativePath="..\..\include\FTList.h"
>
</File>
<File
RelativePath="..\..\include\FTOutlineGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTPixmapGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTPoint.h"
>
</File>
<File
RelativePath="..\..\include\FTPolyGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTSize.h"
>
</File>
<File
RelativePath="..\..\include\FTTextureGlyph.h"
>
</File>
<File
RelativePath="..\..\include\FTVector.h"
>
</File>
<File
RelativePath="..\..\include\FTVectoriser.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -1,66 +0,0 @@
#include <string>
#include "FTBitmapGlyph.h"
FTBitmapGlyph::FTBitmapGlyph( FT_GlyphSlot glyph)
: FTGlyph( glyph),
destWidth(0),
destHeight(0),
data(0)
{
err = FT_Render_Glyph( glyph, FT_RENDER_MODE_MONO);
if( err || ft_glyph_format_bitmap != glyph->format)
{
return;
}
FT_Bitmap bitmap = glyph->bitmap;
unsigned int srcWidth = bitmap.width;
unsigned int srcHeight = bitmap.rows;
unsigned int srcPitch = bitmap.pitch;
destWidth = srcWidth;
destHeight = srcHeight;
destPitch = srcPitch;
if( destWidth && destHeight)
{
data = new unsigned char[destPitch * destHeight];
unsigned char* dest = data + (( destHeight - 1) * destPitch);
unsigned char* src = bitmap.buffer;
for( unsigned int y = 0; y < srcHeight; ++y)
{
memcpy( dest, src, srcPitch);
dest -= destPitch;
src += srcPitch;
}
}
pos.x = glyph->bitmap_left;
pos.y = static_cast<int>(srcHeight) - glyph->bitmap_top;
}
FTBitmapGlyph::~FTBitmapGlyph()
{
delete [] data;
}
float FTBitmapGlyph::Render( const FTPoint& pen)
{
if( data)
{
glBitmap( 0, 0, 0.0, 0.0, pen.x + pos.x, pen.y - pos.y, (const GLubyte*)0 );
glPixelStorei( GL_UNPACK_ROW_LENGTH, destPitch * 8);
glBitmap( destWidth, destHeight, 0.0f, 0.0, 0.0, 0.0, (const GLubyte*)data);
glBitmap( 0, 0, 0.0, 0.0, -pen.x - pos.x, -pen.y + pos.y, (const GLubyte*)0 );
}
return advance;
}

View File

@@ -1,59 +0,0 @@
#include "FTBufferGlyph.h"
FTBufferGlyph::FTBufferGlyph( FT_GlyphSlot glyph, unsigned char* b)
: FTGlyph( glyph),
destWidth(0),
destHeight(0),
data(0),
buffer(b)
{
err = FT_Render_Glyph( glyph, FT_RENDER_MODE_NORMAL);
if( err || ft_glyph_format_bitmap != glyph->format)
{
return;
}
FT_Bitmap bitmap = glyph->bitmap;
unsigned int srcWidth = bitmap.width;
unsigned int srcHeight = bitmap.rows;
unsigned int srcPitch = bitmap.pitch;
destWidth = srcWidth;
destHeight = srcHeight;
destPitch = srcPitch;
if( destWidth && destHeight)
{
data = new unsigned char[destPitch * destHeight];
unsigned char* dest = data + (( destHeight - 1) * destPitch);
unsigned char* src = bitmap.buffer;
for( unsigned int y = 0; y < srcHeight; ++y)
{
memcpy( dest, src, srcPitch);
dest -= destPitch;
src += srcPitch;
}
}
pos.x = glyph->bitmap_left;
pos.y = srcHeight - glyph->bitmap_top;
}
FTBufferGlyph::~FTBufferGlyph()
{
delete [] data;
}
float FTBufferGlyph::Render( const FTPoint& pen)
{
if( data && buffer)
{
}
return advance;
}

View File

@@ -1,62 +0,0 @@
#include "FTFace.h"
#include "FTCharmap.h"
FTCharmap::FTCharmap( FTFace* face)
: ftFace( *(face->Face())),
err(0)
{
if( !ftFace->charmap)
{
err = FT_Set_Charmap( ftFace, ftFace->charmaps[0]);
}
ftEncoding = ftFace->charmap->encoding;
}
FTCharmap::~FTCharmap()
{
charMap.clear();
}
bool FTCharmap::CharMap( FT_Encoding encoding)
{
if( ftEncoding == encoding)
{
return true;
}
err = FT_Select_Charmap( ftFace, encoding );
if( !err)
{
ftEncoding = encoding;
}
else
{
ftEncoding = ft_encoding_none;
}
charMap.clear();
return !err;
}
unsigned int FTCharmap::GlyphListIndex( const unsigned int characterCode )
{
return charMap.find( characterCode);
}
unsigned int FTCharmap::FontIndex( const unsigned int characterCode )
{
return FT_Get_Char_Index( ftFace, characterCode);
}
void FTCharmap::InsertIndex( const unsigned int characterCode, const unsigned int containerIndex)
{
charMap.insert( characterCode, containerIndex);
}

View File

@@ -1,149 +0,0 @@
#include "FTContour.h"
static const float BEZIER_STEP_SIZE = 0.2f;
void FTContour::AddPoint( FTPoint point)
{
if( pointList.empty() || point != pointList[pointList.size() - 1])
{
pointList.push_back( point);
}
}
void FTContour::AddPoint( float x, float y)
{
AddPoint( FTPoint( x, y, 0.0f));
}
void FTContour::evaluateQuadraticCurve()
{
for( unsigned int i = 0; i <= ( 1.0f / BEZIER_STEP_SIZE); i++)
{
float bezierValues[2][2];
float t = static_cast<float>(i) * BEZIER_STEP_SIZE;
bezierValues[0][0] = (1.0f - t) * controlPoints[0][0] + t * controlPoints[1][0];
bezierValues[0][1] = (1.0f - t) * controlPoints[0][1] + t * controlPoints[1][1];
bezierValues[1][0] = (1.0f - t) * controlPoints[1][0] + t * controlPoints[2][0];
bezierValues[1][1] = (1.0f - t) * controlPoints[1][1] + t * controlPoints[2][1];
bezierValues[0][0] = (1.0f - t) * bezierValues[0][0] + t * bezierValues[1][0];
bezierValues[0][1] = (1.0f - t) * bezierValues[0][1] + t * bezierValues[1][1];
AddPoint( bezierValues[0][0], bezierValues[0][1]);
}
}
void FTContour::evaluateCubicCurve()
{
for( unsigned int i = 0; i <= ( 1.0f / BEZIER_STEP_SIZE); i++)
{
float bezierValues[3][2];
float t = static_cast<float>(i) * BEZIER_STEP_SIZE;
bezierValues[0][0] = (1.0f - t) * controlPoints[0][0] + t * controlPoints[1][0];
bezierValues[0][1] = (1.0f - t) * controlPoints[0][1] + t * controlPoints[1][1];
bezierValues[1][0] = (1.0f - t) * controlPoints[1][0] + t * controlPoints[2][0];
bezierValues[1][1] = (1.0f - t) * controlPoints[1][1] + t * controlPoints[2][1];
bezierValues[2][0] = (1.0f - t) * controlPoints[2][0] + t * controlPoints[3][0];
bezierValues[2][1] = (1.0f - t) * controlPoints[2][1] + t * controlPoints[3][1];
bezierValues[0][0] = (1.0f - t) * bezierValues[0][0] + t * bezierValues[1][0];
bezierValues[0][1] = (1.0f - t) * bezierValues[0][1] + t * bezierValues[1][1];
bezierValues[1][0] = (1.0f - t) * bezierValues[1][0] + t * bezierValues[2][0];
bezierValues[1][1] = (1.0f - t) * bezierValues[1][1] + t * bezierValues[2][1];
bezierValues[0][0] = (1.0f - t) * bezierValues[0][0] + t * bezierValues[1][0];
bezierValues[0][1] = (1.0f - t) * bezierValues[0][1] + t * bezierValues[1][1];
AddPoint( bezierValues[0][0], bezierValues[0][1]);
}
}
FTContour::FTContour( FT_Vector* contour, char* pointTags, unsigned int numberOfPoints)
{
for( unsigned int pointIndex = 0; pointIndex < numberOfPoints; ++ pointIndex)
{
char pointTag = pointTags[pointIndex];
if( pointTag == FT_Curve_Tag_On || numberOfPoints < 2)
{
AddPoint( contour[pointIndex].x, contour[pointIndex].y);
continue;
}
FTPoint controlPoint( contour[pointIndex]);
FTPoint previousPoint = ( 0 == pointIndex)
? FTPoint( contour[numberOfPoints - 1])
: pointList[pointList.size() - 1];
FTPoint nextPoint = ( pointIndex == numberOfPoints - 1)
? pointList[0]
: FTPoint( contour[pointIndex + 1]);
if( pointTag == FT_Curve_Tag_Conic)
{
char nextPointTag = ( pointIndex == numberOfPoints - 1)
? pointTags[0]
: pointTags[pointIndex + 1];
while( nextPointTag == FT_Curve_Tag_Conic)
{
nextPoint = FTPoint( static_cast<float>( controlPoint.x + nextPoint.x) * 0.5f,
static_cast<float>( controlPoint.y + nextPoint.y) * 0.5f,
0);
controlPoints[0][0] = previousPoint.x; controlPoints[0][1] = previousPoint.y;
controlPoints[1][0] = controlPoint.x; controlPoints[1][1] = controlPoint.y;
controlPoints[2][0] = nextPoint.x; controlPoints[2][1] = nextPoint.y;
evaluateQuadraticCurve();
++pointIndex;
previousPoint = nextPoint;
controlPoint = FTPoint( contour[pointIndex]);
nextPoint = ( pointIndex == numberOfPoints - 1)
? pointList[0]
: FTPoint( contour[pointIndex + 1]);
nextPointTag = ( pointIndex == numberOfPoints - 1)
? pointTags[0]
: pointTags[pointIndex + 1];
}
controlPoints[0][0] = previousPoint.x; controlPoints[0][1] = previousPoint.y;
controlPoints[1][0] = controlPoint.x; controlPoints[1][1] = controlPoint.y;
controlPoints[2][0] = nextPoint.x; controlPoints[2][1] = nextPoint.y;
evaluateQuadraticCurve();
continue;
}
if( pointTag == FT_Curve_Tag_Cubic)
{
FTPoint controlPoint2 = nextPoint;
FTPoint nextPoint = ( pointIndex == numberOfPoints - 2)
? pointList[0]
: FTPoint( contour[pointIndex + 2]);
controlPoints[0][0] = previousPoint.x; controlPoints[0][1] = previousPoint.y;
controlPoints[1][0] = controlPoint.x; controlPoints[1][1] = controlPoint.y;
controlPoints[2][0] = controlPoint2.x; controlPoints[2][1] = controlPoint2.y;
controlPoints[3][0] = nextPoint.x; controlPoints[3][1] = nextPoint.y;
evaluateCubicCurve();
++pointIndex;
continue;
}
}
}

View File

@@ -1,141 +0,0 @@
#include <math.h>
#include "FTExtrdGlyph.h"
#include "FTVectoriser.h"
FTExtrdGlyph::FTExtrdGlyph( FT_GlyphSlot glyph, float d)
: FTGlyph( glyph),
glList(0),
depth(d)
{
bBox.SetDepth( -depth);
if( ft_glyph_format_outline != glyph->format)
{
err = 0x14; // Invalid_Outline
return;
}
FTVectoriser vectoriser( glyph);
if ( ( vectoriser.ContourCount() < 1) || ( vectoriser.PointCount() < 3))
{
return;
}
unsigned int tesselationIndex;
glList = glGenLists(1);
glNewList( glList, GL_COMPILE);
vectoriser.MakeMesh( 1.0);
glNormal3d(0.0, 0.0, 1.0);
const FTMesh* mesh = vectoriser.GetMesh();
for( tesselationIndex = 0; tesselationIndex < mesh->TesselationCount(); ++tesselationIndex)
{
const FTTesselation* subMesh = mesh->Tesselation( tesselationIndex);
unsigned int polyonType = subMesh->PolygonType();
glBegin( polyonType);
for( unsigned int pointIndex = 0; pointIndex < subMesh->PointCount(); ++pointIndex)
{
glVertex3f( subMesh->Point( pointIndex).x / 64.0f,
subMesh->Point( pointIndex).y / 64.0f,
0.0f);
}
glEnd();
}
vectoriser.MakeMesh( -1.0);
glNormal3d(0.0, 0.0, -1.0);
mesh = vectoriser.GetMesh();
for( tesselationIndex = 0; tesselationIndex < mesh->TesselationCount(); ++tesselationIndex)
{
const FTTesselation* subMesh = mesh->Tesselation( tesselationIndex);
unsigned int polyonType = subMesh->PolygonType();
glBegin( polyonType);
for( unsigned int pointIndex = 0; pointIndex < subMesh->PointCount(); ++pointIndex)
{
glVertex3f( subMesh->Point( pointIndex).x / 64.0f,
subMesh->Point( pointIndex).y / 64.0f,
-depth);
}
glEnd();
}
int contourFlag = vectoriser.ContourFlag();
for( size_t c = 0; c < vectoriser.ContourCount(); ++c)
{
const FTContour* contour = vectoriser.Contour(c);
unsigned int numberOfPoints = contour->PointCount();
glBegin( GL_QUAD_STRIP);
for( unsigned int j = 0; j <= numberOfPoints; ++j)
{
unsigned int index = ( j == numberOfPoints) ? 0 : j;
unsigned int nextIndex = ( index == numberOfPoints - 1) ? 0 : index + 1;
FTPoint normal = GetNormal( contour->Point(index), contour->Point(nextIndex));
glNormal3f( normal.x, normal.y, 0.0f);
if( contourFlag & ft_outline_reverse_fill)
{
glVertex3f( contour->Point(index).x / 64.0f, contour->Point(index).y / 64.0f, 0.0f);
glVertex3f( contour->Point(index).x / 64.0f, contour->Point(index).y / 64.0f, -depth);
}
else
{
glVertex3f( contour->Point(index).x / 64.0f, contour->Point(index).y / 64.0f, -depth);
glVertex3f( contour->Point(index).x / 64.0f, contour->Point(index).y / 64.0f, 0.0f);
}
}
glEnd();
}
glEndList();
}
FTExtrdGlyph::~FTExtrdGlyph()
{
glDeleteLists( glList, 1);
}
float FTExtrdGlyph::Render( const FTPoint& pen)
{
if( glList)
{
glTranslatef( pen.x, pen.y, 0);
glCallList( glList);
glTranslatef( -pen.x, -pen.y, 0);
}
return advance;
}
FTPoint FTExtrdGlyph::GetNormal( const FTPoint &a, const FTPoint &b)
{
float vectorX = a.x - b.x;
float vectorY = a.y - b.y;
float length = sqrt( vectorX * vectorX + vectorY * vectorY );
if( length > 0.0f)
{
length = 1 / length;
}
else
{
length = 0.0f;
}
return FTPoint( -vectorY * length,
vectorX * length,
0.0f);
}

View File

@@ -1,154 +0,0 @@
#include "FTFace.h"
#include "FTLibrary.h"
#include FT_TRUETYPE_TABLES_H
FTFace::FTFace( const char* filename)
: numGlyphs(0),
fontEncodingList(0),
err(0)
{
const FT_Long DEFAULT_FACE_INDEX = 0;
ftFace = new FT_Face;
err = FT_New_Face( *FTLibrary::Instance().GetLibrary(), filename, DEFAULT_FACE_INDEX, ftFace);
if( err)
{
delete ftFace;
ftFace = 0;
}
else
{
numGlyphs = (*ftFace)->num_glyphs;
}
}
FTFace::FTFace( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: numGlyphs(0),
err(0)
{
const FT_Long DEFAULT_FACE_INDEX = 0;
ftFace = new FT_Face;
err = FT_New_Memory_Face( *FTLibrary::Instance().GetLibrary(), (FT_Byte *)pBufferBytes, bufferSizeInBytes, DEFAULT_FACE_INDEX, ftFace);
if( err)
{
delete ftFace;
ftFace = 0;
}
else
{
numGlyphs = (*ftFace)->num_glyphs;
}
}
FTFace::~FTFace()
{
Close();
}
bool FTFace::Attach( const char* filename)
{
err = FT_Attach_File( *ftFace, filename);
return !err;
}
bool FTFace::Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
{
FT_Open_Args open;
open.flags = FT_OPEN_MEMORY;
open.memory_base = (FT_Byte *)pBufferBytes;
open.memory_size = bufferSizeInBytes;
err = FT_Attach_Stream( *ftFace, &open);
return !err;
}
void FTFace::Close()
{
if( ftFace)
{
FT_Done_Face( *ftFace);
delete ftFace;
ftFace = 0;
}
}
const FTSize& FTFace::Size( const unsigned int size, const unsigned int res)
{
charSize.CharSize( ftFace, size, res, res);
err = charSize.Error();
return charSize;
}
unsigned int FTFace::CharMapCount()
{
return (*ftFace)->num_charmaps;
}
FT_Encoding* FTFace::CharMapList()
{
if( 0 == fontEncodingList)
{
fontEncodingList = new FT_Encoding[CharMapCount()];
for( size_t encodingIndex = 0; encodingIndex < CharMapCount(); ++encodingIndex)
{
fontEncodingList[encodingIndex] = (*ftFace)->charmaps[encodingIndex]->encoding;
}
}
return fontEncodingList;
}
unsigned int FTFace::UnitsPerEM() const
{
return (*ftFace)->units_per_EM;
}
FTPoint FTFace::KernAdvance( unsigned int index1, unsigned int index2)
{
float x, y;
x = y = 0.0f;
if( FT_HAS_KERNING((*ftFace)) && index1 && index2)
{
FT_Vector kernAdvance;
kernAdvance.x = kernAdvance.y = 0;
err = FT_Get_Kerning( *ftFace, index1, index2, ft_kerning_unfitted, &kernAdvance);
if( !err)
{
x = static_cast<float>( kernAdvance.x) / 64.0f;
y = static_cast<float>( kernAdvance.y) / 64.0f;
}
}
return FTPoint( x, y, 0.0);
}
FT_GlyphSlot FTFace::Glyph( unsigned int index, FT_Int load_flags)
{
err = FT_Load_Glyph( *ftFace, index, load_flags);
if( err)
{
return NULL;
}
return (*ftFace)->glyph;
}

View File

@@ -1,271 +0,0 @@
#include "FTFace.h"
#include "FTFont.h"
#include "FTGlyphContainer.h"
#include "FTBBox.h"
FTFont::FTFont( const char* fontname)
: face( fontname),
glyphList(0)
{
err = face.Error();
if( err == 0)
{
glyphList = new FTGlyphContainer( &face);
}
}
FTFont::FTFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: face( pBufferBytes, bufferSizeInBytes),
glyphList(0)
{
err = face.Error();
if( err == 0)
{
glyphList = new FTGlyphContainer( &face);
}
}
FTFont::~FTFont()
{
delete glyphList;
}
bool FTFont::Attach( const char* filename)
{
if( face.Attach( filename))
{
err = 0;
return true;
}
else
{
err = face.Error();
return false;
}
}
bool FTFont::Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
{
if( face.Attach( pBufferBytes, bufferSizeInBytes))
{
err = 0;
return true;
}
else
{
err = face.Error();
return false;
}
}
bool FTFont::FaceSize( const unsigned int size, const unsigned int res )
{
charSize = face.Size( size, res);
if( face.Error())
{
return false;
}
if( glyphList != NULL)
{
delete glyphList;
}
glyphList = new FTGlyphContainer( &face);
return true;
}
unsigned int FTFont::FaceSize() const
{
return charSize.CharSize();
}
bool FTFont::CharMap( FT_Encoding encoding)
{
bool result = glyphList->CharMap( encoding);
err = glyphList->Error();
return result;
}
unsigned int FTFont::CharMapCount()
{
return face.CharMapCount();
}
FT_Encoding* FTFont::CharMapList()
{
return face.CharMapList();
}
float FTFont::Ascender() const
{
return charSize.Ascender();
}
float FTFont::Descender() const
{
return charSize.Descender();
}
void FTFont::BBox( const char* string,
float& llx, float& lly, float& llz, float& urx, float& ury, float& urz)
{
FTBBox totalBBox;
if((NULL != string) && ('\0' != *string))
{
const unsigned char* c = (unsigned char*)string;
CheckGlyph( *c);
totalBBox = glyphList->BBox( *c);
float advance = glyphList->Advance( *c, *(c + 1));
++c;
while( *c)
{
CheckGlyph( *c);
FTBBox tempBBox = glyphList->BBox( *c);
tempBBox.Move( FTPoint( advance, 0.0f, 0.0f));
totalBBox += tempBBox;
advance += glyphList->Advance( *c, *(c + 1));
++c;
}
}
llx = totalBBox.lowerX;
lly = totalBBox.lowerY;
llz = totalBBox.lowerZ;
urx = totalBBox.upperX;
ury = totalBBox.upperY;
urz = totalBBox.upperZ;
}
void FTFont::BBox( const wchar_t* string,
float& llx, float& lly, float& llz, float& urx, float& ury, float& urz)
{
FTBBox totalBBox;
if((NULL != string) && ('\0' != *string))
{
const wchar_t* c = string;
CheckGlyph( *c);
totalBBox = glyphList->BBox( *c);
float advance = glyphList->Advance( *c, *(c + 1));
++c;
while( *c)
{
CheckGlyph( *c);
FTBBox tempBBox = glyphList->BBox( *c);
tempBBox.Move( FTPoint( advance, 0.0f, 0.0f));
totalBBox += tempBBox;
advance += glyphList->Advance( *c, *(c + 1));
++c;
}
}
llx = totalBBox.lowerX;
lly = totalBBox.lowerY;
llz = totalBBox.lowerZ;
urx = totalBBox.upperX;
ury = totalBBox.upperY;
urz = totalBBox.upperZ;
}
float FTFont::Advance( const wchar_t* string)
{
const wchar_t* c = string;
float width = 0.0f;
while( *c)
{
CheckGlyph( *c);
width += glyphList->Advance( *c, *(c + 1));
++c;
}
return width;
}
float FTFont::Advance( const char* string)
{
const unsigned char* c = (unsigned char*)string;
float width = 0.0f;
while( *c)
{
CheckGlyph( *c);
width += glyphList->Advance( *c, *(c + 1));
++c;
}
return width;
}
void FTFont::Render( const char* string )
{
const unsigned char* c = (unsigned char*)string;
pen.x = 0; pen.y = 0;
while( *c)
{
DoRender( *c, *(c + 1));
++c;
}
}
void FTFont::Render( const wchar_t* string )
{
const wchar_t* c = string;
pen.x = 0; pen.y = 0;
while( *c)
{
DoRender( *c, *(c + 1));
++c;
}
}
void FTFont::DoRender( const unsigned int chr, const unsigned int nextChr)
{
CheckGlyph( chr);
FTPoint kernAdvance = glyphList->Render( chr, nextChr, pen);
pen.x += kernAdvance.x;
pen.y += kernAdvance.y;
}
void FTFont::CheckGlyph( const unsigned int characterCode)
{
if( NULL == glyphList->Glyph( characterCode))
{
unsigned int glyphIndex = glyphList->FontIndex( characterCode);
glyphList->Add( MakeGlyph( glyphIndex), characterCode);
}
}

View File

@@ -1,66 +0,0 @@
#include "FTGLBitmapFont.h"
#include "FTBitmapGlyph.h"
FTGLBitmapFont::FTGLBitmapFont( const char* fontname)
: FTFont( fontname)
{}
FTGLBitmapFont::FTGLBitmapFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes)
{}
FTGLBitmapFont::~FTGLBitmapFont()
{}
FTGlyph* FTGLBitmapFont::MakeGlyph( unsigned int g)
{
FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_DEFAULT);
if( ftGlyph)
{
FTBitmapGlyph* tempGlyph = new FTBitmapGlyph( ftGlyph);
return tempGlyph;
}
err = face.Error();
return NULL;
}
void FTGLBitmapFont::Render( const char* string)
{
glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
glPushAttrib( GL_ENABLE_BIT);
glPixelStorei( GL_UNPACK_LSB_FIRST, GL_FALSE);
glPixelStorei( GL_UNPACK_ALIGNMENT, 1);
glDisable( GL_BLEND);
FTFont::Render( string);
glPopAttrib();
glPopClientAttrib();
}
void FTGLBitmapFont::Render( const wchar_t* string)
{
glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
glPushAttrib( GL_ENABLE_BIT);
glPixelStorei( GL_UNPACK_LSB_FIRST, GL_FALSE);
glPixelStorei( GL_UNPACK_ALIGNMENT, 1);
glDisable( GL_BLEND);
FTFont::Render( string);
glPopAttrib();
glPopClientAttrib();
}

View File

@@ -1,53 +0,0 @@
#include "FTGLBufferFont.h"
#include "FTBufferGlyph.h"
FTGLBufferFont::FTGLBufferFont( const char* fontname)
: FTFont( fontname),
buffer(0)
{}
FTGLBufferFont::FTGLBufferFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes),
buffer(0)
{}
FTGLBufferFont::~FTGLBufferFont()
{}
FTGlyph* FTGLBufferFont::MakeGlyph( unsigned int g)
{
FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_NO_HINTING);
if( ftGlyph)
{
FTBufferGlyph* tempGlyph = new FTBufferGlyph( ftGlyph, buffer);
return tempGlyph;
}
err = face.Error();
return NULL;
}
void FTGLBufferFont::Render( const char* string)
{
if( NULL != buffer)
{
FTFont::Render( string);
}
}
void FTGLBufferFont::Render( const wchar_t* string)
{
if( NULL != buffer)
{
FTFont::Render( string);
}
}

View File

@@ -1,35 +0,0 @@
#include "FTGLExtrdFont.h"
#include "FTExtrdGlyph.h"
FTGLExtrdFont::FTGLExtrdFont( const char* fontname)
: FTFont( fontname),
depth( 0.0f)
{}
FTGLExtrdFont::FTGLExtrdFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes),
depth( 0.0f)
{}
FTGLExtrdFont::~FTGLExtrdFont()
{}
FTGlyph* FTGLExtrdFont::MakeGlyph( unsigned int glyphIndex)
{
FT_GlyphSlot ftGlyph = face.Glyph( glyphIndex, FT_LOAD_NO_HINTING);
if( ftGlyph)
{
FTExtrdGlyph* tempGlyph = new FTExtrdGlyph( ftGlyph, depth);
return tempGlyph;
}
err = face.Error();
return NULL;
}

View File

@@ -1,66 +0,0 @@
#include "FTGLOutlineFont.h"
#include "FTOutlineGlyph.h"
FTGLOutlineFont::FTGLOutlineFont( const char* fontname)
: FTFont( fontname)
{}
FTGLOutlineFont::FTGLOutlineFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes)
{}
FTGLOutlineFont::~FTGLOutlineFont()
{}
FTGlyph* FTGLOutlineFont::MakeGlyph( unsigned int g)
{
FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_NO_HINTING);
if( ftGlyph)
{
FTOutlineGlyph* tempGlyph = new FTOutlineGlyph( ftGlyph);
return tempGlyph;
}
err = face.Error();
return NULL;
}
void FTGLOutlineFont::Render( const char* string)
{
glPushAttrib( GL_ENABLE_BIT | GL_HINT_BIT | GL_LINE_BIT | GL_COLOR_BUFFER_BIT);
glDisable( GL_TEXTURE_2D);
glEnable( GL_LINE_SMOOTH);
glHint( GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE
FTFont::Render( string);
glPopAttrib();
}
void FTGLOutlineFont::Render( const wchar_t* string)
{
glPushAttrib( GL_ENABLE_BIT | GL_HINT_BIT | GL_LINE_BIT | GL_COLOR_BUFFER_BIT);
glDisable( GL_TEXTURE_2D);
glEnable( GL_LINE_SMOOTH);
glHint( GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE
FTFont::Render( string);
glPopAttrib();
}

View File

@@ -1,68 +0,0 @@
#include "FTGLPixmapFont.h"
#include "FTPixmapGlyph.h"
FTGLPixmapFont::FTGLPixmapFont( const char* fontname)
: FTFont( fontname)
{}
FTGLPixmapFont::FTGLPixmapFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes)
{}
FTGLPixmapFont::~FTGLPixmapFont()
{}
FTGlyph* FTGLPixmapFont::MakeGlyph( unsigned int g)
{
FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP);
if( ftGlyph)
{
FTPixmapGlyph* tempGlyph = new FTPixmapGlyph( ftGlyph);
return tempGlyph;
}
err = face.Error();
return NULL;
}
void FTGLPixmapFont::Render( const char* string)
{
glPushAttrib( GL_ENABLE_BIT | GL_PIXEL_MODE_BIT | GL_COLOR_BUFFER_BIT);
glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable( GL_TEXTURE_2D);
FTFont::Render( string);
glPopClientAttrib();
glPopAttrib();
}
void FTGLPixmapFont::Render( const wchar_t* string)
{
//glPushAttrib( GL_ENABLE_BIT | GL_PIXEL_MODE_BIT | GL_COLOR_BUFFER_BIT);
// glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable( GL_TEXTURE_2D);
FTFont::Render( string);
glDisable(GL_BLEND);
// glPopClientAttrib();
// glPopAttrib();
}

View File

@@ -1,33 +0,0 @@
#include "FTGLPolygonFont.h"
#include "FTPolyGlyph.h"
FTGLPolygonFont::FTGLPolygonFont( const char* fontname)
: FTFont( fontname)
{}
FTGLPolygonFont::FTGLPolygonFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes)
{}
FTGLPolygonFont::~FTGLPolygonFont()
{}
FTGlyph* FTGLPolygonFont::MakeGlyph( unsigned int g)
{
FT_GlyphSlot ftGlyph = face.Glyph( g, FT_LOAD_NO_HINTING);
if( ftGlyph)
{
FTPolyGlyph* tempGlyph = new FTPolyGlyph( ftGlyph);
return tempGlyph;
}
err = face.Error();
return NULL;
}

View File

@@ -1,178 +0,0 @@
#include <string> // For memset
#include "FTGLTextureFont.h"
#include "FTTextureGlyph.h"
inline GLuint NextPowerOf2( GLuint in)
{
in -= 1;
in |= in >> 16;
in |= in >> 8;
in |= in >> 4;
in |= in >> 2;
in |= in >> 1;
return in + 1;
}
FTGLTextureFont::FTGLTextureFont( const char* fontname)
: FTFont( fontname),
maxTextSize(0),
textureWidth(0),
textureHeight(0),
glyphHeight(0),
glyphWidth(0),
padding(3),
xOffset(0),
yOffset(0)
{
remGlyphs = numGlyphs = face.GlyphCount();
}
FTGLTextureFont::FTGLTextureFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
: FTFont( pBufferBytes, bufferSizeInBytes),
maxTextSize(0),
textureWidth(0),
textureHeight(0),
glyphHeight(0),
glyphWidth(0),
padding(3),
xOffset(0),
yOffset(0)
{
remGlyphs = numGlyphs = face.GlyphCount();
}
FTGLTextureFont::~FTGLTextureFont()
{
glDeleteTextures( textureIDList.size(), (const GLuint*)&textureIDList[0]);
}
FTGlyph* FTGLTextureFont::MakeGlyph( unsigned int glyphIndex)
{
FT_GlyphSlot ftGlyph = face.Glyph( glyphIndex, FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP);
if( ftGlyph)
{
glyphHeight = static_cast<int>( charSize.Height());
glyphWidth = static_cast<int>( charSize.Width());
if( textureIDList.empty())
{
textureIDList.push_back( CreateTexture());
xOffset = yOffset = padding;
}
if( xOffset > ( textureWidth - glyphWidth))
{
xOffset = padding;
yOffset += glyphHeight;
if( yOffset > ( textureHeight - glyphHeight))
{
textureIDList.push_back( CreateTexture());
yOffset = padding;
}
}
FTTextureGlyph* tempGlyph = new FTTextureGlyph( ftGlyph, textureIDList[textureIDList.size() - 1],
xOffset, yOffset, textureWidth, textureHeight);
xOffset += static_cast<int>( tempGlyph->BBox().upperX - tempGlyph->BBox().lowerX + padding);
--remGlyphs;
return tempGlyph;
}
err = face.Error();
return NULL;
}
void FTGLTextureFont::CalculateTextureSize()
{
if( !maxTextSize)
{
glGetIntegerv( GL_MAX_TEXTURE_SIZE, (GLint*)&maxTextSize);
}
textureWidth = NextPowerOf2( (remGlyphs * glyphWidth) + ( padding * 2));
if( textureWidth > maxTextSize)
{
textureWidth = maxTextSize;
}
int h = static_cast<int>( (textureWidth - ( padding * 2)) / glyphWidth);
textureHeight = NextPowerOf2( (( numGlyphs / h) + 1) * glyphHeight);
textureHeight = textureHeight > maxTextSize ? maxTextSize : textureHeight;
}
GLuint FTGLTextureFont::CreateTexture()
{
CalculateTextureSize();
int totalMemory = textureWidth * textureHeight;
unsigned char* textureMemory = new unsigned char[totalMemory];
memset( textureMemory, 0, totalMemory);
GLuint textID;
glGenTextures( 1, (GLuint*)&textID);
glBindTexture( GL_TEXTURE_2D, textID);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA, textureWidth, textureHeight, 0, GL_ALPHA, GL_UNSIGNED_BYTE, textureMemory);
delete [] textureMemory;
return textID;
}
bool FTGLTextureFont::FaceSize( const unsigned int size, const unsigned int res)
{
if( !textureIDList.empty())
{
glDeleteTextures( textureIDList.size(), (const GLuint*)&textureIDList[0]);
remGlyphs = numGlyphs = face.GlyphCount();
}
return FTFont::FaceSize( size, res);
}
void FTGLTextureFont::Render( const char* string)
{
// glPushAttrib( GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE
FTFont::Render( string);
// glPopAttrib();
}
void FTGLTextureFont::Render( const wchar_t* string)
{
// glPushAttrib( GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT);
glEnable(GL_BLEND);
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // GL_ONE
FTFont::Render( string);
// glPopAttrib();
}

View File

@@ -1,17 +0,0 @@
#include "FTGlyph.h"
FTGlyph::FTGlyph( FT_GlyphSlot glyph)
: advance(0.0f),
err(0)
{
if( glyph)
{
bBox = FTBBox( glyph);
advance = static_cast<float>( glyph->advance.x) / 64.0f;
}
}
FTGlyph::~FTGlyph()
{}

View File

@@ -1,93 +0,0 @@
#include "FTGlyphContainer.h"
#include "FTGlyph.h"
#include "FTFace.h"
#include "FTCharmap.h"
FTGlyphContainer::FTGlyphContainer( FTFace* f)
: face(f),
err(0)
{
glyphs.push_back( NULL);
charMap = new FTCharmap( face);
}
FTGlyphContainer::~FTGlyphContainer()
{
GlyphVector::iterator glyphIterator;
for( glyphIterator = glyphs.begin(); glyphIterator != glyphs.end(); ++glyphIterator)
{
delete *glyphIterator;
}
glyphs.clear();
delete charMap;
}
bool FTGlyphContainer::CharMap( FT_Encoding encoding)
{
bool result = charMap->CharMap( encoding);
err = charMap->Error();
return result;
}
unsigned int FTGlyphContainer::FontIndex( const unsigned int characterCode) const
{
return charMap->FontIndex( characterCode);
}
void FTGlyphContainer::Add( FTGlyph* tempGlyph, const unsigned int characterCode)
{
charMap->InsertIndex( characterCode, glyphs.size());
glyphs.push_back( tempGlyph);
}
const FTGlyph* const FTGlyphContainer::Glyph( const unsigned int characterCode) const
{
signed int index = charMap->GlyphListIndex( characterCode);
return glyphs[index];
}
FTBBox FTGlyphContainer::BBox( const unsigned int characterCode) const
{
return glyphs[charMap->GlyphListIndex( characterCode)]->BBox();
}
float FTGlyphContainer::Advance( const unsigned int characterCode, const unsigned int nextCharacterCode)
{
unsigned int left = charMap->FontIndex( characterCode);
unsigned int right = charMap->FontIndex( nextCharacterCode);
float width = face->KernAdvance( left, right).x;
width += glyphs[charMap->GlyphListIndex( characterCode)]->Advance();
return width;
}
FTPoint FTGlyphContainer::Render( const unsigned int characterCode, const unsigned int nextCharacterCode, FTPoint penPosition)
{
FTPoint kernAdvance;
float advance = 0;
unsigned int left = charMap->FontIndex( characterCode);
unsigned int right = charMap->FontIndex( nextCharacterCode);
kernAdvance = face->KernAdvance( left, right);
if( !face->Error())
{
advance = glyphs[charMap->GlyphListIndex( characterCode)]->Render( penPosition);
}
kernAdvance.x = advance + kernAdvance.x;
// kernAdvance.y = advance.y + kernAdvance.y;
return kernAdvance;
}

View File

@@ -1,64 +0,0 @@
#include "FTLibrary.h"
FTLibrary& FTLibrary::Instance()
{
static FTLibrary ftlib;
return ftlib;
}
FTLibrary::~FTLibrary()
{
if( library != 0)
{
FT_Done_FreeType( *library);
delete library;
library= 0;
}
// if( manager != 0)
// {
// FTC_Manager_Done( manager );
//
// delete manager;
// manager= 0;
// }
}
FTLibrary::FTLibrary()
: library(0),
err(0)
{
Initialise();
}
bool FTLibrary::Initialise()
{
if( library != 0)
return true;
library = new FT_Library;
err = FT_Init_FreeType( library);
if( err)
{
delete library;
library = 0;
return false;
}
// FTC_Manager* manager;
//
// if( FTC_Manager_New( lib, 0, 0, 0, my_face_requester, 0, manager )
// {
// delete manager;
// manager= 0;
// return false;
// }
return true;
}

View File

@@ -1,57 +0,0 @@
#include "FTOutlineGlyph.h"
#include "FTVectoriser.h"
FTOutlineGlyph::FTOutlineGlyph( FT_GlyphSlot glyph)
: FTGlyph( glyph),
glList(0)
{
if( ft_glyph_format_outline != glyph->format)
{
err = 0x14; // Invalid_Outline
return;
}
FTVectoriser vectoriser( glyph);
size_t numContours = vectoriser.ContourCount();
if ( ( numContours < 1) || ( vectoriser.PointCount() < 3))
{
return;
}
glList = glGenLists(1);
glNewList( glList, GL_COMPILE);
for( unsigned int c = 0; c < numContours; ++c)
{
const FTContour* contour = vectoriser.Contour(c);
glBegin( GL_LINE_LOOP);
for( unsigned int p = 0; p < contour->PointCount(); ++p)
{
glVertex2f( contour->Point(p).x / 64.0f, contour->Point(p).y / 64.0f);
}
glEnd();
}
glEndList();
}
FTOutlineGlyph::~FTOutlineGlyph()
{
glDeleteLists( glList, 1);
}
float FTOutlineGlyph::Render( const FTPoint& pen)
{
if( glList)
{
glTranslatef( pen.x, pen.y, 0);
glCallList( glList);
glTranslatef( -pen.x, -pen.y, 0);
}
return advance;
}

View File

@@ -1,109 +0,0 @@
#include "FTPixmapGlyph.h"
FTPixmapGlyph::FTPixmapGlyph( FT_GlyphSlot glyph)
: FTGlyph( glyph),
destWidth(0),
destHeight(0),
data(0)
{
err = FT_Render_Glyph( glyph, FT_RENDER_MODE_NORMAL);
if( err || ft_glyph_format_bitmap != glyph->format)
{
return;
}
FT_Bitmap bitmap = glyph->bitmap;
//check the pixel mode
//ft_pixel_mode_grays
int srcWidth = bitmap.width;
int srcHeight = bitmap.rows;
// FIXME What about dest alignment?
destWidth = srcWidth;
destHeight = srcHeight;
if( destWidth && destHeight)
{
data = new unsigned char[destWidth * destHeight * 4];
// Get the current glColor.
float ftglColour[4];
// glGetFloatv( GL_CURRENT_COLOR, ftglColour);
ftglColour[0] = ftglColour[1] = ftglColour[2] = ftglColour[3] = 1.0;
unsigned char redComponent = static_cast<unsigned char>( ftglColour[0] * 255.0f);
unsigned char greenComponent = static_cast<unsigned char>( ftglColour[1] * 255.0f);
unsigned char blueComponent = static_cast<unsigned char>( ftglColour[2] * 255.0f);
unsigned char* src = bitmap.buffer;
unsigned char* dest = data + ((destHeight - 1) * destWidth) * 4;
size_t destStep = destWidth * 4 * 2;
if( ftglColour[3] == 1.0f)
{
for( int y = 0; y < srcHeight; ++y)
{
for( int x = 0; x < srcWidth; ++x)
{
*dest++ = redComponent;
*dest++ = greenComponent;
*dest++ = blueComponent;
*dest++ = *src++;
}
dest -= destStep;
}
}
else
{
for( int y = 0; y < srcHeight; ++y)
{
for( int x = 0; x < srcWidth; ++x)
{
*dest++ = redComponent;
*dest++ = greenComponent;
*dest++ = blueComponent;
*dest++ = static_cast<unsigned char>(ftglColour[3] * *src++);
}
dest -= destStep;
}
}
destHeight = srcHeight;
}
pos.x = glyph->bitmap_left;
pos.y = srcHeight - glyph->bitmap_top;
}
FTPixmapGlyph::~FTPixmapGlyph()
{
delete [] data;
}
#include <math.h>
float FTPixmapGlyph::Render( const FTPoint& pen)
{
if( data)
{
float dx, dy;
dx= floor( (pen.x + pos.x ) );
dy= ( (pen.y - pos.y ) );
// Move the glyph origin
glBitmap( 0, 0, 0.0f, 0.0f, dx, dy, (const GLubyte*)0);
glPixelStorei( GL_UNPACK_ROW_LENGTH, 0);
glDrawPixels( destWidth, destHeight, GL_RGBA, GL_UNSIGNED_BYTE, (const GLvoid*)data);
// Restore the glyph origin
glBitmap( 0, 0, 0.0f, 0.0f, -dx, -dy, (const GLubyte*)0);
}
return advance;
}

View File

@@ -1,14 +0,0 @@
#include "FTPoint.h"
bool operator == ( const FTPoint &a, const FTPoint &b)
{
return((a.x == b.x) && (a.y == b.y) && (a.z == b.z));
}
bool operator != ( const FTPoint &a, const FTPoint &b)
{
return((a.x != b.x) || (a.y != b.y) || (a.z != b.z));
}

View File

@@ -1,62 +0,0 @@
#include "FTPolyGlyph.h"
#include "FTVectoriser.h"
FTPolyGlyph::FTPolyGlyph( FT_GlyphSlot glyph)
: FTGlyph( glyph),
glList(0)
{
if( ft_glyph_format_outline != glyph->format)
{
err = 0x14; // Invalid_Outline
return;
}
FTVectoriser vectoriser( glyph);
if(( vectoriser.ContourCount() < 1) || ( vectoriser.PointCount() < 3))
{
return;
}
vectoriser.MakeMesh( 1.0);
glList = glGenLists( 1);
glNewList( glList, GL_COMPILE);
const FTMesh* mesh = vectoriser.GetMesh();
for( unsigned int index = 0; index < mesh->TesselationCount(); ++index)
{
const FTTesselation* subMesh = mesh->Tesselation( index);
unsigned int polyonType = subMesh->PolygonType();
glBegin( polyonType);
for( unsigned int x = 0; x < subMesh->PointCount(); ++x)
{
glVertex3f( subMesh->Point(x).x / 64.0f,
subMesh->Point(x).y / 64.0f,
0.0f);
}
glEnd();
}
glEndList();
}
FTPolyGlyph::~FTPolyGlyph()
{
glDeleteLists( glList, 1);
}
float FTPolyGlyph::Render( const FTPoint& pen)
{
if( glList)
{
glTranslatef( pen.x, pen.y, 0);
glCallList( glList);
glTranslatef( -pen.x, -pen.y, 0);
}
return advance;
}

View File

@@ -1,105 +0,0 @@
#include "FTSize.h"
FTSize::FTSize()
: ftFace(0),
ftSize(0),
size(0),
err(0)
{}
FTSize::~FTSize()
{}
bool FTSize::CharSize( FT_Face* face, unsigned int point_size, unsigned int x_resolution, unsigned int y_resolution )
{
err = FT_Set_Char_Size( *face, 0L, point_size * 64, x_resolution, y_resolution);
if( !err)
{
ftFace = face;
size = point_size;
ftSize = (*ftFace)->size;
}
else
{
ftFace = 0;
size = 0;
ftSize = 0;
}
return !err;
}
unsigned int FTSize::CharSize() const
{
return size;
}
float FTSize::Ascender() const
{
return ftSize == 0 ? 0.0f : static_cast<float>( ftSize->metrics.ascender) / 64.0f;
}
float FTSize::Descender() const
{
return ftSize == 0 ? 0.0f : static_cast<float>( ftSize->metrics.descender) / 64.0f;
}
float FTSize::Height() const
{
if( 0 == ftSize)
{
return 0.0f;
}
if( FT_IS_SCALABLE((*ftFace)))
{
return ( (*ftFace)->bbox.yMax - (*ftFace)->bbox.yMin) * ( (float)ftSize->metrics.y_ppem / (float)(*ftFace)->units_per_EM);
}
else
{
return static_cast<float>( ftSize->metrics.height) / 64.0f;
}
}
float FTSize::Width() const
{
if( 0 == ftSize)
{
return 0.0f;
}
if( FT_IS_SCALABLE((*ftFace)))
{
return ( (*ftFace)->bbox.xMax - (*ftFace)->bbox.xMin) * ( static_cast<float>(ftSize->metrics.x_ppem) / static_cast<float>((*ftFace)->units_per_EM));
}
else
{
return static_cast<float>( ftSize->metrics.max_advance) / 64.0f;
}
}
float FTSize::Underline() const
{
return 0.0f;
}
unsigned int FTSize::XPixelsPerEm() const
{
return ftSize == 0 ? 0 : ftSize->metrics.x_ppem;
}
unsigned int FTSize::YPixelsPerEm() const
{
return ftSize == 0 ? 0 : ftSize->metrics.y_ppem;
}

View File

@@ -1,87 +0,0 @@
#include "FTTextureGlyph.h"
FTTextureGlyph::FTTextureGlyph( FT_GlyphSlot glyph, int id, int xOffset, int yOffset, GLsizei width, GLsizei height)
: FTGlyph( glyph),
destWidth(0),
destHeight(0),
glTextureID(id),
activeTextureID(0)
{
err = FT_Render_Glyph( glyph, FT_RENDER_MODE_NORMAL);
if( err || glyph->format != ft_glyph_format_bitmap)
{
return;
}
FT_Bitmap bitmap = glyph->bitmap;
destWidth = bitmap.width;
destHeight = bitmap.rows;
if( destWidth && destHeight)
{
glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT);
glPixelStorei( GL_UNPACK_LSB_FIRST, GL_FALSE);
glPixelStorei( GL_UNPACK_ROW_LENGTH, 0);
glPixelStorei( GL_UNPACK_ALIGNMENT, 1);
glBindTexture( GL_TEXTURE_2D, glTextureID);
glTexSubImage2D( GL_TEXTURE_2D, 0, xOffset, yOffset, destWidth, destHeight, GL_ALPHA, GL_UNSIGNED_BYTE, bitmap.buffer);
glPopClientAttrib();
}
// 0
// +----+
// | |
// | |
// | |
// +----+
// 1
uv[0].x = static_cast<float>(xOffset) / static_cast<float>(width);
uv[0].y = static_cast<float>(yOffset) / static_cast<float>(height);
uv[1].x = static_cast<float>( xOffset + destWidth) / static_cast<float>(width);
uv[1].y = static_cast<float>( yOffset + destHeight) / static_cast<float>(height);
pos.x = glyph->bitmap_left;
pos.y = glyph->bitmap_top;
}
FTTextureGlyph::~FTTextureGlyph()
{}
#include <math.h>
float FTTextureGlyph::Render( const FTPoint& pen)
{
float dx;
glGetIntegerv( GL_TEXTURE_2D_BINDING_EXT, &activeTextureID);
if( activeTextureID != glTextureID)
{
glBindTexture( GL_TEXTURE_2D, (GLuint)glTextureID);
}
dx= floor( (pen.x + pos.x ) );
glBegin( GL_QUADS);
glTexCoord2f( uv[0].x, uv[0].y);
glVertex2f( dx, pen.y + pos.y);
glTexCoord2f( uv[0].x, uv[1].y);
glVertex2f( dx, pen.y + pos.y - destHeight);
glTexCoord2f( uv[1].x, uv[1].y);
glVertex2f( dx + destWidth, pen.y + pos.y - destHeight);
glTexCoord2f( uv[1].x, uv[0].y);
glVertex2f( dx + destWidth, pen.y + pos.y);
glEnd();
return advance;
}

View File

@@ -1,229 +0,0 @@
#include "FTVectoriser.h"
#include "FTGL.h"
#ifndef CALLBACK
#define CALLBACK
#endif
#if defined(__APPLE_CC__)
#if __APPLE_CC__ >= 5465
typedef GLvoid (*GLUTesselatorFunction)();
#else
typedef GLvoid (*GLUTesselatorFunction)(...);
#endif
#elif defined( __mips ) || defined( __linux__ ) || defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __sun ) || defined (__CYGWIN__)
typedef GLvoid (*GLUTesselatorFunction)();
#elif defined ( WIN32)
typedef GLvoid (CALLBACK *GLUTesselatorFunction)( );
#else
#error "Error - need to define type GLUTesselatorFunction for this platform/compiler"
#endif
void CALLBACK ftglError( GLenum errCode, FTMesh* mesh)
{
mesh->Error( errCode);
}
void CALLBACK ftglVertex( void* data, FTMesh* mesh)
{
FTGL_DOUBLE* vertex = static_cast<FTGL_DOUBLE*>(data);
mesh->AddPoint( vertex[0], vertex[1], vertex[2]);
}
void CALLBACK ftglCombine( FTGL_DOUBLE coords[3], void* vertex_data[4], GLfloat weight[4], void** outData, FTMesh* mesh)
{
FTGL_DOUBLE* vertex = static_cast<FTGL_DOUBLE*>(coords);
*outData = mesh->Combine( vertex[0], vertex[1], vertex[2]);
}
void CALLBACK ftglBegin( GLenum type, FTMesh* mesh)
{
mesh->Begin( type);
}
void CALLBACK ftglEnd( FTMesh* mesh)
{
mesh->End();
}
FTMesh::FTMesh()
: currentTesselation(0),
err(0)
{
tesselationList.reserve( 16);
}
FTMesh::~FTMesh()
{
for( size_t t = 0; t < tesselationList.size(); ++t)
{
delete tesselationList[t];
}
tesselationList.clear();
}
void FTMesh::AddPoint( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z)
{
currentTesselation->AddPoint( x, y, z);
}
FTGL_DOUBLE* FTMesh::Combine( const FTGL_DOUBLE x, const FTGL_DOUBLE y, const FTGL_DOUBLE z)
{
tempPointList.push_back( FTPoint( x, y,z));
return &tempPointList.back().x;
}
void FTMesh::Begin( GLenum meshType)
{
currentTesselation = new FTTesselation( meshType);
}
void FTMesh::End()
{
tesselationList.push_back( currentTesselation);
}
const FTTesselation* const FTMesh::Tesselation( unsigned int index) const
{
return ( index < tesselationList.size()) ? tesselationList[index] : NULL;
}
FTVectoriser::FTVectoriser( const FT_GlyphSlot glyph)
: contourList(0),
mesh(0),
ftContourCount(0),
contourFlag(0)
{
if( glyph)
{
outline = glyph->outline;
ftContourCount = outline.n_contours;;
contourList = 0;
contourFlag = outline.flags;
ProcessContours();
}
}
FTVectoriser::~FTVectoriser()
{
for( size_t c = 0; c < ContourCount(); ++c)
{
delete contourList[c];
}
delete [] contourList;
delete mesh;
}
void FTVectoriser::ProcessContours()
{
short contourLength = 0;
short startIndex = 0;
short endIndex = 0;
contourList = new FTContour*[ftContourCount];
for( short contourIndex = 0; contourIndex < ftContourCount; ++contourIndex)
{
FT_Vector* pointList = &outline.points[startIndex];
char* tagList = &outline.tags[startIndex];
endIndex = outline.contours[contourIndex];
contourLength = ( endIndex - startIndex) + 1;
FTContour* contour = new FTContour( pointList, tagList, contourLength);
contourList[contourIndex] = contour;
startIndex = endIndex + 1;
}
}
size_t FTVectoriser::PointCount()
{
size_t s = 0;
for( size_t c = 0; c < ContourCount(); ++c)
{
s += contourList[c]->PointCount();
}
return s;
}
const FTContour* const FTVectoriser::Contour( unsigned int index) const
{
return ( index < ContourCount()) ? contourList[index] : NULL;
}
void FTVectoriser::MakeMesh( FTGL_DOUBLE zNormal)
{
if( mesh)
{
delete mesh;
}
mesh = new FTMesh;
GLUtesselator* tobj = gluNewTess();
gluTessCallback( tobj, GLU_TESS_BEGIN_DATA, (GLUTesselatorFunction)ftglBegin);
gluTessCallback( tobj, GLU_TESS_VERTEX_DATA, (GLUTesselatorFunction)ftglVertex);
gluTessCallback( tobj, GLU_TESS_COMBINE_DATA, (GLUTesselatorFunction)ftglCombine);
gluTessCallback( tobj, GLU_TESS_END_DATA, (GLUTesselatorFunction)ftglEnd);
gluTessCallback( tobj, GLU_TESS_ERROR_DATA, (GLUTesselatorFunction)ftglError);
if( contourFlag & ft_outline_even_odd_fill) // ft_outline_reverse_fill
{
gluTessProperty( tobj, GLU_TESS_WINDING_RULE, GLU_TESS_WINDING_ODD);
}
else
{
gluTessProperty( tobj, GLU_TESS_WINDING_RULE, GLU_TESS_WINDING_NONZERO);
}
gluTessProperty( tobj, GLU_TESS_TOLERANCE, 0);
gluTessNormal( tobj, 0.0f, 0.0f, zNormal);
gluTessBeginPolygon( tobj, mesh);
for( size_t c = 0; c < ContourCount(); ++c)
{
const FTContour* contour = contourList[c];
gluTessBeginContour( tobj);
for( size_t p = 0; p < contour->PointCount(); ++p)
{
FTGL_DOUBLE* d = const_cast<FTGL_DOUBLE*>(&contour->Point(p).x);
gluTessVertex( tobj, d, d);
}
gluTessEndContour( tobj);
}
gluTessEndPolygon( tobj);
gluDeleteTess( tobj);
}

View File

@@ -1,60 +0,0 @@
# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
# vim: tabstop=8
#
# $Id$
#
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): GSR
#
# ***** END GPL LICENSE BLOCK *****
#
#
LIBNAME = ftgl
DIR = $(OCGDIR)/extern/$(LIBNAME)
CCFLAGS += $(LEVEL_1_CPP_WARNINGS)
CSRCS =
CCSRCS = FTBitmapGlyph.cpp FTCharmap.cpp FTContour.cpp FTExtrdGlyph.cpp \
FTFace.cpp FTFont.cpp FTGLBitmapFont.cpp FTGLExtrdFont.cpp \
FTGLOutlineFont.cpp FTGLPixmapFont.cpp FTGLPolygonFont.cpp \
FTGLTextureFont.cpp FTGlyph.cpp FTGlyphContainer.cpp FTLibrary.cpp \
FTOutlineGlyph.cpp FTPixmapGlyph.cpp FTPoint.cpp FTPolyGlyph.cpp \
FTSize.cpp FTTextureGlyph.cpp FTVectoriser.cpp
include nan_compile.mk
CPPFLAGS += -I../include
CPPFLAGS += -I$(NAN_FREETYPE)/include -I$(NAN_FREETYPE)/include/freetype2
CPPFLAGS += -I$(OPENGL_HEADERS)
install: $(ALL_OR_DEBUG)
@[ -d $(NAN_FTGL) ] || mkdir -p $(NAN_FTGL)
@[ -d $(NAN_FTGL)/include ] || mkdir -p $(NAN_FTGL)/include
@[ -d $(NAN_FTGL)/lib/$(DEBUG_DIR) ] || mkdir -p $(NAN_FTGL)/lib/$(DEBUG_DIR)
@$(NANBLENDERHOME)/intern/tools/cpifdiff.sh $(DIR)/$(DEBUG_DIR)lib$(LIBNAME).a $(NAN_FTGL)/lib/$(DEBUG_DIR)
ifeq ($(OS),darwin)
ranlib $(NAN_FTGL)/lib/$(DEBUG_DIR)lib$(LIBNAME).a
endif
@$(NANBLENDERHOME)/intern/tools/cpifdiff.sh ../include/*.h $(NAN_FTGL)/include/

View File

@@ -1,206 +0,0 @@
FTGL 1.31
NOTES FOR COMPILING ON WINDOWS
14 Feb 2002
Ellers, ellers@iinet.net.au
SUPPORTED COMPILERS
I have rebuilt the FTGL project files for Visual C++ (version 6). There are
presently no other compilers or environments supported but feel free to
contribute them.
QUICK GUIDE: COMPILING FTGL
- Start up MSVC++ with ftgl.dsw.
- Tell MSVC++ where FreeType is. You'll need to do something like this:
* select Project>Settings
* select ftgl_static (for a start)
* select "All Configurations"
* go to the tab C++ > PreProcessor
* Set additional include directories appropriately. For me it is:
D:\cots\freetype-2.0.5\include
* repeat for all configurations of ftgl_dll
QUICK GUIDE: COMPILING/RUNNING SUPPLIED DEMO PROGRAM
- The program expects the first argument to be the name of a truetype file.
I copied timesbi.ttf from the windows directory to C:\TEMP and then edit
the settings of the project:
* select Project>Settings
* select Demo project
* select panel Debug>General
* set Program Arguments to be "C:\TEMP\timesbi.ttf"
QUICK GUIDE: COMPILING YOUR PROGRAM TO USE FTGL
- Choose dynamic or static library linkage
* if you want to link to a static FTGL library ensure that
FTGL_LIBRARY_STATIC is defined in the preprocessor section
CONFIGURATION / CODE GENERATION / C LIBRARIES
FTGL can be built in various configurations (inspired by Freetype and libpng):
- static library (.lib)
- dynamic library (.dll)
MSVC++ requires selection of "code generation" option, which seems to be
mostly to do with which version of the Standard C library is linked with the
library.
The following modes are supported:
- static/dynamic
- single threaded (ST) or multithreaded (MT)
NOTE: the multithreaded DLL (MD) mode was NOT included, as freetype itself
doesn't support that mode so I figure there's no point yet.
- debug/release (debug has _d suffix)
So the static multithreaded release library is:
ftgl_static_MT.lib
The same library built in DEBUG mode:
ftgl_static_MT_d.lib
If you're not sure which one is appropriate (and if you're a novice don't
been too put off...) start with making the decision about debug or release.
This should be easy because if you're building the debug version of your
app its probably a good idea to link with the debug version of FTGL (but
not compulsory). Once thats done, you may get errors like:
LIBCMTD.lib(crt0init.obj) : warning LNK4098: defaultlib "libcmt.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
This will happen, for example, when you link a glut app with an FTGL library
compiled with different codegen options than the GLUT library.
MSVC++ "sort of"
requires that all libs be linked with the same codegen option. GLUT is built
in XXX mode, so if you're linking with GLUT, you can get rid of the warning
by linking with the XXX version of FTGL. The various versions are particularly
useful if you're doing std C stuff, like printf etc.
FAQ
Q: "But... do I HAVE to use all these DIFFERENT build modes, like multi-
threaded, debug single threaded, etc?"
A: No. Sometimes library makers only generate one style anyway. It depends
on your needs. Unless you're linking with standard C stuff (e.g. printf)
then it probably won't make a great deal of difference. If you get
warnings about "default lib libcmt.lib conflicts" etc, then you can make
use of the different libraries.

View File

@@ -1,92 +0,0 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "ftgl_demo"=".\ftgl_demo\ftgl_demo.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name ftgl_dll
End Project Dependency
Begin Project Dependency
Project_Dep_Name ftgl_static_lib
End Project Dependency
}}}
###############################################################################
Project: "ftgl_demo_2"=".\ftgl_demo\ftgl_demo_2.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name ftgl_dll
End Project Dependency
Begin Project Dependency
Project_Dep_Name ftgl_static_lib
End Project Dependency
}}}
###############################################################################
Project: "ftgl_dll"=".\ftgl_dll\ftgl_dll.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "ftgl_static_lib"=".\ftgl_static_lib\ftgl_static_lib.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "unit_tests"=".\unit_tests\unit_tests.dsp" - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name ftgl_static_lib
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -1,357 +0,0 @@
# Microsoft Developer Studio Project File - Name="ftgl_dll" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=ftgl_dll - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ftgl_dll.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ftgl_dll.mak" CFG="ftgl_dll - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ftgl_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "ftgl_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "ftgl_dll - Win32 Release MT" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "ftgl_dll - Win32 Debug MT" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "ftgl_dll - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_ST"
# PROP BASE Intermediate_Dir "Release_ST"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../Build"
# PROP Intermediate_Dir "Release_ST"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir "../Build"
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_DLL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_LIBRARY" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib freetype204.lib /nologo /dll /machine:I386 /out:"../Build/ftgl_dynamic_MT.dll" /libpath:"D:\cots\freetype-2.0.5\objs"
!ELSEIF "$(CFG)" == "ftgl_dll - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_ST"
# PROP BASE Intermediate_Dir "Debug_ST"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../Build"
# PROP Intermediate_Dir "Debug_ST"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir "../Build"
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_DLL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_LIBRARY" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib freetype204_D.lib /nologo /dll /pdb:"Debug_ST/ftgl_dynamic_ST_d.pdb" /debug /machine:I386 /out:"../Build/ftgl_dynamic_MT_d.dll" /pdbtype:sept /libpath:"D:\cots\freetype-2.0.5\objs"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ftgl_dll - Win32 Release MT"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_MT"
# PROP BASE Intermediate_Dir "Release_MT"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../Build"
# PROP Intermediate_Dir "Release_MT"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir "../Build"
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_DLL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_LIBRARY" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib freetype204MT.lib /nologo /dll /machine:I386 /out:"../Build/ftgl_dynamic_MTD.dll" /libpath:"D:\cots\freetype-2.0.5\objs"
!ELSEIF "$(CFG)" == "ftgl_dll - Win32 Debug MT"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_MT"
# PROP BASE Intermediate_Dir "Debug_MT"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../Build"
# PROP Intermediate_Dir "Debug_MT"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir "../Build"
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_DLL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FTGL_LIBRARY" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib freetype204MT_D.lib /nologo /dll /pdb:"Debug_ST/ftgl_dynamic_MT_d.pdb" /debug /machine:I386 /out:"../Build/ftgl_dynamic_MTD_d.dll" /pdbtype:sept /libpath:"D:\cots\freetype-2.0.5\objs"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "ftgl_dll - Win32 Release"
# Name "ftgl_dll - Win32 Debug"
# Name "ftgl_dll - Win32 Release MT"
# Name "ftgl_dll - Win32 Debug MT"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\src\FTBitmapGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTCharmap.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTContour.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTExtrdGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTFace.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLBitmapFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLExtrdFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLOutlineFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLPixmapFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLPolygonFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLTextureFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGlyphContainer.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTLibrary.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTOutlineGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTPixmapGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTPoint.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTPolyGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTSize.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTTextureGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTVectoriser.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\include\FTBBox.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTBitmapGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTCharmap.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTCharToGlyphIndexMap.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTContour.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTExtrdGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTFace.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGL.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLBitmapFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLExtrdFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLOutlineFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLPixmapFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLPolygonFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLTextureFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGlyphContainer.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTLibrary.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTList.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTOutlineGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTPixmapGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTPoint.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTPolyGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTSize.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTTextureGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTVector.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTVectoriser.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

View File

@@ -1,342 +0,0 @@
# Microsoft Developer Studio Project File - Name="ftgl_static_lib" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=ftgl_static_lib - Win32 Debug MT
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ftgl_static_lib.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ftgl_static_lib.mak" CFG="ftgl_static_lib - Win32 Debug MT"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ftgl_static_lib - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "ftgl_static_lib - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "ftgl_static_lib - Win32 Debug MT" (based on "Win32 (x86) Static Library")
!MESSAGE "ftgl_static_lib - Win32 Release MT" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "ftgl_static_lib - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_ST"
# PROP BASE Intermediate_Dir "Release_ST"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_ST"
# PROP Intermediate_Dir "Release_ST"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\..\..\..\lib\windows\freetype\include" /I "..\..\include" /I "..\..\..\..\..\lib\windows\freetype\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FTGL_LIBRARY_STATIC" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\Build\ftgl_static_ST.lib"
# Begin Special Build Tool
SOURCE="$(InputPath)"
PostBuild_Cmds=ECHO Copying lib to lib\windows\ftgl\lib XCOPY /Y ..\Build\*lib ..\..\..\..\..\lib\windows\ftgl\lib
# End Special Build Tool
!ELSEIF "$(CFG)" == "ftgl_static_lib - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_ST"
# PROP BASE Intermediate_Dir "Debug_ST"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_ST"
# PROP Intermediate_Dir "Debug_ST"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FTGL_LIBRARY_STATIC" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\Build\ftgl_static_MT_d.lib"
!ELSEIF "$(CFG)" == "ftgl_static_lib - Win32 Debug MT"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug_MT"
# PROP BASE Intermediate_Dir "Debug_MT"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_MT"
# PROP Intermediate_Dir "Debug_MT"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "D:\cots\freetype-2.0.5\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FTGL_LIBRARY_STATIC" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FTGL_LIBRARY_STATIC" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\Build\ftgl_static_MTD_d.lib"
!ELSEIF "$(CFG)" == "ftgl_static_lib - Win32 Release MT"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release_MT"
# PROP BASE Intermediate_Dir "Release_MT"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_MT"
# PROP Intermediate_Dir "Release_MT"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FTGL_LIBRARY_STATIC" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "D:\cots\freetype-2.0.5\include" /I "..\..\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FTGL_LIBRARY_STATIC" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\Build\ftgl_static_MTD.lib"
!ENDIF
# Begin Target
# Name "ftgl_static_lib - Win32 Release"
# Name "ftgl_static_lib - Win32 Debug"
# Name "ftgl_static_lib - Win32 Debug MT"
# Name "ftgl_static_lib - Win32 Release MT"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\src\FTBitmapGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTCharmap.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTContour.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTExtrdGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTFace.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLBitmapFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLExtrdFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLOutlineFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLPixmapFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLPolygonFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGLTextureFont.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTGlyphContainer.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTLibrary.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTOutlineGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTPixmapGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTPoint.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTPolyGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTSize.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTTextureGlyph.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\FTVectoriser.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\include\FTBBox.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTBitmapGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTCharmap.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTCharToGlyphIndexMap.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTContour.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTExtrdGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTFace.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGL.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLBitmapFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLExtrdFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLOutlineFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLPixmapFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLPolygonFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGLTextureFont.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTGlyphContainer.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTLibrary.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTList.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTOutlineGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTPixmapGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTPoint.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTPolyGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTSize.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTTextureGlyph.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTVector.h
# End Source File
# Begin Source File
SOURCE=..\..\include\FTVectoriser.h
# End Source File
# End Group
# End Target
# End Project

View File

@@ -1,168 +0,0 @@
# Microsoft Developer Studio Project File - Name="unit_tests" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=unit_tests - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "unit_tests.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "unit_tests.mak" CFG="unit_tests - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "unit_tests - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "unit_tests - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "unit_tests - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "$(MIC_COTS_CPPUNIT_DIR)/include" /I "../../include" /I "../../extras" /I "D:\cots\freetype-2.0.5\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "FTGL_LIBRARY_STATIC" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 freetype204MT.lib ftgl_static_MT.lib cppunit.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\Build" /libpath:"D:\cots\freetype-2.0.5\objs" /libpath:"D:\cots\cppunit-1.9.8\lib"
!ELSEIF "$(CFG)" == "unit_tests - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "$(MIC_COTS_CPPUNIT_DIR)/include" /I "../../include" /I "../../extras" /I "D:\cots\freetype-2.0.5\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "FTGL_LIBRARY_STATIC" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 freetype204MT_D.lib ftgl_static_MT_d.lib cppunitd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\Build" /libpath:"D:\cots\freetype-2.0.5\objs" /libpath:"D:\cots\cppunit-1.9.8\lib"
!ENDIF
# Begin Target
# Name "unit_tests - Win32 Release"
# Name "unit_tests - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE="..\..\test\FTBBox-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTCharmap-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTContour-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTFace-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTFont-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTGlyphContainer-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTLibrary-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTList-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTMesh-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTPoint-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTSize-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTTesselation-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTVector-Test.cpp"
# End Source File
# Begin Source File
SOURCE="..\..\test\FTVectoriser-Test.cpp"
# End Source File
# Begin Source File
SOURCE=..\..\test\HPGCalc_afm.cpp
# End Source File
# Begin Source File
SOURCE=..\..\test\HPGCalc_pfb.cpp
# End Source File
# Begin Source File
SOURCE=..\..\test\TestMain.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\test\Fontdefs.h
# End Source File
# End Group
# End Target
# End Project

View File

@@ -24,7 +24,7 @@
#
# ***** END GPL LICENSE BLOCK *****
SUBDIRS(SoundSystem string ghost guardedalloc bmfont moto container memutil decimation iksolver boolop opennl)
SUBDIRS(SoundSystem string ghost guardedalloc moto container memutil decimation iksolver boolop opennl)
IF(WITH_ELBEEM)
SUBDIRS(elbeem)

View File

@@ -31,7 +31,7 @@ SOURCEDIR = intern
# include nan_subdirs.mk
ALLDIRS = string ghost guardedalloc bmfont moto container memutil
ALLDIRS = string ghost guardedalloc moto container memutil
ALLDIRS += decimation iksolver bsp SoundSystem opennl elbeem boolop
all::

View File

@@ -5,7 +5,6 @@ SConscript(['SoundSystem/SConscript',
'string/SConscript',
'ghost/SConscript',
'guardedalloc/SConscript',
'bmfont/SConscript',
'moto/SConscript',
'container/SConscript',
'memutil/SConscript/',

View File

@@ -1,162 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
*
* API of the OpenGL bitmap font library.
* Currently draws fonts using the glBitmap routine.
* This implies that drawing speed is heavyly dependant on
* the 2D capabilities of the graphics card.
*/
#ifndef __BMF_API_H
#define __BMF_API_H
#ifdef __cplusplus
extern "C" {
#endif
#include "BMF_Fonts.h"
/**
* Returns the font for a given font type.
* @param font The font to retrieve.
* @return The font (or nil if not found).
*/
BMF_Font* BMF_GetFont(BMF_FontType font);
/**
* Draws a character at the current raster position.
* @param font The font to use.
* @param c The character to draw.
* @return Indication of success (0 == error).
*/
int BMF_DrawCharacter(BMF_Font* font, char c);
/**
* Draws a string at the current raster position.
* @param font The font to use.
* @param str The string to draw.
* @return Indication of success (0 == error).
*/
int BMF_DrawString(BMF_Font* font, char* str);
/**
* Returns the width of a character in pixels.
* @param font The font to use.
* @param c The character.
* @return The length.
*/
int BMF_GetCharacterWidth(BMF_Font* font, char c);
/**
* Returns the width of a string of characters.
* @param font The font to use.
* @param str The string.
* @return The length.
*/
int BMF_GetStringWidth(BMF_Font* font, char* str);
/**
* Returns the bounding box of a string of characters.
* @param font The font to use.
* @param str The string.
* @param llx Lower left x coord
* @param lly Lower left y coord
* @param urx Upper right x coord
* @param ury Upper right y coord
*/
void BMF_GetStringBoundingBox(BMF_Font* font, char* str, float*llx, float *lly, float *urx, float *ury);
/**
* Returns the bounding box of the font. The width and
* height represent the bounding box of the union of
* all glyps. The minimum and maximum values of the
* box represent the extent of the font and its positioning
* about the origin.
*/
void BMF_GetFontBoundingBox(BMF_Font* font, int *xmin_r, int *ymin_r, int *xmax_r, int *ymax_r);
/**
* Same as GetFontBoundingBox but only returns the height
*/
int BMF_GetFontHeight(BMF_Font* font);
/**
* Convert the given @a font to a texture, and return the GL texture
* ID of the texture. If the texture ID is bound, text can
* be drawn using the texture by calling DrawStringTexture.
*
* @param font The font to create the texture from.
* @return The GL texture ID of the new texture, or -1 if unable
* to create.
*/
int BMF_GetFontTexture(BMF_Font* font);
/**
* Draw the given @a str at the point @a x, @a y, @a z, using
* texture coordinates. This assumes that an appropriate texture
* has been bound, see BMF_BitmapFont::GetTexture(). The string
* is drawn along the positive X axis.
*
* @param font The font to draw with.
* @param string The c-string to draw.
* @param x The x coordinate to start drawing at.
* @param y The y coordinate to start drawing at.
* @param z The z coordinate to start drawing at.
*/
void BMF_DrawStringTexture(BMF_Font* font, char* string, float x, float y, float z);
/**
* Draw the given @a string at the point @a xpos, @a ypos using
* char and float buffers.
*
* @param string The c-string to draw.
* @param xpos The x coordinate to start drawing at.
* @param ypos The y coordinate to start drawing at.
* @param fgcol The forground color.
* @param bgcol The background color.
* @param buf Unsigned char image buffer, when NULL to not operate on it.
* @param fbuf float image buffer, when NULL to not operate on it.
* @param w image buffer width.
* @param h image buffer height.
* @param channels number of channels in the image (3 or 4 - currently)
*/
void BMF_DrawStringBuf(BMF_Font* font, char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels);
#ifdef __cplusplus
}
#endif
#endif /* __BMF_API_H */

View File

@@ -1,74 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Defines the names of the fonts in the library.
*/
#ifndef __BMF_FONTS_H
#define __BMF_FONTS_H
#include "BMF_Settings.h"
typedef enum
{
BMF_kHelvetica10 = 0,
#if BMF_INCLUDE_HELV12
BMF_kHelvetica12,
#endif
#if BMF_INCLUDE_HELVB8
BMF_kHelveticaBold8,
#endif
#if BMF_INCLUDE_HELVB10
BMF_kHelveticaBold10,
#endif
#if BMF_INCLUDE_HELVB12
BMF_kHelveticaBold12,
#endif
#if BMF_INCLUDE_HELVB14
BMF_kHelveticaBold14,
#endif
#if BMF_INCLUDE_SCR12
BMF_kScreen12,
#endif
#if BMF_INCLUDE_SCR14
BMF_kScreen14,
#endif
#if BMF_INCLUDE_SCR15
BMF_kScreen15,
#endif
BMF_kNumFonts
} BMF_FontType;
typedef struct BMF_Font BMF_Font;
#endif /* __BMF_FONTS_H */

View File

@@ -1,67 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
* Allows you to determine which fonts to include in the library.
*/
#ifndef __BMF_SETTINGS_H
#define __BMF_SETTINGS_H
/* This font is included always */
#define BMF_INCLUDE_HELV10 1
#ifndef BMF_MINIMAL
/* These fonts are included with the minimal setting defined */
#define BMF_INCLUDE_HELV12 1
#define BMF_INCLUDE_HELVB8 1
#define BMF_INCLUDE_HELVB10 1
#define BMF_INCLUDE_HELVB12 1
#define BMF_INCLUDE_HELVB14 1
#define BMF_INCLUDE_SCR12 1
#define BMF_INCLUDE_SCR14 1
#define BMF_INCLUDE_SCR15 1
#else /* BMF_MINIMAL */
#define BMF_INCLUDE_HELV12 0
#define BMF_INCLUDE_HELVB8 0
#define BMF_INCLUDE_HELVB10 0
#define BMF_INCLUDE_HELVB12 0
#define BMF_INCLUDE_HELVB14 0
#define BMF_INCLUDE_SCR12 0
#define BMF_INCLUDE_SCR14 0
#define BMF_INCLUDE_SCR15 0
#endif /* BMF_MINIMAL */
#endif /* __BMF_SETTINGS_H */

View File

@@ -1,32 +0,0 @@
# $Id$
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# The Original Code is Copyright (C) 2006, Blender Foundation
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): Jacques Beaurain.
#
# ***** END GPL LICENSE BLOCK *****
SET(INC . intern)
FILE(GLOB SRC intern/*.cpp)
BLENDERLIB(bf_bmfont "${SRC}" "${INC}")
#, libtype=['intern','player'], priority = [20, 185] )

View File

@@ -1,52 +0,0 @@
# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
# vim: tabstop=8
#
# $Id$
#
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
# All rights reserved.
#
# The Original Code is: all of this file.
#
# Contributor(s): Hans Lambermont, GSR
#
# ***** END GPL LICENSE BLOCK *****
# bmfont main makefile.
#
include nan_definitions.mk
LIBNAME = bmfont
SOURCEDIR = intern/$(LIBNAME)
DIR = $(OCGDIR)/$(SOURCEDIR)
DIRS = intern
#not ready yet TESTDIRS = test
include nan_subdirs.mk
install: $(ALL_OR_DEBUG)
@[ -d $(NAN_BMFONT) ] || mkdir $(NAN_BMFONT)
@[ -d $(NAN_BMFONT)/include ] || mkdir $(NAN_BMFONT)/include
@[ -d $(NAN_BMFONT)/lib/$(DEBUG_DIR) ] || mkdir $(NAN_BMFONT)/lib/$(DEBUG_DIR)
@../tools/cpifdiff.sh $(DIR)/$(DEBUG_DIR)libbmfont.a $(NAN_BMFONT)/lib/$(DEBUG_DIR)
ifeq ($(OS),darwin)
ranlib $(NAN_BMFONT)/lib/$(DEBUG_DIR)libbmfont.a
endif
@../tools/cpifdiff.sh *.h $(NAN_BMFONT)/include/

View File

@@ -1,10 +0,0 @@
#!/usr/bin/python
Import ('env')
sources = env.Glob('intern/*.cpp')
incs = '. intern'
incs += ' ' + env['BF_OPENGL_INC']
defs = ''
env.BlenderLib ('bf_bmfont', sources, Split(incs), Split(defs), libtype=['intern','player'], priority = [20, 185] )

View File

@@ -1,177 +0,0 @@
#!/usr/bin/python
# ***** BEGIN GPL LICENSE BLOCK *****
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# ***** END GPL LICENCE BLOCK *****
# --------------------------------------------------------------------------
HELP_TXT = \
'''
Convert BDF pixmap fonts into C++ files Blender can read.
Use to replace bitmap fonts or add new ones.
Usage
python bdf2bmf.py -name=SomeName myfile.bdf
Blender currently supports fonts with a maximum width of 8 pixels.
'''
# -------- Simple BDF parser
import sys
def parse_bdf(f, MAX_CHARS=256):
lines = [l.strip().upper().split() for l in f.readlines()]
is_bitmap = False
dummy = {'BITMAP':[]}
char_data = [dummy.copy() for i in xrange(MAX_CHARS)]
context_bitmap = []
for l in lines:
if l[0]=='ENCODING': enc = int(l[1])
elif l[0]=='BBX': bbx = [int(c) for c in l[1:]]
elif l[0]=='DWIDTH': dwidth = int(l[1])
elif l[0]=='BITMAP': is_bitmap = True
elif l[0]=='ENDCHAR':
if enc < MAX_CHARS:
char_data[enc]['BBX'] = bbx
char_data[enc]['DWIDTH'] = dwidth
char_data[enc]['BITMAP'] = context_bitmap
context_bitmap = []
enc = bbx = None
is_bitmap = False
else:
# None of the above, Ok, were reading a bitmap
if is_bitmap and enc < MAX_CHARS:
context_bitmap.append( int(l[0], 16) )
return char_data
# -------- end simple BDF parser
def bdf2cpp_name(path):
return path.split('.')[0] + '.cpp'
def convert_to_blender(bdf_dict, font_name, origfilename, MAX_CHARS=256):
# first get a global width/height, also set the offsets
xmin = ymin = 10000000
xmax = ymax = -10000000
bitmap_offsets = [-1] * MAX_CHARS
bitmap_tot = 0
for i, c in enumerate(bdf_dict):
if c.has_key('BBX'):
bbx = c['BBX']
xmax = max(bbx[0], xmax)
ymax = max(bbx[1], ymax)
xmin = min(bbx[2], xmin)
ymin = min(bbx[3], ymin)
bitmap_offsets[i] = bitmap_tot
bitmap_tot += len(c['BITMAP'])
c['BITMAP'].reverse()
# Now we can write. Ok if we have no .'s in the path.
f = open(bdf2cpp_name(origfilename), 'w')
f.write('''
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_FontData.h"
#include "BMF_Settings.h"
''')
f.write('#if BMF_INCLUDE_%s\n\n' % font_name.upper())
f.write('static unsigned char bitmap_data[]= {')
newline = 8
for i, c in enumerate(bdf_dict):
for cdata in c['BITMAP']:
# Just formatting
newline+=1
if newline >= 8:
newline = 0
f.write('\n\t')
# End formatting
f.write('0x%.2hx,' % cdata) # 0x80 <- format
f.write("\n};\n")
f.write("BMF_FontData BMF_font_%s = {\n" % font_name)
f.write('\t%d, %d,\n' % (xmin, ymin))
f.write('\t%d, %d,\n' % (xmax, ymax))
f.write('\t{\n')
for i, c in enumerate(bdf_dict):
if bitmap_offsets[i] == -1 or c.has_key('BBX') == False:
f.write('\t\t{0,0,0,0,0, -1},\n')
else:
bbx = c['BBX']
f.write('\t\t{%d,%d,%d,%d,%d, %d},\n' % (bbx[0], bbx[1], -bbx[2], -bbx[3], c['DWIDTH'], bitmap_offsets[i]))
f.write('''
},
bitmap_data
};
#endif
''')
def main():
# replace "[-name=foo]" with "[-name] [foo]"
args = []
for arg in sys.argv:
for a in arg.replace('=', ' ').split():
args.append(a)
name = 'untitled'
done_anything = False
for i, arg in enumerate(args):
if arg == '-name':
if i==len(args)-1:
print 'no arg given for -name, aborting'
return
else:
name = args[i+1]
elif arg.lower().endswith('.bdf'):
try:
f = open(arg)
print '...Writing to:', bdf2cpp_name(arg)
except:
print 'could not open "%s", aborting' % arg
bdf_dict = parse_bdf(f)
convert_to_blender(bdf_dict, name, arg)
done_anything = True
if not done_anything:
print HELP_TXT
print '...nothing to do'
if __name__ == '__main__':
main()

View File

@@ -1,183 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
*
* Implementation of the API of the OpenGL bitmap font library.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_Api.h"
#include "BMF_BitmapFont.h"
#if BMF_INCLUDE_HELV10
extern BMF_FontData BMF_font_helv10;
static BMF_BitmapFont bmfHelv10(&BMF_font_helv10);
#endif // BMF_INCLUDE_HELV10
#if BMF_INCLUDE_HELV12
extern BMF_FontData BMF_font_helv12;
static BMF_BitmapFont bmfHelv12(&BMF_font_helv12);
#endif // BMF_INCLUDE_HELV12
#if BMF_INCLUDE_HELVB8
extern BMF_FontData BMF_font_helvb8;
static BMF_BitmapFont bmfHelvb8(&BMF_font_helvb8);
#endif // BMF_INCLUDE_HELVB8
#if BMF_INCLUDE_HELVB10
extern BMF_FontData BMF_font_helvb10;
static BMF_BitmapFont bmfHelvb10(&BMF_font_helvb10);
#endif // BMF_INCLUDE_HELVB10
#if BMF_INCLUDE_HELVB12
extern BMF_FontData BMF_font_helvb12;
static BMF_BitmapFont bmfHelvb12(&BMF_font_helvb12);
#endif // BMF_INCLUDE_HELVB12
#if BMF_INCLUDE_HELVB14
extern BMF_FontData BMF_font_helvb14;
static BMF_BitmapFont bmfHelvb14(&BMF_font_helvb14);
#endif // BMF_INCLUDE_HELVB14
#if BMF_INCLUDE_SCR12
extern BMF_FontData BMF_font_scr12;
static BMF_BitmapFont bmfScreen12(&BMF_font_scr12);
#endif // BMF_INCLUDE_SCR12
#if BMF_INCLUDE_SCR14
extern BMF_FontData BMF_font_scr14;
static BMF_BitmapFont bmfScreen14(&BMF_font_scr14);
#endif // BMF_INCLUDE_SCR14
#if BMF_INCLUDE_SCR15
extern BMF_FontData BMF_font_scr15;
static BMF_BitmapFont bmfScreen15(&BMF_font_scr15);
#endif // BMF_INCLUDE_SCR15
BMF_Font* BMF_GetFont(BMF_FontType font)
{
switch (font)
{
#if BMF_INCLUDE_HELV10
case BMF_kHelvetica10: return (BMF_Font*) &bmfHelv10;
#endif // BMF_INCLUDE_HELV10
#if BMF_INCLUDE_HELV12
case BMF_kHelvetica12: return (BMF_Font*) &bmfHelv12;
#endif // BMF_INCLUDE_HELV12
#if BMF_INCLUDE_HELVB8
case BMF_kHelveticaBold8: return (BMF_Font*) &bmfHelvb8;
#endif // BMF_INCLUDE_HELVB8
#if BMF_INCLUDE_HELVB10
case BMF_kHelveticaBold10: return (BMF_Font*) &bmfHelvb10;
#endif // BMF_INCLUDE_HELVB10
#if BMF_INCLUDE_HELVB12
case BMF_kHelveticaBold12: return (BMF_Font*) &bmfHelvb12;
#endif // BMF_INCLUDE_HELVB12
#if BMF_INCLUDE_HELVB14
case BMF_kHelveticaBold14: return (BMF_Font*) &bmfHelvb14;
#endif // BMF_INCLUDE_HELVB12
#if BMF_INCLUDE_SCR12
case BMF_kScreen12: return (BMF_Font*) &bmfScreen12;
#endif // BMF_INCLUDE_SCR12
#if BMF_INCLUDE_SCR14
case BMF_kScreen14: return (BMF_Font*) &bmfScreen14;
#endif // BMF_INCLUDE_SCR14
#if BMF_INCLUDE_SCR15
case BMF_kScreen15: return (BMF_Font*) &bmfScreen15;
#endif // BMF_INCLUDE_SCR15
default:
break;
}
return 0;
}
int BMF_DrawCharacter(BMF_Font* font, char c)
{
char str[2] = {c, '\0'};
return BMF_DrawString(font, str);
}
int BMF_DrawString(BMF_Font* font, char* str)
{
if (!font) return 0;
((BMF_BitmapFont*)font)->DrawString(str);
return 1;
}
int BMF_GetCharacterWidth(BMF_Font* font, char c)
{
char str[2] = {c, '\0'};
return BMF_GetStringWidth(font, str);
}
int BMF_GetStringWidth(BMF_Font* font, char* str)
{
if (!font) return 0;
return ((BMF_BitmapFont*)font)->GetStringWidth(str);
}
void BMF_GetStringBoundingBox(BMF_Font* font, char* str, float*llx, float *lly, float *urx, float *ury){
if (!font){
*llx = *lly = *urx = *ury = 0;
}else{
((BMF_BitmapFont*)font)->GetStringBoundingBox(str, llx, lly, urx, ury);
}
}
void BMF_GetFontBoundingBox(BMF_Font* font, int *xmin_r, int *ymin_r, int *xmax_r, int *ymax_r)
{
if (!font) return;
((BMF_BitmapFont*)font)->GetFontBoundingBox(*xmin_r, *ymin_r, *xmax_r, *ymax_r);
}
int BMF_GetFontHeight(BMF_Font* font)
{
if (!font) return -1;
return ((BMF_BitmapFont*)font)->GetFontHeight();
}
int BMF_GetFontTexture(BMF_Font* font) {
if (!font) return -1;
return ((BMF_BitmapFont*)font)->GetTexture();
}
void BMF_DrawStringTexture(BMF_Font* font, char *string, float x, float y, float z) {
if (!font) return;
((BMF_BitmapFont*)font)->DrawStringTexture(string, x, y, z);
}
void BMF_DrawStringBuf(BMF_Font* font, char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels) {
if (!font) return;
((BMF_BitmapFont*)font)->DrawStringBuf(str, posx, posy, col, buf, fbuf, w, h, channels);
}

View File

@@ -1,323 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
*/
#include <stdio.h>
#include <string.h>
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#if defined(WIN32) || defined(__APPLE__)
#ifdef WIN32
#if !defined(__CYGWIN32__)
#pragma warning(disable:4244)
#endif /* __CYGWIN32__ */
#include <windows.h>
#include <GL/gl.h>
#else // WIN32
// __APPLE__ is defined
#include <AGL/gl.h>
#endif // WIN32
#else // defined(WIN32) || defined(__APPLE__)
#include <GL/gl.h>
#endif // defined(WIN32) || defined(__APPLE__)
#include "BMF_BitmapFont.h"
BMF_BitmapFont::BMF_BitmapFont(BMF_FontData* fontData)
: m_fontData(fontData)
{
}
BMF_BitmapFont::~BMF_BitmapFont(void)
{
}
void BMF_BitmapFont::DrawString(char* str)
{
GLint alignment;
unsigned char c;
glGetIntegerv(GL_UNPACK_ALIGNMENT, &alignment);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
while ( (c = (unsigned char) *str++) ) {
BMF_CharData & cd = m_fontData->chars[c];
if (cd.data_offset==-1) {
GLubyte nullBitmap = 0;
glBitmap(1, 1, 0, 0, cd.advance, 0, &nullBitmap);
} else {
GLubyte *bitmap = &m_fontData->bitmap_data[cd.data_offset];
glBitmap(cd.width, cd.height, cd.xorig, cd.yorig, cd.advance, 0, bitmap);
}
}
glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
}
int BMF_BitmapFont::GetStringWidth(char* str)
{
unsigned char c;
int length = 0;
while ( (c = (unsigned char) *str++) ) {
length += m_fontData->chars[c].advance;
}
return length;
}
void BMF_BitmapFont::GetFontBoundingBox(int & xMin, int & yMin, int & xMax, int & yMax)
{
xMin = m_fontData->xmin;
yMin = m_fontData->ymin;
xMax = m_fontData->xmax;
yMax = m_fontData->ymax;
}
int BMF_BitmapFont::GetFontHeight( void )
{
return m_fontData->ymax - m_fontData->ymin;
}
void BMF_BitmapFont::GetStringBoundingBox(char* str, float*llx, float *lly, float *urx, float *ury)
{
unsigned char c;
int length = 0;
int ascent = 0;
int descent = 0;
while ( (c = (unsigned char) *str++) ) {
length += m_fontData->chars[c].advance;
int d = m_fontData->chars[c].yorig;
int a = m_fontData->chars[c].height - m_fontData->chars[c].yorig;
if(a > ascent) ascent = a;
if(d > descent) descent = d;
}
*llx = (float)0;
*lly = (float)-descent;
*urx = (float)length;
*ury = (float)ascent;
}
int BMF_BitmapFont::GetTexture()
{
int fWidth = m_fontData->xmax - m_fontData->xmin;
int fHeight = m_fontData->ymax - m_fontData->ymin;
if (fWidth>=16 || fHeight>=16) {
return -1;
}
int cRows = 16, cCols = 16;
int cWidth = 16, cHeight = 16;
int iWidth = cCols*cWidth;
int iHeight = cRows*cHeight;
GLubyte *img = new GLubyte [iHeight*iWidth];
GLuint texId;
int baseLine = -(m_fontData->ymin);
memset(img, 0, iHeight*iWidth);
for (int i = 0; i<256; i++) {
BMF_CharData & cd = m_fontData->chars[i];
if (cd.data_offset != -1) {
int cellX = i%16;
int cellY = i/16;
for (int y = 0; y<cd.height; y++) {
GLubyte* imgRow = &img[(cellY*cHeight + y + baseLine - cd.yorig)*iWidth];
GLubyte* chrRow = &m_fontData->bitmap_data[cd.data_offset + ((cd.width+7)/8)*y];
for (int x = 0; x<cd.width; x++) {
GLubyte* imgPxl = &imgRow[(cellX*cWidth + x - cd.xorig)];
int byteIdx = x/8;
int bitIdx = 7 - (x%8);
if (chrRow[byteIdx]&(1<<bitIdx)) {
imgPxl[0] = 255;
}
}
}
}
}
glGenTextures(1, &texId);
glBindTexture(GL_TEXTURE_2D, texId);
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA4, iWidth, iHeight, 0, GL_ALPHA, GL_UNSIGNED_BYTE, img);
if (glGetError()) {
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE4_ALPHA4, iWidth, iHeight, 0, GL_ALPHA, GL_UNSIGNED_BYTE, img);
}
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
delete [] img;
return texId;
}
void BMF_BitmapFont::DrawStringTexture(char *str, float x, float y, float z)
{
unsigned char c;
float pos = 0;
int baseLine = -(m_fontData->ymin);
glBegin(GL_QUADS);
while ( (c = (unsigned char) *str++) ) {
BMF_CharData & cd = m_fontData->chars[c];
if (cd.data_offset != -1) {
float cellX = (c%16)/16.0;
float cellY = (c/16)/16.0;
glTexCoord2f(cellX + 1.0/16.0, cellY);
glVertex3f(x + pos + 16.0, -baseLine + y + 0.0, z);
glTexCoord2f(cellX + 1.0/16.0, cellY + 1.0/16.0);
glVertex3f(x + pos + 16.0, -baseLine + y + 16.0, z);
glTexCoord2f(cellX, cellY + 1.0/16.0);
glVertex3f(x + pos + 0.0, -baseLine + y + 16.0, z);
glTexCoord2f(cellX, cellY);
glVertex3f(x + pos + 0.0, -baseLine + y + 0.0, z);
}
pos += cd.advance;
}
glEnd();
}
#define FTOCHAR(val) val<=0.0f?0: (val>=1.0f?255: (char)(255.0f*val))
void BMF_BitmapFont::DrawStringBuf(char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels)
{
int x, y;
if (buf==0 && fbuf==0)
return;
/*offset for font*/
posx -= m_fontData->xmin;
posy -= m_fontData->ymin;
if (buf) {
unsigned char colch[4];
unsigned char *max, *pixel;
unsigned char c;
for (x=0; x<4; x++) {
colch[x] = FTOCHAR(col[x]);
}
max = buf + (4 * (w * h));
while ((c = (unsigned char) *str++)) {
BMF_CharData & cd = m_fontData->chars[c];
if (cd.data_offset != -1) {
for (y = 0; y < cd.height; y++) {
unsigned char* chrRow = &m_fontData->bitmap_data[cd.data_offset + ((cd.width+7)/8)*y];
for (x = cd.xorig; x < cd.width; x++) {
pixel = buf + 4 * (((posy + y - cd.yorig) * w) + (posx + x));
if ((pixel < max) && (pixel > buf)) {
int byteIdx = x/8;
int bitIdx = 7 - (x%8);
if (chrRow[byteIdx]&(1<<bitIdx)) {
pixel[0] = colch[0];
pixel[1] = colch[1];
pixel[2] = colch[2];
if (channels==4) {
pixel[4] = 1; /*colch[3];*/
}
}
}
}
}
}
posx += cd.advance;
}
}
if (fbuf) {
float *pixel, *max;
unsigned char c;
int xi, yi;
max = fbuf + (4 * (w * h));
while ((c = (unsigned char) *str++)) {
BMF_CharData & cd = m_fontData->chars[c];
if (cd.data_offset != -1) {
for (yi = 0; yi < cd.height; yi++) {
unsigned char* chrRow = &m_fontData->bitmap_data[cd.data_offset + ((cd.width+7)/8)*yi];
for (xi = cd.xorig; xi < cd.width; xi++) {
pixel = fbuf + 4 * (((posy + yi - cd.yorig) * w) + (posx + xi));
if ((pixel < max) && (pixel > fbuf)) {
int byteIdx = xi/8;
int bitIdx = 7 - (xi%8);
if (chrRow[byteIdx]&(1<<bitIdx)) {
pixel[0] = col[0];
pixel[1] = col[1];
pixel[2] = col[2];
if (channels==4) {
pixel[3] = 1; /*col[3];*/
}
}
}
}
}
}
posx += cd.advance;
}
}
}

View File

@@ -1,140 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
*/
#ifndef __BMF_BITMAP_FONT_H
#define __BMF_BITMAP_FONT_H
#include "BMF_FontData.h"
/**
* Base class for OpenGL bitmap fonts.
*/
class BMF_BitmapFont
{
public:
/**
* Default constructor.
*/
BMF_BitmapFont(BMF_FontData* fontData);
/**
* Destructor.
*/
virtual ~BMF_BitmapFont(void);
/**
* Draws a string at the current raster position.
* @param str The string to draw.
*/
void DrawString(char* str);
/**
* Draws a string at the current raster position.
* @param str The string to draw.
* @return The width of the string.
*/
int GetStringWidth(char* str);
/**
* Returns the bounding box of the font. The width and
* height represent the bounding box of the union of
* all glyps. The minimum and maximum values of the
* box represent the extent of the font and its positioning
* about the origin.
*/
void GetFontBoundingBox(int & xMin, int & yMin, int & xMax, int & yMax);
/**
* Return the bounding box height of the font.
*/
int GetFontHeight(void);
/**
* Returns the bounding box of a string of characters.
* @param font The font to use.
* @param str The string.
* @param llx Lower left x coord
* @param lly Lower left y coord
* @param urx Upper right x coord
* @param ury Upper right y coord
*/
void GetStringBoundingBox(char* str, float*llx, float *lly, float *urx, float *ury);
/**
* Convert the font to a texture, and return the GL texture
* ID of the texture. If the texture ID is bound, text can
* be drawn using the texture by calling DrawStringTexture.
*
* @return The GL texture ID of the new texture, or -1 if unable
* to create.
*/
int GetTexture();
/**
* Draw the given @a string at the point @a x, @a y, @a z, using
* texture coordinates. This assumes that an appropriate texture
* has been bound, see BMF_BitmapFont::GetTexture(). The string
* is drawn along the positive X axis.
*
* @param string The c-string to draw.
* @param x The x coordinate to start drawing at.
* @param y The y coordinate to start drawing at.
* @param z The z coordinate to start drawing at.
*/
void DrawStringTexture(char* string, float x, float y, float z);
/**
* Draw the given @a string at the point @a xpos, @a ypos using
* char and float buffers.
*
* @param string The c-string to draw.
* @param xpos The x coordinate to start drawing at.
* @param ypos The y coordinate to start drawing at.
* @param col The forground color.
* @param buf Unsigned char image buffer, when NULL to not operate on it.
* @param fbuf float image buffer, when NULL to not operate on it.
* @param w image buffer width.
* @param h image buffer height.
* @param channels number of channels in the image (3 or 4 - currently)
*/
void DrawStringBuf(char *str, int posx, int posy, float *col, unsigned char *buf, float *fbuf, int w, int h, int channels);
protected:
/** Pointer to the font data. */
BMF_FontData* m_fontData;
};
#endif // __BMF_BITMAP_FONT_H

View File

@@ -1,55 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/**
* $Id$
* Copyright (C) 2001 NaN Technologies B.V.
*/
#ifndef __BMF_FONTDATA_H__
#define __BMF_FONTDATA_H__
typedef struct {
signed char width, height;
signed char xorig, yorig;
signed char advance;
short data_offset;
} BMF_CharData;
typedef struct {
int xmin, ymin;
int xmax, ymax;
BMF_CharData chars[256];
unsigned char* bitmap_data;
} BMF_FontData;
#endif

View File

@@ -1,494 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_FontData.h"
#include "BMF_Settings.h"
#if BMF_INCLUDE_HELV10
static unsigned char bitmap_data[]= {
0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x80,
0xa0,0xa0,0x50,0x50,0xf8,0x28,0x7c,0x28,
0x28,0x20,0x70,0xa8,0x28,0x70,0xa0,0xa8,
0x70,0x20,0x26,0x29,0x16,0x10,0x08,0x68,
0x94,0x64,0x64,0x98,0x98,0xa4,0x60,0x50,
0x50,0x20,0x80,0x40,0x40,0x20,0x40,0x40,
0x80,0x80,0x80,0x80,0x40,0x40,0x20,0x80,
0x40,0x40,0x20,0x20,0x20,0x20,0x40,0x40,
0x80,0xa0,0x40,0xa0,0x20,0x20,0xf8,0x20,
0x20,0x80,0x40,0x40,0xf8,0x80,0x80,0x80,
0x40,0x40,0x40,0x40,0x20,0x20,0x70,0x88,
0x88,0x88,0x88,0x88,0x88,0x70,0x40,0x40,
0x40,0x40,0x40,0x40,0xc0,0x40,0xf8,0x80,
0x40,0x30,0x08,0x08,0x88,0x70,0x70,0x88,
0x08,0x08,0x30,0x08,0x88,0x70,0x10,0x10,
0xf8,0x90,0x50,0x50,0x30,0x10,0x70,0x88,
0x08,0x08,0xf0,0x80,0x80,0xf8,0x70,0x88,
0x88,0xc8,0xb0,0x80,0x88,0x70,0x40,0x40,
0x20,0x20,0x10,0x10,0x08,0xf8,0x70,0x88,
0x88,0x88,0x70,0x88,0x88,0x70,0x70,0x88,
0x08,0x68,0x98,0x88,0x88,0x70,0x80,0x00,
0x00,0x00,0x00,0x80,0x80,0x40,0x40,0x00,
0x00,0x00,0x00,0x40,0x20,0x40,0x80,0x40,
0x20,0xf0,0x00,0xf0,0x80,0x40,0x20,0x40,
0x80,0x40,0x00,0x40,0x40,0x20,0x10,0x90,
0x60,0x3e,0x00,0x40,0x00,0x9b,0x00,0xa4,
0x80,0xa4,0x80,0xa2,0x40,0x92,0x40,0x4d,
0x40,0x20,0x80,0x1f,0x00,0x82,0x82,0x7c,
0x44,0x28,0x28,0x10,0x10,0xf0,0x88,0x88,
0x88,0xf0,0x88,0x88,0xf0,0x78,0x84,0x80,
0x80,0x80,0x80,0x84,0x78,0xf0,0x88,0x84,
0x84,0x84,0x84,0x88,0xf0,0xf8,0x80,0x80,
0x80,0xf8,0x80,0x80,0xf8,0x80,0x80,0x80,
0x80,0xf0,0x80,0x80,0xf8,0x74,0x8c,0x84,
0x8c,0x80,0x80,0x84,0x78,0x84,0x84,0x84,
0x84,0xfc,0x84,0x84,0x84,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x60,0x90,0x10,
0x10,0x10,0x10,0x10,0x10,0x88,0x88,0x90,
0x90,0xe0,0xa0,0x90,0x88,0xf0,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x92,0x92,0x92,
0xaa,0xaa,0xc6,0xc6,0x82,0x8c,0x8c,0x94,
0x94,0xa4,0xa4,0xc4,0xc4,0x78,0x84,0x84,
0x84,0x84,0x84,0x84,0x78,0x80,0x80,0x80,
0x80,0xf0,0x88,0x88,0xf0,0x02,0x7c,0x8c,
0x94,0x84,0x84,0x84,0x84,0x78,0x88,0x88,
0x88,0x88,0xf0,0x88,0x88,0xf0,0x70,0x88,
0x88,0x08,0x70,0x80,0x88,0x70,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0xf8,0x78,0x84,
0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x28,
0x28,0x44,0x44,0x44,0x82,0x82,0x22,0x00,
0x22,0x00,0x22,0x00,0x55,0x00,0x49,0x00,
0x49,0x00,0x88,0x80,0x88,0x80,0x88,0x88,
0x50,0x50,0x20,0x50,0x88,0x88,0x10,0x10,
0x10,0x28,0x28,0x44,0x44,0x82,0xf8,0x80,
0x40,0x20,0x20,0x10,0x08,0xf8,0xc0,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0,
0x20,0x20,0x40,0x40,0x40,0x40,0x80,0x80,
0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x40,0xc0,0x88,0x50,0x50,0x20,0x20,0xfc,
0x80,0x80,0x40,0x68,0x90,0x90,0x70,0x10,
0xe0,0xb0,0xc8,0x88,0x88,0xc8,0xb0,0x80,
0x80,0x60,0x90,0x80,0x80,0x90,0x60,0x68,
0x98,0x88,0x88,0x98,0x68,0x08,0x08,0x60,
0x90,0x80,0xf0,0x90,0x60,0x40,0x40,0x40,
0x40,0x40,0xe0,0x40,0x30,0x70,0x08,0x68,
0x98,0x88,0x88,0x98,0x68,0x88,0x88,0x88,
0x88,0xc8,0xb0,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x00,0x80,0x90,0x90,
0xa0,0xc0,0xa0,0x90,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x92,0x92,
0x92,0x92,0x92,0xec,0x88,0x88,0x88,0x88,
0xc8,0xb0,0x70,0x88,0x88,0x88,0x88,0x70,
0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,0xb0,
0x08,0x08,0x68,0x98,0x88,0x88,0x98,0x68,
0x80,0x80,0x80,0x80,0xc0,0xa0,0x60,0x90,
0x10,0x60,0x90,0x60,0x60,0x40,0x40,0x40,
0x40,0xe0,0x40,0x40,0x70,0x90,0x90,0x90,
0x90,0x90,0x20,0x20,0x50,0x50,0x88,0x88,
0x28,0x28,0x54,0x54,0x92,0x92,0x88,0x88,
0x50,0x20,0x50,0x88,0x80,0x40,0x40,0x60,
0xa0,0xa0,0x90,0x90,0xf0,0x80,0x40,0x20,
0x10,0xf0,0x20,0x40,0x40,0x40,0x40,0x80,
0x40,0x40,0x40,0x20,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x40,
0x40,0x40,0x40,0x20,0x40,0x40,0x40,0x80,
0x98,0x64,0x80,0x80,0x80,0x80,0x80,0x80,
0x00,0x80,0x40,0x70,0xa8,0xa0,0xa0,0xa8,
0x70,0x10,0xb0,0x48,0x40,0x40,0xe0,0x40,
0x48,0x30,0x90,0x60,0x90,0x90,0x60,0x90,
0x20,0xf8,0x20,0xf8,0x50,0x50,0x88,0x88,
0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x80,
0x80,0x80,0x70,0x88,0x18,0x70,0xc8,0x98,
0x70,0xc0,0x88,0x70,0xa0,0x38,0x44,0x9a,
0xa2,0x9a,0x44,0x38,0xe0,0x00,0xa0,0x20,
0xe0,0x28,0x50,0xa0,0x50,0x28,0x08,0x08,
0xf8,0xe0,0x38,0x44,0xaa,0xb2,0xba,0x44,
0x38,0xe0,0x60,0x90,0x90,0x60,0xf8,0x00,
0x20,0x20,0xf8,0x20,0x20,0xe0,0x40,0xa0,
0x60,0xc0,0x20,0x40,0xe0,0x80,0x40,0x80,
0x80,0xf0,0x90,0x90,0x90,0x90,0x90,0x28,
0x28,0x28,0x28,0x28,0x68,0xe8,0xe8,0xe8,
0x7c,0xc0,0xc0,0x40,0x40,0x40,0xc0,0x40,
0xe0,0x00,0xe0,0xa0,0xe0,0xa0,0x50,0x28,
0x50,0xa0,0x21,0x00,0x17,0x80,0x13,0x00,
0x09,0x00,0x48,0x00,0x44,0x00,0xc4,0x00,
0x42,0x00,0x27,0x12,0x15,0x0b,0x48,0x44,
0xc4,0x42,0x21,0x00,0x17,0x80,0x13,0x00,
0x09,0x00,0xc8,0x00,0x24,0x00,0x44,0x00,
0xe2,0x00,0x60,0x90,0x80,0x40,0x20,0x20,
0x00,0x20,0x82,0x82,0x7c,0x44,0x28,0x28,
0x10,0x10,0x00,0x10,0x20,0x82,0x82,0x7c,
0x44,0x28,0x28,0x10,0x10,0x00,0x10,0x08,
0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,
0x00,0x28,0x10,0x82,0x82,0x7c,0x44,0x28,
0x28,0x10,0x10,0x00,0x28,0x14,0x82,0x82,
0x7c,0x44,0x28,0x28,0x10,0x10,0x00,0x28,
0x82,0x82,0x7c,0x44,0x28,0x28,0x10,0x10,
0x10,0x28,0x10,0x8f,0x80,0x88,0x00,0x78,
0x00,0x48,0x00,0x2f,0x80,0x28,0x00,0x18,
0x00,0x1f,0x80,0x30,0x10,0x78,0x84,0x80,
0x80,0x80,0x80,0x84,0x78,0xf8,0x80,0x80,
0x80,0xf8,0x80,0x80,0xf8,0x00,0x20,0x40,
0xf8,0x80,0x80,0x80,0xf8,0x80,0x80,0xf8,
0x00,0x20,0x10,0xf8,0x80,0x80,0xf8,0x80,
0x80,0x80,0xf8,0x00,0x50,0x20,0xf8,0x80,
0x80,0x80,0xf8,0x80,0x80,0xf8,0x00,0x50,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x00,0x40,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x00,0x80,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x00,0xa0,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x40,0x00,0xa0,0x78,0x44,0x42,0x42,0xf2,
0x42,0x44,0x78,0x8c,0x8c,0x94,0x94,0xa4,
0xa4,0xc4,0xc4,0x00,0x50,0x28,0x78,0x84,
0x84,0x84,0x84,0x84,0x84,0x78,0x00,0x10,
0x20,0x78,0x84,0x84,0x84,0x84,0x84,0x84,
0x78,0x00,0x10,0x08,0x78,0x84,0x84,0x84,
0x84,0x84,0x84,0x78,0x00,0x28,0x10,0x78,
0x84,0x84,0x84,0x84,0x84,0x84,0x78,0x00,
0x50,0x28,0x78,0x84,0x84,0x84,0x84,0x84,
0x84,0x78,0x00,0x48,0x88,0x50,0x20,0x50,
0x88,0x80,0x78,0xc4,0xa4,0xa4,0x94,0x94,
0x8c,0x78,0x04,0x78,0x84,0x84,0x84,0x84,
0x84,0x84,0x84,0x00,0x10,0x20,0x78,0x84,
0x84,0x84,0x84,0x84,0x84,0x84,0x00,0x20,
0x10,0x78,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x00,0x28,0x10,0x78,0x84,0x84,0x84,
0x84,0x84,0x84,0x84,0x00,0x48,0x10,0x10,
0x10,0x28,0x28,0x44,0x44,0x82,0x00,0x10,
0x08,0x80,0x80,0xf0,0x88,0x88,0xf0,0x80,
0x80,0xa0,0x90,0x90,0x90,0xa0,0x90,0x90,
0x60,0x68,0x90,0x90,0x70,0x10,0xe0,0x00,
0x20,0x40,0x68,0x90,0x90,0x70,0x10,0xe0,
0x00,0x20,0x10,0x68,0x90,0x90,0x70,0x10,
0xe0,0x00,0x50,0x20,0x68,0x90,0x90,0x70,
0x10,0xe0,0x00,0xa0,0x50,0x68,0x90,0x90,
0x70,0x10,0xe0,0x00,0x50,0x68,0x90,0x90,
0x70,0x10,0xe0,0x20,0x50,0x20,0x6c,0x92,
0x90,0x7e,0x12,0xec,0x60,0x20,0x60,0x90,
0x80,0x80,0x90,0x60,0x60,0x90,0x80,0xf0,
0x90,0x60,0x00,0x20,0x40,0x60,0x90,0x80,
0xf0,0x90,0x60,0x00,0x40,0x20,0x60,0x90,
0x80,0xf0,0x90,0x60,0x00,0x50,0x20,0x60,
0x90,0x80,0xf0,0x90,0x60,0x00,0x50,0x40,
0x40,0x40,0x40,0x40,0x40,0x00,0x40,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0xa0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x00,0xa0,0x70,0x88,0x88,0x88,0x88,0x78,
0x90,0x60,0x50,0x90,0x90,0x90,0x90,0x90,
0xe0,0x00,0xa0,0x50,0x70,0x88,0x88,0x88,
0x88,0x70,0x00,0x20,0x40,0x70,0x88,0x88,
0x88,0x88,0x70,0x00,0x20,0x10,0x70,0x88,
0x88,0x88,0x88,0x70,0x00,0x50,0x20,0x70,
0x88,0x88,0x88,0x88,0x70,0x00,0x50,0x28,
0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x50,
0x20,0x00,0xf8,0x00,0x20,0x70,0x88,0xc8,
0xa8,0x98,0x74,0x70,0x90,0x90,0x90,0x90,
0x90,0x00,0x20,0x40,0x70,0x90,0x90,0x90,
0x90,0x90,0x00,0x40,0x20,0x70,0x90,0x90,
0x90,0x90,0x90,0x00,0x50,0x20,0x70,0x90,
0x90,0x90,0x90,0x90,0x00,0x50,0x80,0x40,
0x40,0x60,0xa0,0xa0,0x90,0x90,0x00,0x20,
0x10,0x80,0x80,0xb0,0xc8,0x88,0x88,0xc8,
0xb0,0x80,0x80,0x80,0x40,0x40,0x60,0xa0,
0xa0,0x90,0x90,0x00,0x50,
};
BMF_FontData BMF_font_helv10 = {
-1, -2,
10, 11,
{
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 12, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 3, -1},
{1, 8, -1, 0, 3, 0},
{3, 2, -1, -6, 4, 8},
{6, 7, 0, 0, 6, 10},
{5, 9, 0, 1, 6, 17},
{8, 8, 0, 0, 9, 26},
{6, 8, -1, 0, 8, 34},
{2, 3, -1, -5, 3, 42},
{3, 10, 0, 2, 4, 45},
{3, 10, -1, 2, 4, 55},
{3, 3, 0, -5, 4, 65},
{5, 5, 0, -1, 6, 68},
{2, 3, 0, 2, 3, 73},
{5, 1, -1, -3, 7, 76},
{1, 1, -1, 0, 3, 77},
{3, 8, 0, 0, 3, 78},
{5, 8, 0, 0, 6, 86},
{2, 8, -1, 0, 6, 94},
{5, 8, 0, 0, 6, 102},
{5, 8, 0, 0, 6, 110},
{5, 8, 0, 0, 6, 118},
{5, 8, 0, 0, 6, 126},
{5, 8, 0, 0, 6, 134},
{5, 8, 0, 0, 6, 142},
{5, 8, 0, 0, 6, 150},
{5, 8, 0, 0, 6, 158},
{1, 6, -1, 0, 3, 166},
{2, 8, 0, 2, 3, 172},
{3, 5, -1, -1, 6, 180},
{4, 3, 0, -2, 5, 185},
{3, 5, -1, -1, 6, 188},
{4, 8, -1, 0, 6, 193},
{10, 10, 0, 2, 11, 201},
{7, 8, 0, 0, 7, 221},
{5, 8, -1, 0, 7, 229},
{6, 8, -1, 0, 8, 237},
{6, 8, -1, 0, 8, 245},
{5, 8, -1, 0, 7, 253},
{5, 8, -1, 0, 6, 261},
{6, 8, -1, 0, 8, 269},
{6, 8, -1, 0, 8, 277},
{1, 8, -1, 0, 3, 285},
{4, 8, 0, 0, 5, 293},
{5, 8, -1, 0, 7, 301},
{4, 8, -1, 0, 6, 309},
{7, 8, -1, 0, 9, 317},
{6, 8, -1, 0, 8, 325},
{6, 8, -1, 0, 8, 333},
{5, 8, -1, 0, 7, 341},
{7, 9, -1, 1, 8, 349},
{5, 8, -1, 0, 7, 358},
{5, 8, -1, 0, 7, 366},
{5, 8, 0, 0, 5, 374},
{6, 8, -1, 0, 8, 382},
{7, 8, 0, 0, 7, 390},
{9, 8, 0, 0, 9, 398},
{5, 8, -1, 0, 7, 414},
{7, 8, 0, 0, 7, 422},
{5, 8, -1, 0, 7, 430},
{2, 10, -1, 2, 3, 438},
{3, 8, 0, 0, 3, 448},
{2, 10, 0, 2, 3, 456},
{5, 5, 0, -3, 6, 466},
{6, 1, 0, 2, 6, 471},
{2, 3, 0, -5, 3, 472},
{5, 6, 0, 0, 5, 475},
{5, 8, 0, 0, 6, 481},
{4, 6, 0, 0, 5, 489},
{5, 8, 0, 0, 6, 495},
{4, 6, 0, 0, 5, 503},
{4, 8, 0, 0, 4, 509},
{5, 8, 0, 2, 6, 517},
{5, 8, 0, 0, 6, 525},
{1, 8, 0, 0, 2, 533},
{1, 9, 0, 1, 2, 541},
{4, 8, 0, 0, 5, 550},
{1, 8, 0, 0, 2, 558},
{7, 6, 0, 0, 8, 566},
{5, 6, 0, 0, 6, 572},
{5, 6, 0, 0, 6, 578},
{5, 8, 0, 2, 6, 584},
{5, 8, 0, 2, 6, 592},
{3, 6, 0, 0, 4, 600},
{4, 6, 0, 0, 5, 606},
{3, 8, 0, 0, 4, 612},
{4, 6, 0, 0, 5, 620},
{5, 6, 0, 0, 6, 626},
{7, 6, 0, 0, 8, 632},
{5, 6, 0, 0, 6, 638},
{4, 8, 0, 2, 5, 644},
{4, 6, 0, 0, 5, 652},
{3, 10, 0, 2, 3, 658},
{1, 10, -1, 2, 3, 668},
{3, 10, 0, 2, 3, 678},
{6, 2, 0, -3, 7, 688},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 3, -1},
{1, 8, -1, 2, 3, 690},
{5, 8, 0, 1, 6, 698},
{5, 8, 0, 0, 6, 706},
{4, 6, 0, -1, 5, 714},
{5, 8, 0, 0, 6, 720},
{1, 10, -1, 2, 3, 728},
{5, 10, 0, 2, 6, 738},
{3, 1, 0, -7, 3, 748},
{7, 7, -1, 0, 9, 749},
{3, 5, 0, -3, 4, 756},
{5, 5, 0, 0, 6, 761},
{5, 3, -1, -2, 7, 766},
{3, 1, 0, -3, 4, 769},
{7, 7, -1, 0, 9, 770},
{3, 1, 0, -7, 3, 777},
{4, 4, 0, -3, 4, 778},
{5, 7, 0, 0, 6, 782},
{3, 4, 0, -3, 3, 789},
{3, 4, 0, -3, 3, 793},
{2, 2, 0, -6, 3, 797},
{4, 8, 0, 2, 5, 799},
{6, 10, 0, 2, 6, 807},
{2, 1, 0, -3, 3, 817},
{2, 2, 0, 2, 3, 818},
{2, 4, 0, -3, 3, 820},
{3, 5, 0, -3, 4, 824},
{5, 5, 0, 0, 6, 829},
{9, 8, 0, 0, 9, 834},
{8, 8, 0, 0, 9, 850},
{9, 8, 0, 0, 9, 858},
{4, 8, -1, 2, 6, 874},
{7, 11, 0, 0, 7, 882},
{7, 11, 0, 0, 7, 893},
{7, 11, 0, 0, 7, 904},
{7, 11, 0, 0, 7, 915},
{7, 10, 0, 0, 7, 926},
{7, 11, 0, 0, 7, 936},
{9, 8, 0, 0, 10, 947},
{6, 10, -1, 2, 8, 963},
{5, 11, -1, 0, 7, 973},
{5, 11, -1, 0, 7, 984},
{5, 11, -1, 0, 7, 995},
{5, 10, -1, 0, 7, 1006},
{2, 11, 0, 0, 3, 1016},
{2, 11, -1, 0, 3, 1027},
{3, 11, 0, 0, 3, 1038},
{3, 10, 0, 0, 3, 1049},
{7, 8, 0, 0, 8, 1059},
{6, 11, -1, 0, 8, 1067},
{6, 11, -1, 0, 8, 1078},
{6, 11, -1, 0, 8, 1089},
{6, 11, -1, 0, 8, 1100},
{6, 11, -1, 0, 8, 1111},
{6, 10, -1, 0, 8, 1122},
{5, 5, 0, -1, 6, 1132},
{6, 10, -1, 1, 8, 1137},
{6, 11, -1, 0, 8, 1147},
{6, 11, -1, 0, 8, 1158},
{6, 11, -1, 0, 8, 1169},
{6, 10, -1, 0, 8, 1180},
{7, 11, 0, 0, 7, 1190},
{5, 8, -1, 0, 7, 1201},
{4, 8, 0, 0, 5, 1209},
{5, 9, 0, 0, 5, 1217},
{5, 9, 0, 0, 5, 1226},
{5, 9, 0, 0, 5, 1235},
{5, 9, 0, 0, 5, 1244},
{5, 8, 0, 0, 5, 1253},
{5, 9, 0, 0, 5, 1261},
{7, 6, 0, 0, 8, 1270},
{4, 8, 0, 2, 5, 1276},
{4, 9, 0, 0, 5, 1284},
{4, 9, 0, 0, 5, 1293},
{4, 9, 0, 0, 5, 1302},
{4, 8, 0, 0, 5, 1311},
{2, 9, 1, 0, 2, 1319},
{2, 9, 0, 0, 2, 1328},
{3, 9, 1, 0, 2, 1337},
{3, 8, 0, 0, 2, 1346},
{5, 9, 0, 0, 6, 1354},
{4, 9, 0, 0, 5, 1363},
{5, 9, 0, 0, 6, 1372},
{5, 9, 0, 0, 6, 1381},
{5, 9, 0, 0, 6, 1390},
{5, 9, 0, 0, 6, 1399},
{5, 8, 0, 0, 6, 1408},
{5, 5, 0, -1, 6, 1416},
{6, 6, 0, 0, 6, 1421},
{4, 9, 0, 0, 5, 1427},
{4, 9, 0, 0, 5, 1436},
{4, 9, 0, 0, 5, 1445},
{4, 8, 0, 0, 5, 1454},
{4, 11, 0, 2, 5, 1462},
{5, 10, 0, 2, 6, 1473},
{4, 10, 0, 2, 5, 1483},
},
bitmap_data
};
#endif

View File

@@ -1,525 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_FontData.h"
#include "BMF_Settings.h"
#if BMF_INCLUDE_HELV12
static unsigned char bitmap_data[]= {
0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0xa0,0xa0,0xa0,0x50,0x50,0x50,0xfc,
0x28,0xfc,0x28,0x28,0x20,0x70,0xa8,0xa8,
0x28,0x70,0xa0,0xa8,0x70,0x20,0x23,0x00,
0x14,0x80,0x14,0x80,0x13,0x00,0x08,0x00,
0x68,0x00,0x94,0x00,0x94,0x00,0x62,0x00,
0x72,0x8c,0x84,0x8a,0x50,0x30,0x48,0x48,
0x30,0x80,0x40,0xc0,0x20,0x40,0x40,0x80,
0x80,0x80,0x80,0x80,0x80,0x40,0x40,0x20,
0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x20,
0x20,0x40,0x40,0x80,0xa0,0x40,0xa0,0x20,
0x20,0xf8,0x20,0x20,0x80,0x40,0x40,0xf8,
0x80,0x80,0x80,0x40,0x40,0x40,0x20,0x20,
0x10,0x10,0x70,0x88,0x88,0x88,0x88,0x88,
0x88,0x88,0x70,0x20,0x20,0x20,0x20,0x20,
0x20,0x20,0xe0,0x20,0xf8,0x80,0x80,0x40,
0x20,0x10,0x08,0x88,0x70,0x70,0x88,0x88,
0x08,0x08,0x30,0x08,0x88,0x70,0x08,0x08,
0xfc,0x88,0x48,0x28,0x28,0x18,0x08,0x70,
0x88,0x88,0x08,0x08,0xf0,0x80,0x80,0xf8,
0x70,0x88,0x88,0x88,0xc8,0xb0,0x80,0x88,
0x70,0x40,0x40,0x20,0x20,0x20,0x10,0x10,
0x08,0xf8,0x70,0x88,0x88,0x88,0x88,0x70,
0x88,0x88,0x70,0x70,0x88,0x08,0x08,0x78,
0x88,0x88,0x88,0x70,0x80,0x00,0x00,0x00,
0x00,0x80,0x80,0x40,0x40,0x00,0x00,0x00,
0x00,0x40,0x0c,0x30,0xc0,0x30,0x0c,0xf8,
0x00,0xf8,0xc0,0x30,0x0c,0x30,0xc0,0x20,
0x00,0x20,0x20,0x10,0x10,0x88,0x88,0x70,
0x3e,0x00,0x40,0x00,0x9b,0x00,0xa6,0x80,
0xa2,0x40,0xa2,0x40,0x92,0x40,0x4d,0x40,
0x60,0x80,0x1f,0x00,0x82,0x82,0x82,0x7c,
0x44,0x44,0x28,0x28,0x10,0xf8,0x84,0x84,
0x84,0xf8,0x84,0x84,0x84,0xf8,0x3c,0x42,
0x80,0x80,0x80,0x80,0x80,0x42,0x3c,0xf8,
0x84,0x82,0x82,0x82,0x82,0x82,0x84,0xf8,
0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,
0xfc,0x80,0x80,0x80,0x80,0xf8,0x80,0x80,
0x80,0xfc,0x3a,0x46,0x82,0x82,0x8e,0x80,
0x80,0x42,0x3c,0x82,0x82,0x82,0x82,0xfe,
0x82,0x82,0x82,0x82,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x70,0x88,0x88,
0x08,0x08,0x08,0x08,0x08,0x08,0x82,0x84,
0x88,0x90,0xe0,0xa0,0x90,0x88,0x84,0xf8,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x88,0x80,0x88,0x80,0x94,0x80,0x94,0x80,
0xa2,0x80,0xa2,0x80,0xc1,0x80,0xc1,0x80,
0x80,0x80,0x82,0x86,0x8a,0x8a,0x92,0xa2,
0xa2,0xc2,0x82,0x3c,0x42,0x81,0x81,0x81,
0x81,0x81,0x42,0x3c,0x80,0x80,0x80,0x80,
0xf8,0x84,0x84,0x84,0xf8,0x3d,0x42,0x85,
0x89,0x81,0x81,0x81,0x42,0x3c,0x84,0x84,
0x84,0x88,0xf8,0x84,0x84,0x84,0xf8,0x78,
0x84,0x84,0x04,0x18,0x60,0x80,0x84,0x78,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
0xfe,0x78,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x10,0x10,0x28,0x28,0x44,0x44,
0x44,0x82,0x82,0x22,0x00,0x22,0x00,0x22,
0x00,0x55,0x00,0x55,0x00,0x49,0x00,0x88,
0x80,0x88,0x80,0x88,0x80,0x82,0x44,0x44,
0x28,0x10,0x28,0x44,0x44,0x82,0x10,0x10,
0x10,0x10,0x28,0x44,0x44,0x82,0x82,0xfe,
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0xfe,
0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0xc0,0x10,0x10,0x20,0x20,
0x20,0x40,0x40,0x80,0x80,0xc0,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0xc0,0x88,0x50,0x20,0xfe,0xc0,0x80,0x40,
0x74,0x88,0x88,0x78,0x08,0x88,0x70,0xb0,
0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80,
0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x68,
0x98,0x88,0x88,0x88,0x98,0x68,0x08,0x08,
0x70,0x88,0x80,0xf8,0x88,0x88,0x70,0x40,
0x40,0x40,0x40,0x40,0x40,0xe0,0x40,0x30,
0x70,0x88,0x08,0x68,0x98,0x88,0x88,0x88,
0x98,0x68,0x88,0x88,0x88,0x88,0x88,0xc8,
0xb0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x00,0x80,0x80,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x40,
0x88,0x90,0xa0,0xc0,0xc0,0xa0,0x90,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x92,0x92,0x92,0x92,0x92,0xda,
0xa4,0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,
0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x80,
0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0xc8,
0xb0,0x08,0x08,0x08,0x68,0x98,0x88,0x88,
0x88,0x98,0x68,0x80,0x80,0x80,0x80,0x80,
0xc0,0xa0,0x60,0x90,0x10,0x60,0x80,0x90,
0x60,0x60,0x40,0x40,0x40,0x40,0x40,0xe0,
0x40,0x40,0x68,0x98,0x88,0x88,0x88,0x88,
0x88,0x20,0x20,0x50,0x50,0x88,0x88,0x88,
0x22,0x00,0x22,0x00,0x55,0x00,0x49,0x00,
0x49,0x00,0x88,0x80,0x88,0x80,0x84,0x84,
0x48,0x30,0x30,0x48,0x84,0x80,0x40,0x20,
0x20,0x50,0x50,0x90,0x88,0x88,0x88,0xf0,
0x80,0x40,0x40,0x20,0x10,0xf0,0x30,0x40,
0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,
0x40,0x30,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0xc0,0x20,
0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,
0x20,0xc0,0x98,0x64,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x00,0x80,0x40,0x70,
0xc8,0xa0,0xa0,0xa0,0xa8,0x70,0x10,0xb0,
0x48,0x20,0x20,0xf0,0x40,0x40,0x48,0x30,
0x84,0x78,0x48,0x48,0x78,0x84,0x20,0x20,
0xf8,0x20,0xf8,0x20,0x50,0x88,0x88,0x80,
0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,
0x80,0x80,0x70,0x88,0x08,0x30,0x48,0x88,
0x88,0x90,0x60,0x80,0x88,0x70,0xa0,0x3e,
0x00,0x41,0x00,0x9c,0x80,0xa2,0x80,0xa0,
0x80,0xa2,0x80,0x9c,0x80,0x41,0x00,0x3e,
0x00,0xe0,0x00,0xa0,0x20,0xe0,0x28,0x50,
0xa0,0x50,0x28,0x04,0x04,0x04,0xfc,0xf0,
0x3e,0x00,0x41,0x00,0x94,0x80,0x94,0x80,
0x98,0x80,0x94,0x80,0x9c,0x80,0x41,0x00,
0x3e,0x00,0xf0,0x60,0x90,0x90,0x60,0xf8,
0x00,0x20,0x20,0xf8,0x20,0x20,0xf0,0x40,
0x20,0x90,0x60,0xc0,0x20,0x40,0x20,0xe0,
0x80,0x40,0x80,0x80,0x80,0xe8,0x98,0x88,
0x88,0x88,0x88,0x88,0x28,0x28,0x28,0x28,
0x28,0x28,0x68,0xe8,0xe8,0xe8,0x68,0x3c,
0x80,0xc0,0x20,0x20,0x40,0x40,0x40,0x40,
0xc0,0x40,0xe0,0x00,0xe0,0xa0,0xe0,0xa0,
0x50,0x28,0x50,0xa0,0x41,0x00,0x27,0x80,
0x15,0x00,0x13,0x00,0x49,0x00,0x44,0x00,
0x44,0x00,0xc2,0x00,0x41,0x00,0x47,0x80,
0x22,0x00,0x11,0x00,0x14,0x80,0x4b,0x00,
0x48,0x00,0x44,0x00,0xc2,0x00,0x41,0x00,
0x21,0x00,0x17,0x80,0x15,0x00,0x0b,0x00,
0xc9,0x00,0x24,0x00,0x44,0x00,0x22,0x00,
0xe1,0x00,0x70,0x88,0x88,0x40,0x40,0x20,
0x20,0x00,0x20,0x82,0x82,0x82,0x7c,0x44,
0x44,0x28,0x10,0x10,0x00,0x10,0x20,0x82,
0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,
0x00,0x10,0x08,0x82,0x82,0x82,0x7c,0x44,
0x44,0x28,0x10,0x10,0x00,0x28,0x10,0x82,
0x82,0x82,0x7c,0x44,0x44,0x28,0x10,0x10,
0x00,0x28,0x14,0x82,0x82,0x82,0x7c,0x44,
0x44,0x28,0x10,0x10,0x00,0x28,0x82,0x82,
0x82,0x7c,0x44,0x44,0x28,0x10,0x10,0x10,
0x28,0x10,0x8f,0x80,0x88,0x00,0x88,0x00,
0x78,0x00,0x4f,0x80,0x48,0x00,0x28,0x00,
0x28,0x00,0x1f,0x80,0x30,0x08,0x08,0x3c,
0x42,0x80,0x80,0x80,0x80,0x80,0x42,0x3c,
0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,
0xfc,0x00,0x10,0x20,0xfc,0x80,0x80,0x80,
0xfc,0x80,0x80,0x80,0xfc,0x00,0x10,0x08,
0xfc,0x80,0x80,0x80,0xfc,0x80,0x80,0x80,
0xfc,0x00,0x28,0x10,0xfc,0x80,0x80,0x80,
0xfc,0x80,0x80,0x80,0xfc,0x00,0x28,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x00,0x40,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x00,0x80,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0x00,0xa0,0x40,0x40,0x40,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x00,0xa0,0x7c,0x42,
0x41,0x41,0xf1,0x41,0x41,0x42,0x7c,0x82,
0x86,0x8a,0x8a,0x92,0xa2,0xa2,0xc2,0x82,
0x00,0x28,0x14,0x3c,0x42,0x81,0x81,0x81,
0x81,0x81,0x42,0x3c,0x00,0x08,0x10,0x3c,
0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,
0x00,0x08,0x04,0x3c,0x42,0x81,0x81,0x81,
0x81,0x81,0x42,0x3c,0x00,0x14,0x08,0x3c,
0x42,0x81,0x81,0x81,0x81,0x81,0x42,0x3c,
0x00,0x28,0x14,0x3c,0x42,0x81,0x81,0x81,
0x81,0x81,0x42,0x3c,0x00,0x24,0x88,0x50,
0x20,0x50,0x88,0x80,0x00,0x5e,0x00,0x21,
0x00,0x50,0x80,0x48,0x80,0x44,0x80,0x44,
0x80,0x42,0x80,0x21,0x00,0x1e,0x80,0x00,
0x40,0x78,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x00,0x10,0x20,0x78,0x84,0x84,
0x84,0x84,0x84,0x84,0x84,0x84,0x00,0x10,
0x08,0x78,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x00,0x28,0x10,0x78,0x84,0x84,
0x84,0x84,0x84,0x84,0x84,0x84,0x00,0x48,
0x10,0x10,0x10,0x10,0x28,0x44,0x44,0x82,
0x82,0x00,0x10,0x08,0x80,0x80,0xf8,0x84,
0x84,0x84,0xf8,0x80,0x80,0xb0,0x88,0x88,
0x88,0xb0,0x88,0x88,0x88,0x70,0x74,0x88,
0x88,0x78,0x08,0x88,0x70,0x00,0x10,0x20,
0x74,0x88,0x88,0x78,0x08,0x88,0x70,0x00,
0x20,0x10,0x74,0x88,0x88,0x78,0x08,0x88,
0x70,0x00,0x50,0x20,0x74,0x88,0x88,0x78,
0x08,0x88,0x70,0x00,0x50,0x28,0x74,0x88,
0x88,0x78,0x08,0x88,0x70,0x00,0x50,0x74,
0x88,0x88,0x78,0x08,0x88,0x70,0x30,0x48,
0x30,0x77,0x00,0x88,0x80,0x88,0x00,0x7f,
0x80,0x08,0x80,0x88,0x80,0x77,0x00,0x60,
0x10,0x20,0x70,0x88,0x80,0x80,0x80,0x88,
0x70,0x70,0x88,0x80,0xf8,0x88,0x88,0x70,
0x00,0x20,0x40,0x70,0x88,0x80,0xf8,0x88,
0x88,0x70,0x00,0x20,0x10,0x70,0x88,0x80,
0xf8,0x88,0x88,0x70,0x00,0x50,0x20,0x70,
0x88,0x80,0xf8,0x88,0x88,0x70,0x00,0x50,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
0x40,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x00,0x80,0x40,0x40,0x40,0x40,0x40,
0x40,0x40,0x40,0x00,0xa0,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x00,0xa0,0x70,
0x88,0x88,0x88,0x88,0x78,0x08,0x50,0x30,
0x68,0x88,0x88,0x88,0x88,0x88,0xc8,0xb0,
0x00,0x50,0x28,0x70,0x88,0x88,0x88,0x88,
0x88,0x70,0x00,0x20,0x40,0x70,0x88,0x88,
0x88,0x88,0x88,0x70,0x00,0x20,0x10,0x70,
0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x50,
0x20,0x70,0x88,0x88,0x88,0x88,0x88,0x70,
0x00,0x50,0x28,0x70,0x88,0x88,0x88,0x88,
0x88,0x70,0x00,0x50,0x20,0x00,0xf8,0x00,
0x20,0xb8,0x44,0x64,0x54,0x4c,0x44,0x3a,
0x68,0x98,0x88,0x88,0x88,0x88,0x88,0x00,
0x20,0x40,0x68,0x98,0x88,0x88,0x88,0x88,
0x88,0x00,0x20,0x10,0x68,0x98,0x88,0x88,
0x88,0x88,0x88,0x00,0x50,0x20,0x68,0x98,
0x88,0x88,0x88,0x88,0x88,0x00,0x50,0x80,
0x40,0x20,0x20,0x50,0x50,0x90,0x88,0x88,
0x88,0x00,0x20,0x10,0x80,0x80,0x80,0xb0,
0xc8,0x88,0x88,0x88,0xc8,0xb0,0x80,0x80,
0xc0,0x20,0x20,0x20,0x30,0x50,0x50,0x48,
0x88,0x88,0x00,0x50,
};
BMF_FontData BMF_font_helv12 = {
0, -3,
11, 12,
{
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 16, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 4, -1},
{1, 9, -1, 0, 3, 0},
{3, 3, -1, -6, 5, 9},
{6, 8, 0, 0, 7, 12},
{5, 10, -1, 1, 7, 20},
{9, 9, -1, 0, 11, 30},
{7, 9, -1, 0, 9, 48},
{2, 3, -1, -6, 3, 57},
{3, 12, -1, 3, 4, 60},
{3, 12, 0, 3, 4, 72},
{3, 3, -1, -6, 5, 84},
{5, 5, -1, -1, 7, 87},
{2, 3, -1, 2, 4, 92},
{5, 1, -1, -3, 8, 95},
{1, 1, -1, 0, 3, 96},
{4, 9, 0, 0, 4, 97},
{5, 9, -1, 0, 7, 106},
{3, 9, -1, 0, 7, 115},
{5, 9, -1, 0, 7, 124},
{5, 9, -1, 0, 7, 133},
{6, 9, 0, 0, 7, 142},
{5, 9, -1, 0, 7, 151},
{5, 9, -1, 0, 7, 160},
{5, 9, -1, 0, 7, 169},
{5, 9, -1, 0, 7, 178},
{5, 9, -1, 0, 7, 187},
{1, 6, -1, 0, 3, 196},
{2, 8, 0, 2, 3, 202},
{6, 5, 0, -1, 7, 210},
{5, 3, -1, -2, 7, 215},
{6, 5, -1, -1, 7, 218},
{5, 9, -1, 0, 7, 223},
{10, 10, -1, 1, 12, 232},
{7, 9, -1, 0, 9, 252},
{6, 9, -1, 0, 8, 261},
{7, 9, -1, 0, 9, 270},
{7, 9, -1, 0, 9, 279},
{6, 9, -1, 0, 8, 288},
{6, 9, -1, 0, 8, 297},
{7, 9, -1, 0, 9, 306},
{7, 9, -1, 0, 9, 315},
{1, 9, -1, 0, 3, 324},
{5, 9, -1, 0, 7, 333},
{7, 9, -1, 0, 8, 342},
{5, 9, -1, 0, 7, 351},
{9, 9, -1, 0, 11, 360},
{7, 9, -1, 0, 9, 378},
{8, 9, -1, 0, 10, 387},
{6, 9, -1, 0, 8, 396},
{8, 9, -1, 0, 10, 405},
{6, 9, -1, 0, 8, 414},
{6, 9, -1, 0, 8, 423},
{7, 9, 0, 0, 7, 432},
{6, 9, -1, 0, 8, 441},
{7, 9, -1, 0, 9, 450},
{9, 9, -1, 0, 11, 459},
{7, 9, -1, 0, 9, 477},
{7, 9, -1, 0, 9, 486},
{7, 9, -1, 0, 9, 495},
{2, 12, -1, 3, 3, 504},
{4, 9, 0, 0, 4, 516},
{2, 12, 0, 3, 3, 525},
{5, 3, 0, -5, 6, 537},
{7, 1, 0, 2, 7, 540},
{2, 3, 0, -6, 3, 541},
{6, 7, -1, 0, 7, 544},
{5, 9, -1, 0, 7, 551},
{5, 7, -1, 0, 7, 560},
{5, 9, -1, 0, 7, 567},
{5, 7, -1, 0, 7, 576},
{4, 9, 0, 0, 3, 583},
{5, 10, -1, 3, 7, 592},
{5, 9, -1, 0, 7, 602},
{1, 9, -1, 0, 3, 611},
{2, 12, 0, 3, 3, 620},
{5, 9, -1, 0, 6, 632},
{1, 9, -1, 0, 3, 641},
{7, 7, -1, 0, 9, 650},
{5, 7, -1, 0, 7, 657},
{5, 7, -1, 0, 7, 664},
{5, 10, -1, 3, 7, 671},
{5, 10, -1, 3, 7, 681},
{3, 7, -1, 0, 4, 691},
{4, 7, -1, 0, 6, 698},
{3, 9, 0, 0, 3, 705},
{5, 7, -1, 0, 7, 714},
{5, 7, -1, 0, 7, 721},
{9, 7, 0, 0, 9, 728},
{6, 7, 0, 0, 6, 742},
{5, 10, -1, 3, 7, 749},
{4, 7, -1, 0, 6, 759},
{4, 12, 0, 3, 4, 766},
{1, 12, -1, 3, 3, 778},
{4, 12, 0, 3, 4, 790},
{6, 2, 0, -3, 7, 802},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 4, -1},
{1, 10, -1, 3, 3, 804},
{5, 9, -1, 1, 7, 814},
{5, 9, -1, 0, 7, 823},
{6, 6, 0, -1, 7, 832},
{5, 9, -1, 0, 7, 838},
{1, 11, -1, 2, 3, 847},
{5, 12, 0, 3, 6, 858},
{3, 1, 0, -8, 3, 870},
{9, 9, -1, 0, 11, 871},
{3, 5, -1, -4, 5, 889},
{5, 5, -1, -1, 7, 894},
{6, 4, -1, -2, 8, 899},
{4, 1, 0, -3, 5, 903},
{9, 9, -1, 0, 11, 904},
{4, 1, 0, -8, 4, 922},
{4, 4, 0, -4, 5, 923},
{5, 7, -1, 0, 7, 927},
{4, 5, 0, -3, 4, 934},
{3, 5, 0, -3, 4, 939},
{2, 2, 0, -8, 2, 944},
{5, 10, -1, 3, 7, 946},
{6, 12, 0, 3, 7, 956},
{1, 1, -1, -3, 3, 968},
{3, 4, 0, 3, 3, 969},
{2, 5, -1, -3, 4, 973},
{3, 5, -1, -4, 5, 978},
{5, 5, -1, -1, 7, 983},
{9, 9, 0, 0, 10, 988},
{9, 9, 0, 0, 10, 1006},
{9, 9, 0, 0, 10, 1024},
{5, 9, -1, 3, 7, 1042},
{7, 12, -1, 0, 9, 1051},
{7, 12, -1, 0, 9, 1063},
{7, 12, -1, 0, 9, 1075},
{7, 12, -1, 0, 9, 1087},
{7, 11, -1, 0, 9, 1099},
{7, 12, -1, 0, 9, 1110},
{9, 9, -1, 0, 11, 1122},
{7, 12, -1, 3, 9, 1140},
{6, 12, -1, 0, 8, 1152},
{6, 12, -1, 0, 8, 1164},
{6, 12, -1, 0, 8, 1176},
{6, 11, -1, 0, 8, 1188},
{2, 12, 0, 0, 3, 1199},
{2, 12, -1, 0, 3, 1211},
{3, 12, 0, 0, 3, 1223},
{3, 11, 0, 0, 3, 1235},
{8, 9, 0, 0, 9, 1246},
{7, 12, -1, 0, 9, 1255},
{8, 12, -1, 0, 10, 1267},
{8, 12, -1, 0, 10, 1279},
{8, 12, -1, 0, 10, 1291},
{8, 12, -1, 0, 10, 1303},
{8, 11, -1, 0, 10, 1315},
{5, 5, -1, -1, 7, 1326},
{10, 11, 0, 1, 10, 1331},
{6, 12, -1, 0, 8, 1353},
{6, 12, -1, 0, 8, 1365},
{6, 12, -1, 0, 8, 1377},
{6, 11, -1, 0, 8, 1389},
{7, 12, -1, 0, 9, 1400},
{6, 9, -1, 0, 8, 1412},
{5, 9, -1, 0, 7, 1421},
{6, 10, -1, 0, 7, 1430},
{6, 10, -1, 0, 7, 1440},
{6, 10, -1, 0, 7, 1450},
{6, 10, -1, 0, 7, 1460},
{6, 9, -1, 0, 7, 1470},
{6, 10, -1, 0, 7, 1479},
{9, 7, -1, 0, 11, 1489},
{5, 10, -1, 3, 7, 1503},
{5, 10, -1, 0, 7, 1513},
{5, 10, -1, 0, 7, 1523},
{5, 10, -1, 0, 7, 1533},
{5, 9, -1, 0, 7, 1543},
{2, 10, 0, 0, 3, 1552},
{2, 10, -1, 0, 3, 1562},
{3, 10, 0, 0, 3, 1572},
{3, 9, 0, 0, 3, 1582},
{5, 10, -1, 0, 7, 1591},
{5, 10, -1, 0, 7, 1601},
{5, 10, -1, 0, 7, 1611},
{5, 10, -1, 0, 7, 1621},
{5, 10, -1, 0, 7, 1631},
{5, 10, -1, 0, 7, 1641},
{5, 9, -1, 0, 7, 1651},
{5, 5, -1, -1, 7, 1660},
{7, 7, 0, 0, 7, 1665},
{5, 10, -1, 0, 7, 1672},
{5, 10, -1, 0, 7, 1682},
{5, 10, -1, 0, 7, 1692},
{5, 9, -1, 0, 7, 1702},
{5, 13, -1, 3, 7, 1711},
{5, 12, -1, 3, 7, 1724},
{5, 12, -1, 3, 7, 1736},
},
bitmap_data
};
#endif

View File

@@ -1,492 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_FontData.h"
#include "BMF_Settings.h"
#if BMF_INCLUDE_HELVB10
static unsigned char bitmap_data[]= {
0x00,0xc0,0x00,0x80,0x80,0xc0,0xc0,0xc0,
0xc0,0xa0,0xa0,0xa0,0x50,0x50,0xfc,0x28,
0x7e,0x28,0x28,0x20,0x70,0xa8,0x28,0x38,
0x70,0xe0,0xa8,0x70,0x20,0x8c,0x56,0x2c,
0x10,0x10,0x68,0xb4,0x62,0x76,0xdc,0xcc,
0xde,0x70,0xd8,0xd8,0x70,0x80,0x40,0xc0,
0xc0,0x20,0x60,0x40,0xc0,0xc0,0xc0,0xc0,
0x40,0x60,0x20,0x80,0xc0,0x40,0x60,0x60,
0x60,0x60,0x40,0xc0,0x80,0xa0,0x40,0xa0,
0x30,0x30,0xfc,0x30,0x30,0x80,0x40,0xc0,
0xc0,0xf8,0xc0,0xc0,0x80,0x80,0x40,0x40,
0x20,0x20,0x10,0x10,0x70,0xd8,0xd8,0xd8,
0xd8,0xd8,0xd8,0x70,0x60,0x60,0x60,0x60,
0x60,0x60,0xe0,0x60,0xf8,0xc0,0x60,0x30,
0x18,0x18,0xd8,0x70,0x70,0xd8,0x18,0x18,
0x30,0x18,0xd8,0x70,0x18,0x18,0xfc,0x98,
0x58,0x38,0x18,0x08,0x70,0xd8,0x98,0x18,
0xf0,0xc0,0xc0,0xf8,0x70,0xd8,0xd8,0xd8,
0xf0,0xc0,0xd8,0x70,0x60,0x60,0x60,0x30,
0x30,0x18,0x18,0xf8,0x70,0xd8,0xd8,0xd8,
0x70,0xd8,0xd8,0x70,0x70,0xd8,0x18,0x78,
0xd8,0xd8,0xd8,0x70,0xc0,0xc0,0x00,0x00,
0xc0,0xc0,0x80,0x40,0xc0,0xc0,0x00,0x00,
0xc0,0xc0,0x30,0x60,0xc0,0x60,0x30,0xf8,
0x00,0xf8,0xc0,0x60,0x30,0x60,0xc0,0x60,
0x00,0x60,0x60,0x30,0x18,0xd8,0x70,0x3e,
0x00,0x40,0x00,0x9b,0x00,0xa4,0x80,0xa2,
0x40,0x92,0x40,0x4d,0x40,0x60,0x80,0x1f,
0x00,0xc6,0xc6,0xfe,0x6c,0x6c,0x6c,0x38,
0x38,0xf8,0xcc,0xcc,0xcc,0xf8,0xcc,0xcc,
0xf8,0x3c,0x66,0xc2,0xc0,0xc0,0xc2,0x66,
0x3c,0xf0,0xd8,0xcc,0xcc,0xcc,0xcc,0xd8,
0xf0,0xf8,0xc0,0xc0,0xc0,0xf8,0xc0,0xc0,
0xf8,0xc0,0xc0,0xc0,0xc0,0xf0,0xc0,0xc0,
0xf8,0x3a,0x66,0xc6,0xce,0xc0,0xc2,0x66,
0x3c,0xcc,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,
0xcc,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0x70,0xd8,0x18,0x18,0x18,0x18,0x18,
0x18,0xc6,0xcc,0xd8,0xf0,0xe0,0xf0,0xd8,
0xcc,0xf8,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc9,0x80,0xc9,0x80,0xdd,0x80,0xd5,
0x80,0xf7,0x80,0xe3,0x80,0xe3,0x80,0xc1,
0x80,0xc6,0xce,0xce,0xd6,0xd6,0xe6,0xe6,
0xc6,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0x6c,
0x38,0xc0,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,
0xf8,0x02,0x3c,0x6c,0xd6,0xc6,0xc6,0xc6,
0x6c,0x38,0xcc,0xcc,0xcc,0xf8,0xcc,0xcc,
0xcc,0xf8,0x78,0xcc,0x8c,0x1c,0x78,0xe0,
0xcc,0x78,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0xfc,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,
0xcc,0xcc,0x10,0x38,0x38,0x6c,0x6c,0x6c,
0xc6,0xc6,0x33,0x00,0x33,0x00,0x7f,0x80,
0x6d,0x80,0x6d,0x80,0xcc,0xc0,0xcc,0xc0,
0xcc,0xc0,0xc6,0xc6,0x6c,0x38,0x38,0x6c,
0xc6,0xc6,0x18,0x18,0x18,0x3c,0x66,0x66,
0xc3,0xc3,0xfc,0xc0,0x60,0x70,0x30,0x18,
0x0c,0xfc,0xe0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xe0,0x10,0x10,0x20,0x20,
0x40,0x40,0x80,0x80,0xe0,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0xe0,0x90,0x90,
0xf0,0x60,0xfc,0xc0,0xc0,0x80,0x40,0x6c,
0xd8,0xd8,0x78,0x98,0x70,0xf0,0xd8,0xd8,
0xd8,0xd8,0xf0,0xc0,0xc0,0x70,0xd0,0xc0,
0xc0,0xd0,0x70,0x78,0xd8,0xd8,0xd8,0xd8,
0x78,0x18,0x18,0x70,0xd8,0xc0,0xf8,0xd8,
0x70,0x60,0x60,0x60,0x60,0x60,0xf0,0x60,
0x38,0x70,0x18,0x78,0xd8,0xd8,0xd8,0xd8,
0x68,0xd8,0xd8,0xd8,0xd8,0xd8,0xf0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,
0xc0,0xc0,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x00,0x60,0xcc,0xd8,0xf0,0xe0,0xf0,
0xd8,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xdb,0xdb,0xdb,0xdb,0xdb,
0xb6,0xd8,0xd8,0xd8,0xd8,0xd8,0xb0,0x70,
0xd8,0xd8,0xd8,0xd8,0x70,0xc0,0xc0,0xf0,
0xd8,0xd8,0xd8,0xd8,0xb0,0x18,0x18,0x78,
0xd8,0xd8,0xd8,0xd8,0x68,0xc0,0xc0,0xc0,
0xc0,0xe0,0xb0,0x70,0xd8,0x18,0x70,0xd8,
0x70,0x30,0x60,0x60,0x60,0x60,0xf0,0x60,
0x60,0x68,0xd8,0xd8,0xd8,0xd8,0xd8,0x20,
0x70,0x50,0xd8,0xd8,0xd8,0x6c,0x6c,0x6c,
0xd6,0xd6,0xd6,0xcc,0xcc,0x78,0x30,0x78,
0xcc,0x60,0x30,0x30,0x78,0xd8,0xd8,0xd8,
0xd8,0xf8,0xc0,0x60,0x30,0x18,0xf8,0x30,
0x60,0x60,0x60,0x60,0xc0,0x60,0x60,0x60,
0x30,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0xc0,0x60,0x60,0x60,0x60,
0x30,0x60,0x60,0x60,0xc0,0xb0,0x68,0x00,
0xc0,0xc0,0xc0,0xc0,0x40,0x40,0x00,0xc0,
0x40,0x70,0xd8,0xa0,0xa0,0xd8,0x70,0x10,
0xd8,0x68,0x60,0x60,0xf0,0x60,0x68,0x38,
0x84,0x78,0x48,0x48,0x78,0x84,0x30,0xfc,
0x30,0xfc,0x48,0xcc,0x84,0x84,0x80,0x80,
0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,
0x70,0x98,0x38,0x70,0xc8,0x98,0x70,0xe0,
0xc8,0x70,0xa0,0x3c,0x42,0x9d,0xa1,0xa5,
0x99,0x42,0x3c,0xe0,0x00,0xa0,0x20,0xe0,
0x6c,0xd8,0x6c,0x08,0x08,0xf8,0xf0,0x3c,
0x42,0xa5,0xb9,0xa5,0xbd,0x42,0x3c,0xe0,
0xc0,0xa0,0x60,0xfc,0x00,0x30,0x30,0xfc,
0x30,0x30,0xe0,0x40,0xa0,0x60,0xc0,0x20,
0x40,0xe0,0x80,0x40,0xc0,0xc0,0xe8,0xd8,
0xd8,0xd8,0xd8,0xd8,0x28,0x28,0x28,0x28,
0x28,0x68,0xe8,0xe8,0xe8,0x7c,0xc0,0xc0,
0x40,0x40,0x40,0xc0,0x40,0xe0,0x00,0xe0,
0xa0,0xe0,0xd8,0x6c,0xd8,0x42,0x2f,0x26,
0x12,0x48,0x48,0xc4,0x44,0x4e,0x24,0x2a,
0x16,0x48,0x48,0xc4,0x44,0x42,0x2f,0x26,
0x12,0xc8,0x28,0x44,0xe4,0x70,0xd8,0xc0,
0x60,0x30,0x30,0x00,0x30,0xc6,0xc6,0xfe,
0x6c,0x6c,0x6c,0x38,0x38,0x00,0x10,0x20,
0xc6,0xc6,0xfe,0x6c,0x6c,0x6c,0x38,0x38,
0x00,0x10,0x08,0xc6,0xc6,0xfe,0x6c,0x6c,
0x6c,0x38,0x38,0x00,0x28,0x10,0xc6,0xc6,
0xfe,0x6c,0x6c,0x6c,0x38,0x38,0x00,0x28,
0x14,0xc6,0xc6,0xfe,0x6c,0x6c,0x6c,0x38,
0x38,0x00,0x28,0xc6,0xc6,0xfe,0x6c,0x6c,
0x6c,0x38,0x38,0x10,0x28,0x10,0xcf,0x80,
0xcc,0x00,0xfc,0x00,0x6c,0x00,0x6f,0x80,
0x6c,0x00,0x3c,0x00,0x3f,0x80,0x30,0x10,
0x3c,0x66,0xc2,0xc0,0xc0,0xc2,0x66,0x3c,
0xf8,0xc0,0xc0,0xc0,0xf8,0xc0,0xc0,0xf8,
0x00,0x20,0x40,0xf8,0xc0,0xc0,0xc0,0xf8,
0xc0,0xc0,0xf8,0x00,0x20,0x10,0xf8,0xc0,
0xc0,0xc0,0xf8,0xc0,0xc0,0xf8,0x00,0x50,
0x20,0xf8,0xc0,0xc0,0xc0,0xf8,0xc0,0xc0,
0xf8,0x00,0x50,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0x00,0x40,0x80,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0x80,
0x40,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x00,0xa0,0x40,0x60,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x00,0x90,0x78,0x6c,
0x66,0x66,0xf6,0x66,0x6c,0x78,0xc6,0xce,
0xce,0xd6,0xd6,0xe6,0xe6,0xc6,0x00,0x28,
0x14,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0x6c,
0x38,0x00,0x08,0x10,0x38,0x6c,0xc6,0xc6,
0xc6,0xc6,0x6c,0x38,0x00,0x10,0x08,0x38,
0x6c,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x00,
0x28,0x10,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,
0x6c,0x38,0x00,0x28,0x14,0x38,0x6c,0xc6,
0xc6,0xc6,0xc6,0x6c,0x38,0x00,0x28,0xcc,
0x78,0x30,0x78,0xcc,0xb8,0x6c,0xe6,0xd6,
0xd6,0xce,0x6c,0x3a,0x78,0xcc,0xcc,0xcc,
0xcc,0xcc,0xcc,0xcc,0x00,0x10,0x20,0x78,
0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,
0x10,0x08,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,
0xcc,0xcc,0x00,0x50,0x20,0x78,0xcc,0xcc,
0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x48,0x18,
0x18,0x18,0x3c,0x66,0x66,0xc3,0xc3,0x00,
0x08,0x04,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,
0xf8,0xc0,0xd0,0xc8,0xc8,0xc8,0xd0,0xc8,
0xc8,0x70,0x6c,0xd8,0xd8,0x78,0x98,0x70,
0x00,0x10,0x20,0x6c,0xd8,0xd8,0x78,0x98,
0x70,0x00,0x20,0x10,0x6c,0xd8,0xd8,0x78,
0x98,0x70,0x00,0x50,0x20,0x6c,0xd8,0xd8,
0x78,0x98,0x70,0x00,0x50,0x28,0x6c,0xd8,
0xd8,0x78,0x98,0x70,0x00,0x50,0x6c,0xd8,
0xd8,0x78,0x98,0x70,0x20,0x50,0x20,0x6e,
0xdb,0xd8,0x7f,0x9b,0x7e,0x60,0x20,0x70,
0xd0,0xc0,0xc0,0xd0,0x70,0x70,0xd8,0xc0,
0xf8,0xd8,0x70,0x00,0x20,0x40,0x70,0xd8,
0xc0,0xf8,0xd8,0x70,0x00,0x20,0x10,0x70,
0xd8,0xc0,0xf8,0xd8,0x70,0x00,0x50,0x20,
0x70,0xd8,0xc0,0xf8,0xd8,0x70,0x00,0x50,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0x40,
0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,
0x80,0x40,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0x00,0xa0,0x40,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0x00,0xa0,0x70,0xd8,0xd8,0xd8,0xd8,
0x70,0xa0,0x60,0x50,0xd8,0xd8,0xd8,0xd8,
0xd8,0xb0,0x00,0xa0,0x50,0x70,0xd8,0xd8,
0xd8,0xd8,0x70,0x00,0x20,0x40,0x70,0xd8,
0xd8,0xd8,0xd8,0x70,0x00,0x20,0x10,0x70,
0xd8,0xd8,0xd8,0xd8,0x70,0x00,0x50,0x20,
0x70,0xd8,0xd8,0xd8,0xd8,0x70,0x00,0xa0,
0x50,0x70,0xd8,0xd8,0xd8,0xd8,0x70,0x00,
0x50,0x30,0x00,0xfc,0x00,0x30,0xb8,0x6c,
0x6c,0x7c,0x6c,0x3a,0x68,0xd8,0xd8,0xd8,
0xd8,0xd8,0x00,0x20,0x40,0x68,0xd8,0xd8,
0xd8,0xd8,0xd8,0x00,0x20,0x10,0x68,0xd8,
0xd8,0xd8,0xd8,0xd8,0x00,0x50,0x20,0x68,
0xd8,0xd8,0xd8,0xd8,0xd8,0x00,0x50,0x60,
0x30,0x30,0x78,0xd8,0xd8,0xd8,0xd8,0x00,
0x20,0x10,0xc0,0xc0,0xf0,0xd8,0xc8,0xc8,
0xd8,0xf0,0xc0,0xc0,0x60,0x30,0x30,0x78,
0xd8,0xd8,0xd8,0xd8,0x00,0x50,
};
BMF_FontData BMF_font_helvb10 = {
-1, -2,
10, 11,
{
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 12, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{1, 1, 0, 0, 3, 0},
{2, 8, -1, 0, 4, 1},
{3, 3, -1, -5, 5, 9},
{7, 7, 1, 0, 6, 12},
{5, 10, 0, 1, 6, 19},
{7, 8, 0, 0, 8, 29},
{7, 8, 0, 0, 8, 37},
{2, 4, 0, -4, 3, 45},
{3, 10, 0, 2, 4, 49},
{3, 10, 0, 2, 4, 59},
{3, 3, 0, -5, 4, 69},
{6, 5, 0, -1, 6, 72},
{2, 4, 0, 2, 3, 77},
{5, 1, -1, -3, 7, 81},
{2, 2, 0, 0, 3, 82},
{4, 8, 0, 0, 4, 84},
{5, 8, 0, 0, 6, 92},
{3, 8, -1, 0, 6, 100},
{5, 8, 0, 0, 6, 108},
{5, 8, 0, 0, 6, 116},
{6, 8, 0, 0, 6, 124},
{5, 8, 0, 0, 6, 132},
{5, 8, 0, 0, 6, 140},
{5, 8, 0, 0, 6, 148},
{5, 8, 0, 0, 6, 156},
{5, 8, 0, 0, 6, 164},
{2, 6, 0, 0, 3, 172},
{2, 8, 0, 2, 3, 178},
{4, 5, 0, -1, 5, 186},
{5, 3, 0, -2, 6, 191},
{4, 5, 0, -1, 5, 194},
{5, 8, 0, 0, 6, 199},
{10, 9, 0, 1, 11, 207},
{7, 8, 0, 0, 8, 225},
{6, 8, 0, 0, 7, 233},
{7, 8, 0, 0, 8, 241},
{6, 8, 0, 0, 7, 249},
{5, 8, 0, 0, 6, 257},
{5, 8, 0, 0, 6, 265},
{7, 8, 0, 0, 8, 273},
{6, 8, 0, 0, 7, 281},
{2, 8, 0, 0, 3, 289},
{5, 8, 0, 0, 6, 297},
{7, 8, 0, 0, 7, 305},
{5, 8, 0, 0, 6, 313},
{9, 8, 0, 0, 10, 321},
{7, 8, 0, 0, 8, 337},
{7, 8, 0, 0, 8, 345},
{6, 8, 0, 0, 7, 353},
{7, 9, 0, 1, 8, 361},
{6, 8, 0, 0, 7, 370},
{6, 8, 0, 0, 7, 378},
{6, 8, 0, 0, 7, 386},
{6, 8, 0, 0, 7, 394},
{7, 8, 0, 0, 8, 402},
{10, 8, 0, 0, 11, 410},
{7, 8, 0, 0, 8, 426},
{8, 8, 0, 0, 9, 434},
{6, 8, 0, 0, 7, 442},
{3, 10, 0, 2, 4, 450},
{4, 8, 0, 0, 4, 460},
{3, 10, 0, 2, 4, 468},
{4, 4, 0, -4, 5, 478},
{6, 1, 0, 2, 6, 482},
{2, 4, 0, -4, 3, 483},
{6, 6, 0, 0, 6, 487},
{5, 8, 0, 0, 6, 493},
{4, 6, 0, 0, 5, 501},
{5, 8, 0, 0, 6, 507},
{5, 6, 0, 0, 6, 515},
{5, 8, 1, 0, 4, 521},
{5, 8, 0, 2, 6, 529},
{5, 8, 0, 0, 6, 537},
{2, 8, 0, 0, 3, 545},
{3, 10, 1, 2, 3, 553},
{6, 8, 0, 0, 6, 563},
{2, 8, 0, 0, 3, 571},
{8, 6, 0, 0, 9, 579},
{5, 6, 0, 0, 6, 585},
{5, 6, 0, 0, 6, 591},
{5, 8, 0, 2, 6, 597},
{5, 8, 0, 2, 6, 605},
{4, 6, 0, 0, 4, 613},
{5, 6, 0, 0, 6, 619},
{4, 8, 1, 0, 4, 625},
{5, 6, 0, 0, 6, 633},
{5, 6, 0, 0, 6, 639},
{7, 6, 0, 0, 8, 645},
{6, 6, 0, 0, 7, 651},
{5, 8, 0, 2, 6, 657},
{5, 6, 0, 0, 6, 665},
{4, 10, 0, 2, 5, 671},
{1, 10, -1, 2, 3, 681},
{4, 10, 0, 2, 5, 691},
{5, 2, 0, -3, 6, 701},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{1, 1, 0, 0, 3, 703},
{2, 8, -1, 2, 4, 704},
{5, 8, 0, 1, 6, 712},
{5, 8, 0, 0, 6, 720},
{6, 6, 0, -1, 6, 728},
{6, 8, 0, 0, 7, 734},
{1, 10, -1, 2, 3, 742},
{5, 10, 0, 2, 6, 752},
{3, 1, 0, -7, 3, 762},
{8, 8, -1, 0, 10, 763},
{3, 5, -1, -3, 5, 771},
{6, 3, 0, -1, 7, 776},
{5, 3, -1, -2, 7, 779},
{4, 1, 0, -3, 5, 782},
{8, 8, -1, 0, 10, 783},
{3, 1, 0, -7, 3, 791},
{3, 3, 0, -5, 4, 792},
{6, 7, 0, 0, 6, 795},
{3, 4, 0, -4, 3, 802},
{3, 4, 0, -4, 3, 806},
{2, 2, 0, -7, 3, 810},
{5, 8, 0, 2, 6, 812},
{6, 10, 0, 2, 6, 820},
{2, 1, 0, -3, 3, 830},
{2, 2, 0, 2, 3, 831},
{2, 4, 0, -4, 3, 833},
{3, 5, -1, -3, 5, 837},
{6, 3, 0, -1, 7, 842},
{8, 8, 0, 0, 9, 845},
{7, 8, 0, 0, 9, 853},
{8, 8, 0, 0, 9, 861},
{5, 8, 0, 2, 6, 869},
{7, 11, 0, 0, 8, 877},
{7, 11, 0, 0, 8, 888},
{7, 11, 0, 0, 8, 899},
{7, 11, 0, 0, 8, 910},
{7, 10, 0, 0, 8, 921},
{7, 11, 0, 0, 8, 931},
{9, 8, 0, 0, 10, 942},
{7, 10, 0, 2, 8, 958},
{5, 11, 0, 0, 6, 968},
{5, 11, 0, 0, 6, 979},
{5, 11, 0, 0, 6, 990},
{5, 10, 0, 0, 6, 1001},
{2, 11, 0, 0, 3, 1011},
{2, 11, 0, 0, 3, 1022},
{3, 11, 1, 0, 3, 1033},
{4, 10, 1, 0, 3, 1044},
{7, 8, 1, 0, 7, 1054},
{7, 11, 0, 0, 8, 1062},
{7, 11, 0, 0, 8, 1073},
{7, 11, 0, 0, 8, 1084},
{7, 11, 0, 0, 8, 1095},
{7, 11, 0, 0, 8, 1106},
{7, 10, 0, 0, 8, 1117},
{6, 5, 0, -1, 6, 1127},
{7, 8, 0, 0, 8, 1132},
{6, 11, 0, 0, 7, 1140},
{6, 11, 0, 0, 7, 1151},
{6, 11, 0, 0, 7, 1162},
{6, 10, 0, 0, 7, 1173},
{8, 11, 0, 0, 9, 1183},
{6, 8, 0, 0, 7, 1194},
{5, 8, 0, 0, 6, 1202},
{6, 9, 0, 0, 6, 1210},
{6, 9, 0, 0, 6, 1219},
{6, 9, 0, 0, 6, 1228},
{6, 9, 0, 0, 6, 1237},
{6, 8, 0, 0, 6, 1246},
{6, 9, 0, 0, 6, 1254},
{8, 6, 0, 0, 9, 1263},
{4, 8, 0, 2, 5, 1269},
{5, 9, 0, 0, 6, 1277},
{5, 9, 0, 0, 6, 1286},
{5, 9, 0, 0, 6, 1295},
{5, 8, 0, 0, 6, 1304},
{2, 9, 0, 0, 3, 1312},
{2, 9, 0, 0, 3, 1321},
{3, 9, 0, 0, 3, 1330},
{3, 8, 0, 0, 3, 1339},
{5, 9, 0, 0, 6, 1347},
{5, 9, 0, 0, 6, 1356},
{5, 9, 0, 0, 6, 1365},
{5, 9, 0, 0, 6, 1374},
{5, 9, 0, 0, 6, 1383},
{5, 9, 0, 0, 6, 1392},
{5, 8, 0, 0, 6, 1401},
{6, 5, 0, -1, 6, 1409},
{7, 6, 1, 0, 6, 1414},
{5, 9, 0, 0, 6, 1420},
{5, 9, 0, 0, 6, 1429},
{5, 9, 0, 0, 6, 1438},
{5, 8, 0, 0, 6, 1447},
{5, 11, 0, 2, 6, 1455},
{5, 10, 0, 2, 6, 1466},
{5, 10, 0, 2, 6, 1476},
},
bitmap_data
};
#endif

View File

@@ -1,565 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_FontData.h"
#include "BMF_Settings.h"
#if BMF_INCLUDE_HELVB12
static unsigned char bitmap_data[]= {
0x00,0xc0,0xc0,0x00,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xa0,0xa0,0xa0,0x6c,
0x00,0x6c,0x00,0x6c,0x00,0xff,0x00,0x36,
0x00,0x36,0x00,0x36,0x00,0x7f,0x80,0x1b,
0x00,0x1b,0x00,0x1b,0x00,0x30,0x30,0x78,
0xec,0xac,0x3c,0x38,0x70,0xf0,0xd4,0xdc,
0x78,0x30,0x63,0x80,0x37,0xc0,0x36,0xc0,
0x1f,0xc0,0x1b,0x80,0x0c,0x00,0x76,0x00,
0xfe,0x00,0xdb,0x00,0xfb,0x00,0x71,0x80,
0x73,0x80,0xff,0x00,0xce,0x00,0xcf,0x00,
0xdd,0x80,0x79,0x80,0x38,0x00,0x6c,0x00,
0x6c,0x00,0x7c,0x00,0x38,0x00,0x80,0x40,
0xc0,0xc0,0x30,0x60,0x60,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0x60,0x60,0x30,
0xc0,0x60,0x60,0x30,0x30,0x30,0x30,0x30,
0x30,0x30,0x30,0x60,0x60,0xc0,0xd8,0x70,
0x70,0xf8,0x20,0x30,0x30,0xfc,0xfc,0x30,
0x30,0x80,0x40,0xc0,0xc0,0xfc,0xfc,0xc0,
0xc0,0xc0,0xc0,0xc0,0x60,0x60,0x60,0x20,
0x30,0x30,0x30,0x18,0x18,0x18,0x78,0xfc,
0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xfc,
0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0xf0,0xf0,0x30,0xfc,0xfc,0xc0,0x60,
0x70,0x38,0x18,0xcc,0xcc,0xfc,0x78,0x78,
0xfc,0xcc,0xcc,0x0c,0x38,0x38,0x0c,0xcc,
0xfc,0x78,0x0c,0x0c,0xfe,0xfe,0xcc,0x6c,
0x6c,0x3c,0x3c,0x1c,0x1c,0x78,0xfc,0xcc,
0xcc,0x0c,0xfc,0xf8,0xc0,0xc0,0xfc,0xfc,
0x78,0xfc,0xcc,0xcc,0xcc,0xfc,0xf8,0xc0,
0xcc,0xfc,0x78,0x60,0x60,0x60,0x30,0x30,
0x30,0x18,0x18,0x0c,0xfc,0xfc,0x78,0xfc,
0xcc,0xcc,0xcc,0x78,0x78,0xcc,0xcc,0xfc,
0x78,0x78,0xfc,0xcc,0x0c,0x7c,0xfc,0xcc,
0xcc,0xcc,0xfc,0x78,0xc0,0xc0,0x00,0x00,
0x00,0x00,0xc0,0xc0,0x80,0x40,0xc0,0xc0,
0x00,0x00,0x00,0x00,0xc0,0xc0,0x0c,0x38,
0xe0,0xe0,0x38,0x0c,0xfc,0xfc,0x00,0xfc,
0xfc,0xc0,0x70,0x1c,0x1c,0x70,0xc0,0x30,
0x30,0x00,0x30,0x30,0x38,0x1c,0xcc,0xcc,
0xfc,0x78,0x1f,0x00,0x71,0x80,0x40,0x00,
0xdd,0x80,0xb6,0xc0,0xb2,0x40,0xb3,0x60,
0xdb,0x20,0x4d,0xa0,0x60,0x40,0x39,0xc0,
0x0f,0x00,0xc3,0xc3,0xff,0x7e,0x66,0x66,
0x3c,0x3c,0x3c,0x18,0x18,0xf8,0xfc,0xcc,
0xcc,0xcc,0xf8,0xf8,0xcc,0xcc,0xfc,0xf8,
0x78,0xfc,0xcc,0xc0,0xc0,0xc0,0xc0,0xc0,
0xcc,0xfc,0x78,0xf8,0xfc,0xce,0xc6,0xc6,
0xc6,0xc6,0xc6,0xce,0xfc,0xf8,0xfc,0xfc,
0xc0,0xc0,0xc0,0xf8,0xf8,0xc0,0xc0,0xfc,
0xfc,0xc0,0xc0,0xc0,0xc0,0xc0,0xf8,0xf8,
0xc0,0xc0,0xfc,0xfc,0x76,0xfe,0xc6,0xc6,
0xde,0xde,0xc0,0xc0,0xc6,0xfe,0x7c,0xc6,
0xc6,0xc6,0xc6,0xc6,0xfe,0xfe,0xc6,0xc6,
0xc6,0xc6,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0x70,0xf8,0xd8,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0xc6,0xce,0xcc,0xd8,0xf8,0xf0,0xf0,0xd8,
0xcc,0xcc,0xc6,0xfc,0xfc,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc9,0x80,
0xc9,0x80,0xdd,0x80,0xdd,0x80,0xf7,0x80,
0xf7,0x80,0xe3,0x80,0xe3,0x80,0xe3,0x80,
0xc1,0x80,0xc1,0x80,0xc6,0xc6,0xce,0xce,
0xde,0xd6,0xf6,0xe6,0xe6,0xc6,0xc6,0x7c,
0xfe,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
0xfe,0x7c,0xc0,0xc0,0xc0,0xc0,0xfc,0xfe,
0xc6,0xc6,0xc6,0xfe,0xfc,0x06,0x7e,0xfc,
0xce,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xfe,
0x7c,0xc6,0xc6,0xc6,0xce,0xfc,0xfc,0xc6,
0xc6,0xc6,0xfe,0xfc,0x78,0xfc,0xcc,0x0c,
0x1c,0x78,0xe0,0xc0,0xcc,0xfc,0x78,0x30,
0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0xfc,0xfc,0x7c,0xfe,0xc6,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0xc6,0xc6,0x18,0x18,0x18,
0x3c,0x3c,0x3c,0x66,0x66,0x66,0xc3,0xc3,
0x33,0x00,0x33,0x00,0x33,0x00,0x3b,0x00,
0x7f,0x80,0x6d,0x80,0x6d,0x80,0x6d,0x80,
0xcc,0xc0,0xcc,0xc0,0xcc,0xc0,0xc3,0xc3,
0x66,0x7e,0x3c,0x18,0x3c,0x7e,0x66,0xc3,
0xc3,0x18,0x18,0x18,0x18,0x18,0x3c,0x3c,
0x66,0x66,0xc3,0xc3,0xfe,0xfe,0xc0,0x60,
0x60,0x30,0x18,0x18,0x0c,0xfe,0xfe,0xe0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xe0,0x30,0x30,0x30,
0x70,0x60,0x60,0x60,0xe0,0xc0,0xc0,0xc0,
0xe0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0xe0,0x88,0xd8,
0x70,0x70,0x20,0xfe,0xc0,0xc0,0x80,0x40,
0x76,0xfc,0xcc,0xfc,0x7c,0x8c,0xfc,0x78,
0xd8,0xfc,0xcc,0xcc,0xcc,0xcc,0xfc,0xd8,
0xc0,0xc0,0xc0,0x78,0xfc,0xcc,0xc0,0xc0,
0xcc,0xfc,0x78,0x6c,0xfc,0xcc,0xcc,0xcc,
0xcc,0xfc,0x6c,0x0c,0x0c,0x0c,0x78,0xfc,
0xc0,0xfc,0xfc,0xcc,0xfc,0x78,0x60,0x60,
0x60,0x60,0x60,0x60,0xf0,0xf0,0x60,0x70,
0x30,0x78,0xfc,0x0c,0x6c,0xfc,0xcc,0xcc,
0xcc,0xcc,0xfc,0x6c,0xcc,0xcc,0xcc,0xcc,
0xcc,0xec,0xfc,0xd8,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,
0xc0,0xc0,0xc0,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0x00,0x60,0x60,
0xcc,0xd8,0xd8,0xf0,0xe0,0xf0,0xd8,0xcc,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xcc,0xc0,
0xcc,0xc0,0xcc,0xc0,0xcc,0xc0,0xcc,0xc0,
0xee,0xc0,0xff,0xc0,0xbb,0x80,0xcc,0xcc,
0xcc,0xcc,0xcc,0xec,0xfc,0xd8,0x78,0xfc,
0xcc,0xcc,0xcc,0xcc,0xfc,0x78,0xc0,0xc0,
0xc0,0xd8,0xfc,0xcc,0xcc,0xcc,0xcc,0xfc,
0xd8,0x0c,0x0c,0x0c,0x6c,0xfc,0xcc,0xcc,
0xcc,0xcc,0xfc,0x6c,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xe0,0xb0,0x78,0xfc,0xcc,0x1c,
0x78,0xe0,0xfc,0x78,0x30,0x70,0x60,0x60,
0x60,0x60,0xf0,0xf0,0x60,0x60,0x6c,0xfc,
0xdc,0xcc,0xcc,0xcc,0xcc,0xcc,0x30,0x30,
0x78,0x78,0x78,0xcc,0xcc,0xcc,0x24,0x24,
0x76,0x76,0x7e,0xdb,0xdb,0xdb,0xcc,0xcc,
0x78,0x38,0x70,0x78,0xcc,0xcc,0xe0,0xf0,
0x30,0x30,0x38,0x78,0x78,0x48,0xcc,0xcc,
0xcc,0xfc,0xfc,0x60,0x30,0x30,0x18,0xfc,
0xfc,0x30,0x60,0x60,0x60,0x60,0x60,0x40,
0x80,0x40,0x60,0x60,0x60,0x60,0x30,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0xc0,0x60,0x60,0x60,
0x60,0x60,0x20,0x10,0x20,0x60,0x60,0x60,
0x60,0xc0,0x98,0xfc,0x64,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0xc0,0xc0,
0xc0,0x78,0xfc,0xec,0xe0,0xd0,0xd4,0xfc,
0x78,0x0c,0xdc,0xfe,0x60,0x30,0x30,0xfc,
0x30,0x60,0x64,0x7c,0x38,0xcc,0x78,0xcc,
0xcc,0x78,0xcc,0x18,0x18,0x18,0x7e,0x18,
0x7e,0x3c,0x66,0x66,0xc3,0xc3,0x80,0x80,
0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x80,
0x80,0x80,0x80,0x78,0xfc,0xcc,0x1c,0x38,
0x6c,0xcc,0xcc,0xd8,0x70,0xe0,0xcc,0xfc,
0x78,0xd8,0xd8,0x1f,0x00,0x71,0xc0,0x6e,
0xc0,0xdb,0x60,0xdb,0x60,0xd8,0x60,0xdb,
0x60,0xdb,0x60,0x6e,0xc0,0x71,0xc0,0x1f,
0x00,0xf0,0x00,0xd0,0xb0,0x70,0xb0,0x60,
0x36,0x6c,0xd8,0x6c,0x36,0x0c,0x0c,0xfc,
0xfc,0xe0,0xe0,0x1f,0x00,0x71,0xc0,0x7b,
0xc0,0xdb,0x60,0xdf,0x60,0xde,0x60,0xdb,
0x60,0xdb,0x60,0x7e,0xc0,0x71,0xc0,0x1f,
0x00,0xf0,0xf0,0x60,0x90,0x90,0x60,0xfc,
0xfc,0x00,0x30,0x30,0xfc,0xfc,0x30,0x30,
0xf0,0x40,0x20,0x10,0x90,0x60,0x60,0x90,
0x10,0x20,0x90,0x60,0xc0,0x70,0x30,0xc0,
0xc0,0xc0,0xec,0xfc,0xdc,0xcc,0xcc,0xcc,
0xcc,0xcc,0x36,0x36,0x36,0x36,0x36,0x36,
0x36,0x36,0x76,0xf6,0xf6,0xf6,0xfe,0x7e,
0xc0,0xc0,0xc0,0x60,0x40,0x40,0x40,0x40,
0x40,0xc0,0x40,0xf8,0x00,0x70,0xd8,0xd8,
0xd8,0x70,0xd8,0x6c,0x36,0x6c,0xd8,0x20,
0x80,0x27,0xc0,0x12,0x80,0x12,0x80,0x09,
0x80,0x4c,0x80,0x44,0x00,0x42,0x00,0x42,
0x00,0xc1,0x00,0x41,0x00,0x23,0xc0,0x21,
0x00,0x10,0x80,0x10,0x40,0x0a,0x40,0x4d,
0x80,0x44,0x00,0x42,0x00,0x42,0x00,0xc1,
0x00,0x41,0x00,0x20,0x80,0x27,0xc0,0x12,
0x80,0x12,0x80,0x09,0x80,0x6c,0x80,0x94,
0x00,0x12,0x00,0x22,0x00,0x91,0x00,0x61,
0x00,0x78,0xfc,0xcc,0xcc,0xe0,0x70,0x30,
0x30,0x00,0x30,0x30,0xc3,0xc3,0x7e,0x7e,
0x24,0x3c,0x18,0x18,0x00,0x0c,0x38,0x30,
0xc3,0xc3,0x7e,0x7e,0x24,0x3c,0x18,0x18,
0x00,0x30,0x1c,0x0c,0xc3,0xc3,0x7e,0x7e,
0x24,0x3c,0x18,0x18,0x00,0x66,0x3c,0x18,
0xc3,0xc3,0x7e,0x7e,0x24,0x3c,0x18,0x18,
0x00,0x2c,0x3e,0x1a,0xc3,0xc3,0x7e,0x7e,
0x24,0x3c,0x18,0x18,0x00,0x6c,0x6c,0xc3,
0xc3,0x7e,0x7e,0x24,0x3c,0x18,0x18,0x00,
0x18,0x34,0x18,0xc7,0xe0,0xc7,0xe0,0xfe,
0x00,0x7e,0x00,0x66,0x00,0x67,0xc0,0x37,
0xc0,0x36,0x00,0x3e,0x00,0x1f,0xe0,0x1f,
0xe0,0x60,0x30,0x20,0x78,0xfc,0xcc,0xc0,
0xc0,0xc0,0xc0,0xc0,0xcc,0xfc,0x78,0xfc,
0xfc,0xc0,0xf8,0xf8,0xc0,0xfc,0xfc,0x00,
0x18,0x70,0x60,0xfc,0xfc,0xc0,0xf8,0xf8,
0xc0,0xfc,0xfc,0x00,0x60,0x38,0x18,0xfc,
0xfc,0xc0,0xf8,0xf8,0xc0,0xfc,0xfc,0x00,
0xcc,0x78,0x30,0xfc,0xfc,0xc0,0xf8,0xf8,
0xc0,0xfc,0xfc,0x00,0xd8,0xd8,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x30,
0xe0,0xc0,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x00,0xc0,0x70,0x30,0x30,0x30,
0x30,0x30,0x30,0x30,0x30,0x30,0x00,0xcc,
0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0x30,0x00,0xd8,0xd8,0x7c,0x7e,0x67,
0x63,0x63,0xfb,0xfb,0x63,0x67,0x7e,0x7c,
0xc6,0xce,0xce,0xde,0xf6,0xe6,0xe6,0xc6,
0x00,0x58,0x7c,0x34,0x7c,0xfe,0xc6,0xc6,
0xc6,0xc6,0xfe,0x7c,0x00,0x18,0x70,0x60,
0x7c,0xfe,0xc6,0xc6,0xc6,0xc6,0xfe,0x7c,
0x00,0x30,0x1c,0x0c,0x7c,0xfe,0xc6,0xc6,
0xc6,0xc6,0xfe,0x7c,0x00,0xcc,0x78,0x30,
0x7c,0xfe,0xc6,0xc6,0xc6,0xc6,0xfe,0x7c,
0x00,0x58,0x7c,0x34,0x7c,0xfe,0xc6,0xc6,
0xc6,0xc6,0xfe,0x7c,0x00,0x6c,0x6c,0xcc,
0x78,0x30,0x30,0x78,0xcc,0xde,0x00,0x7f,
0x00,0x63,0x00,0x73,0x00,0x7b,0x00,0x6b,
0x00,0x6f,0x00,0x67,0x00,0x63,0x00,0x7f,
0x00,0x3d,0x80,0x7c,0xfe,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0x00,0x18,0x70,0x60,0x7c,
0xfe,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,
0x30,0x1c,0x0c,0x7c,0xfe,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0x00,0xcc,0x78,0x30,0x7c,
0xfe,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,
0x6c,0x6c,0x18,0x18,0x18,0x18,0x3c,0x7e,
0xe7,0xc3,0x00,0x30,0x1c,0x0c,0xc0,0xc0,
0xfc,0xfe,0xc6,0xc6,0xc6,0xfe,0xfc,0xc0,
0xc0,0xd8,0xdc,0xcc,0xcc,0xcc,0xd8,0xd8,
0xcc,0xcc,0xfc,0x78,0x76,0xfc,0xcc,0xfc,
0x7c,0x8c,0xfc,0x78,0x00,0x18,0x70,0x60,
0x76,0xfc,0xcc,0xfc,0x7c,0x8c,0xfc,0x78,
0x00,0x60,0x38,0x18,0x76,0xfc,0xcc,0xfc,
0x7c,0x8c,0xfc,0x78,0x00,0xcc,0x78,0x30,
0x76,0xfc,0xcc,0xfc,0x7c,0x8c,0xfc,0x78,
0x00,0x58,0x7c,0x34,0x76,0xfc,0xcc,0xfc,
0x7c,0x8c,0xfc,0x78,0x00,0xd8,0xd8,0x76,
0xfc,0xcc,0xfc,0x7c,0x8c,0xfc,0x78,0x00,
0x30,0x68,0x30,0x77,0x80,0xff,0xc0,0xcc,
0x00,0xff,0xc0,0x7f,0xc0,0x8c,0xc0,0xff,
0xc0,0x7b,0x80,0x60,0x30,0x20,0x78,0xfc,
0xcc,0xc0,0xc0,0xcc,0xfc,0x78,0x78,0xfc,
0xc0,0xfc,0xfc,0xcc,0xfc,0x78,0x00,0x18,
0x70,0x60,0x78,0xfc,0xc0,0xfc,0xfc,0xcc,
0xfc,0x78,0x00,0x60,0x38,0x18,0x78,0xfc,
0xc0,0xfc,0xfc,0xcc,0xfc,0x78,0x00,0xcc,
0x78,0x30,0x78,0xfc,0xc0,0xfc,0xfc,0xcc,
0xfc,0x78,0x00,0xd8,0xd8,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0x00,0x30,0xe0,
0xc0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x00,0xc0,0x70,0x30,0x30,0x30,0x30,
0x30,0x30,0x30,0x30,0x30,0x00,0xcc,0x78,
0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0x00,0xd8,0xd8,0x78,0xfc,0xcc,0xcc,
0xcc,0xcc,0xfc,0x78,0xb0,0x60,0xd0,0xcc,
0xcc,0xcc,0xcc,0xcc,0xec,0xfc,0xd8,0x00,
0xb0,0xf8,0x68,0x78,0xfc,0xcc,0xcc,0xcc,
0xcc,0xfc,0x78,0x00,0x18,0x70,0x60,0x78,
0xfc,0xcc,0xcc,0xcc,0xcc,0xfc,0x78,0x00,
0x60,0x38,0x18,0x78,0xfc,0xcc,0xcc,0xcc,
0xcc,0xfc,0x78,0x00,0xcc,0x78,0x30,0x78,
0xfc,0xcc,0xcc,0xcc,0xcc,0xfc,0x78,0x00,
0xb0,0xf8,0x68,0x78,0xfc,0xcc,0xcc,0xcc,
0xcc,0xfc,0x78,0x00,0xd8,0xd8,0x30,0x30,
0x00,0xfc,0xfc,0x00,0x30,0x30,0xc0,0x78,
0xfc,0xcc,0xec,0xdc,0xcc,0xfc,0x78,0x0c,
0x6c,0xfc,0xdc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x00,0x18,0x70,0x60,0x6c,0xfc,0xdc,0xcc,
0xcc,0xcc,0xcc,0xcc,0x00,0x60,0x38,0x18,
0x6c,0xfc,0xdc,0xcc,0xcc,0xcc,0xcc,0xcc,
0x00,0xcc,0x78,0x30,0x6c,0xfc,0xdc,0xcc,
0xcc,0xcc,0xcc,0xcc,0x00,0xd8,0xd8,0xe0,
0xf0,0x30,0x30,0x38,0x78,0x78,0x48,0xcc,
0xcc,0xcc,0x00,0x60,0x38,0x18,0xc0,0xc0,
0xc0,0xd8,0xfc,0xcc,0xcc,0xcc,0xcc,0xfc,
0xd8,0xc0,0xc0,0xc0,0xe0,0xf0,0x30,0x30,
0x38,0x78,0x78,0x48,0xcc,0xcc,0xcc,0x00,
0xd8,0xd8,
};
BMF_FontData BMF_font_helvb12 = {
-1, -3,
11, 12,
{
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 12, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{1, 1, 0, 0, 3, 0},
{2, 11, -1, 0, 4, 1},
{3, 3, 0, -8, 4, 12},
{9, 11, 1, 0, 7, 15},
{6, 13, 0, 2, 7, 37},
{10, 11, 0, 0, 11, 50},
{9, 11, 0, 0, 9, 72},
{2, 4, 0, -7, 3, 94},
{4, 14, 0, 3, 4, 98},
{4, 14, 1, 3, 4, 112},
{5, 5, 0, -6, 6, 126},
{6, 6, 0, -1, 7, 131},
{2, 4, 0, 2, 3, 137},
{6, 2, -1, -3, 9, 141},
{2, 2, 0, 0, 3, 143},
{5, 13, 1, 2, 4, 145},
{6, 11, 0, 0, 7, 158},
{4, 11, 0, 0, 6, 169},
{6, 11, 0, 0, 7, 180},
{6, 11, 0, 0, 7, 191},
{7, 11, 0, 0, 7, 202},
{6, 11, 0, 0, 7, 213},
{6, 11, 0, 0, 7, 224},
{6, 11, 0, 0, 7, 235},
{6, 11, 0, 0, 7, 246},
{6, 11, 0, 0, 7, 257},
{2, 8, -1, 0, 4, 268},
{2, 10, -1, 2, 4, 276},
{6, 6, 0, -1, 7, 286},
{6, 5, 0, -2, 7, 292},
{6, 6, 0, -1, 7, 297},
{6, 11, 0, 0, 7, 303},
{11, 12, 0, 1, 12, 314},
{8, 11, 0, 0, 8, 338},
{6, 11, -1, 0, 8, 349},
{6, 11, -1, 0, 8, 360},
{7, 11, -1, 0, 9, 371},
{6, 11, -1, 0, 8, 382},
{6, 11, -1, 0, 7, 393},
{7, 11, -1, 0, 9, 404},
{7, 11, -1, 0, 9, 415},
{2, 11, -2, 0, 6, 426},
{5, 11, 0, 0, 6, 437},
{7, 11, -1, 0, 8, 448},
{6, 11, -1, 0, 7, 459},
{9, 11, -1, 0, 11, 470},
{7, 11, -1, 0, 9, 492},
{7, 11, -1, 0, 9, 503},
{7, 11, -1, 0, 9, 514},
{7, 12, -1, 1, 9, 525},
{7, 11, -1, 0, 9, 537},
{6, 11, -1, 0, 8, 548},
{6, 11, 0, 0, 6, 559},
{7, 11, -1, 0, 9, 570},
{8, 11, 0, 0, 8, 581},
{10, 11, 0, 0, 10, 592},
{8, 11, 0, 0, 8, 614},
{8, 11, 0, 0, 8, 625},
{7, 11, 0, 0, 7, 636},
{3, 14, 0, 3, 4, 647},
{4, 11, 0, 0, 5, 661},
{3, 14, 0, 3, 4, 672},
{5, 5, 0, -6, 7, 686},
{7, 1, 0, 2, 7, 691},
{2, 4, 0, -7, 3, 692},
{7, 8, 0, 0, 7, 696},
{6, 11, 0, 0, 7, 704},
{6, 8, 0, 0, 7, 715},
{6, 11, 0, 0, 7, 723},
{6, 8, 0, 0, 7, 734},
{4, 11, 0, 0, 5, 742},
{6, 11, 0, 3, 7, 753},
{6, 11, 0, 0, 7, 764},
{2, 11, -1, 0, 5, 775},
{3, 14, 0, 3, 5, 786},
{6, 11, 0, 0, 6, 800},
{2, 11, -1, 0, 5, 811},
{10, 8, 0, 0, 11, 822},
{6, 8, 0, 0, 7, 838},
{6, 8, 0, 0, 7, 846},
{6, 11, 0, 3, 7, 854},
{6, 11, 0, 3, 7, 865},
{4, 8, 0, 0, 4, 876},
{6, 8, 0, 0, 7, 884},
{4, 10, 0, 0, 5, 892},
{6, 8, 0, 0, 7, 902},
{6, 8, 0, 0, 7, 910},
{8, 8, 0, 0, 9, 918},
{6, 8, 0, 0, 7, 926},
{6, 11, 0, 3, 7, 934},
{6, 8, 0, 0, 7, 945},
{4, 14, 0, 3, 4, 953},
{1, 13, -1, 2, 3, 967},
{4, 14, 0, 3, 4, 980},
{6, 3, 0, -3, 7, 994},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{2, 11, 0, 3, 3, 997},
{6, 10, 0, 1, 7, 1008},
{7, 11, 0, 0, 7, 1018},
{6, 6, 0, -3, 7, 1029},
{8, 11, 1, 0, 7, 1035},
{1, 13, -1, 2, 3, 1046},
{6, 14, 0, 3, 7, 1059},
{5, 2, 0, -9, 5, 1073},
{11, 11, 0, 0, 12, 1075},
{4, 7, 0, -4, 5, 1097},
{7, 5, 0, -2, 8, 1104},
{6, 4, -1, -3, 9, 1109},
{3, 2, 0, -3, 4, 1113},
{11, 11, 0, 0, 12, 1115},
{4, 2, 0, -9, 4, 1137},
{4, 4, -1, -7, 6, 1139},
{6, 9, 0, -1, 7, 1143},
{4, 6, 0, -5, 4, 1152},
{4, 6, 0, -5, 4, 1158},
{4, 3, -1, -9, 4, 1164},
{6, 11, 0, 3, 7, 1167},
{7, 14, -1, 3, 10, 1178},
{2, 2, 0, -5, 3, 1192},
{3, 3, -1, 3, 5, 1194},
{2, 6, 0, -5, 4, 1197},
{5, 7, 0, -4, 6, 1203},
{7, 5, 0, -2, 8, 1210},
{10, 11, 0, 0, 11, 1215},
{10, 11, 0, 0, 11, 1237},
{10, 11, 0, 0, 11, 1259},
{6, 11, 0, 3, 7, 1281},
{8, 12, 0, 0, 8, 1292},
{8, 12, 0, 0, 8, 1304},
{8, 12, 0, 0, 8, 1316},
{8, 12, 0, 0, 8, 1328},
{8, 11, 0, 0, 8, 1340},
{8, 12, 0, 0, 8, 1351},
{11, 11, 0, 0, 12, 1363},
{6, 14, -1, 3, 8, 1385},
{6, 12, -1, 0, 8, 1399},
{6, 12, -1, 0, 8, 1411},
{6, 12, -1, 0, 8, 1423},
{6, 11, -1, 0, 8, 1435},
{4, 12, -1, 0, 6, 1446},
{4, 12, -1, 0, 6, 1458},
{6, 12, 0, 0, 6, 1470},
{5, 11, 0, 0, 6, 1482},
{8, 11, 0, 0, 9, 1493},
{7, 12, -1, 0, 9, 1504},
{7, 12, -1, 0, 9, 1516},
{7, 12, -1, 0, 9, 1528},
{7, 12, -1, 0, 9, 1540},
{7, 12, -1, 0, 9, 1552},
{7, 11, -1, 0, 9, 1564},
{6, 6, 0, -1, 7, 1575},
{9, 11, 0, 0, 9, 1581},
{7, 12, -1, 0, 9, 1603},
{7, 12, -1, 0, 9, 1615},
{7, 12, -1, 0, 9, 1627},
{7, 11, -1, 0, 9, 1639},
{8, 12, 0, 0, 8, 1650},
{7, 11, -1, 0, 9, 1662},
{6, 11, 0, 0, 7, 1673},
{7, 12, 0, 0, 7, 1684},
{7, 12, 0, 0, 7, 1696},
{7, 12, 0, 0, 7, 1708},
{7, 12, 0, 0, 7, 1720},
{7, 11, 0, 0, 7, 1732},
{7, 12, 0, 0, 7, 1743},
{10, 8, 0, 0, 11, 1755},
{6, 11, 0, 3, 7, 1771},
{6, 12, 0, 0, 7, 1782},
{6, 12, 0, 0, 7, 1794},
{6, 12, 0, 0, 7, 1806},
{6, 11, 0, 0, 7, 1818},
{4, 12, 0, 0, 5, 1829},
{4, 12, 0, 0, 5, 1841},
{6, 12, 1, 0, 5, 1853},
{5, 11, 1, 0, 5, 1865},
{6, 11, 0, 0, 7, 1876},
{6, 12, 0, 0, 7, 1887},
{6, 12, 0, 0, 7, 1899},
{6, 12, 0, 0, 7, 1911},
{6, 12, 0, 0, 7, 1923},
{6, 12, 0, 0, 7, 1935},
{6, 11, 0, 0, 7, 1947},
{6, 8, 0, 0, 7, 1958},
{6, 10, 0, 1, 7, 1966},
{6, 12, 0, 0, 7, 1976},
{6, 12, 0, 0, 7, 1988},
{6, 12, 0, 0, 7, 2000},
{6, 11, 0, 0, 7, 2012},
{6, 15, 0, 3, 7, 2023},
{6, 14, 0, 3, 7, 2038},
{6, 14, 0, 3, 7, 2052},
},
bitmap_data
};
#endif

View File

@@ -1,623 +0,0 @@
/**
* $Id$
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "BMF_FontData.h"
#include "BMF_Settings.h"
#if BMF_INCLUDE_HELVB14
static unsigned char bitmap_data[]= {
0x00,0xc0,0xc0,0x00,0x00,0x80,0x80,0x80,
0xc0,0xc0,0xc0,0xc0,0xc0,0x90,0xd8,0xd8,
0xd8,0x48,0x48,0x48,0xfe,0xfe,0x24,0x24,
0x7f,0x7f,0x12,0x12,0x12,0x10,0x10,0x38,
0x7c,0xd6,0xd6,0x16,0x3c,0x78,0xd0,0xd6,
0xd6,0x7c,0x38,0x10,0x30,0xc0,0x11,0xe0,
0x19,0x20,0x09,0x20,0x0d,0xe0,0x64,0xc0,
0xf6,0x00,0x92,0x00,0x93,0x00,0xf1,0x00,
0x61,0x80,0x71,0x80,0xff,0x00,0xce,0x00,
0xc6,0x00,0xcf,0x00,0x79,0x00,0x30,0x00,
0x38,0x00,0x6c,0x00,0x6c,0x00,0x7c,0x00,
0x38,0x00,0x80,0x40,0xc0,0xc0,0x30,0x20,
0x60,0x40,0x40,0xc0,0xc0,0xc0,0xc0,0xc0,
0x40,0x40,0x60,0x20,0x30,0xc0,0x40,0x60,
0x20,0x20,0x30,0x30,0x30,0x30,0x30,0x20,
0x20,0x60,0x40,0xc0,0xd8,0x50,0x20,0xf8,
0x20,0x20,0x30,0x30,0x30,0xfc,0xfc,0x30,
0x30,0x30,0x80,0x40,0x40,0xc0,0xc0,0xfe,
0xfe,0xc0,0xc0,0x80,0x80,0xc0,0x40,0x40,
0x60,0x20,0x20,0x30,0x10,0x10,0x30,0x78,
0x48,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x48,
0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0x30,0x30,0xf0,0x30,0x10,0xfc,0xfc,
0x60,0x60,0x30,0x18,0x18,0x0c,0xcc,0xcc,
0x78,0x30,0x30,0x78,0xcc,0xcc,0x0c,0x38,
0x38,0x0c,0xcc,0xcc,0x78,0x30,0x18,0x18,
0xfc,0xfc,0x98,0x58,0x58,0x38,0x38,0x38,
0x18,0x18,0x70,0xf8,0xcc,0x0c,0x0c,0xcc,
0xfc,0xd8,0x60,0x60,0x7c,0x7c,0x30,0x78,
0xcc,0xcc,0xcc,0xcc,0xfc,0xd8,0xc0,0x4c,
0x7c,0x38,0x60,0x60,0x60,0x20,0x30,0x30,
0x10,0x18,0x08,0x0c,0xfc,0xfc,0x70,0xf8,
0xcc,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,
0x7c,0x38,0x70,0xf8,0xc8,0x0c,0x6c,0xfc,
0xcc,0xcc,0xcc,0xcc,0x78,0x30,0xc0,0xc0,
0x00,0x00,0x00,0x00,0xc0,0xc0,0x80,0x40,
0x40,0xc0,0xc0,0x00,0x00,0x00,0x00,0xc0,
0xc0,0x02,0x0e,0x3c,0xf0,0xf0,0x3c,0x0e,
0x02,0xfc,0xfc,0x00,0x00,0xfc,0xfc,0x80,
0xe0,0x78,0x1e,0x1e,0x78,0xe0,0x80,0x30,
0x30,0x00,0x30,0x30,0x18,0x18,0x0c,0xcc,
0xcc,0x7c,0x38,0x0f,0x80,0x38,0x60,0x60,
0x00,0x4d,0xc0,0xd3,0x20,0x93,0x30,0x91,
0x10,0x91,0x90,0xc9,0x90,0x46,0x90,0x60,
0x30,0x30,0x20,0x1c,0xc0,0x07,0x80,0xe1,
0xc0,0x61,0x80,0x7f,0x80,0x7f,0x80,0x33,
0x00,0x33,0x00,0x33,0x00,0x1e,0x00,0x1e,
0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0xfc,
0xfe,0xc7,0xc3,0xc7,0xfe,0xfc,0xc6,0xc3,
0xc7,0xfe,0xfc,0x3c,0x7e,0x63,0xc3,0xc0,
0xc0,0xc0,0xc0,0xc3,0x63,0x7e,0x3c,0xfc,
0xfe,0xc6,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
0xc6,0xfe,0xfc,0xfe,0xfe,0xc0,0xc0,0xc0,
0xfe,0xfe,0xc0,0xc0,0xc0,0xfe,0xfe,0xc0,
0xc0,0xc0,0xc0,0xc0,0xfc,0xfc,0xc0,0xc0,
0xc0,0xfe,0xfe,0x3e,0x80,0x7f,0x80,0x63,
0x80,0xc1,0x80,0xc7,0x80,0xc7,0x80,0xc0,
0x00,0xc0,0x00,0xc1,0x80,0x63,0x80,0x7f,
0x00,0x3e,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,
0xff,0xff,0xc3,0xc3,0xc3,0xc3,0xc3,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0x78,0xfc,0xcc,0xcc,0xcc,
0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0xc3,
0x80,0xc7,0x00,0xc6,0x00,0xcc,0x00,0xdc,
0x00,0xf8,0x00,0xf0,0x00,0xd8,0x00,0xcc,
0x00,0xce,0x00,0xc7,0x00,0xc3,0x00,0xfe,
0xfe,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xcc,0xc0,0xcc,0xc0,0xcc,
0xc0,0xde,0xc0,0xde,0xc0,0xd2,0xc0,0xd2,
0xc0,0xf3,0xc0,0xf3,0xc0,0xe1,0xc0,0xe1,
0xc0,0xe1,0xc0,0xc3,0xc7,0xc7,0xcf,0xcf,
0xdb,0xdb,0xf3,0xf3,0xe3,0xe3,0xc3,0x3e,
0x00,0x7f,0x00,0x63,0x00,0xc1,0x80,0xc1,
0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,
0x80,0x63,0x00,0x7f,0x00,0x3e,0x00,0xc0,
0xc0,0xc0,0xc0,0xf8,0xfc,0xce,0xc6,0xc6,
0xce,0xfc,0xf8,0x01,0x80,0x3d,0x80,0x7f,
0x00,0x67,0x00,0xcd,0x80,0xcd,0x80,0xc1,
0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,
0x00,0x7f,0x00,0x3e,0x00,0xc3,0xc3,0xc3,
0xc3,0xc7,0xfe,0xfe,0xc7,0xc3,0xc7,0xfe,
0xfc,0x3c,0x7e,0xe7,0xc3,0x07,0x1e,0x78,
0xe0,0xc3,0xe7,0x7e,0x3c,0x18,0x18,0x18,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff,
0xff,0x3c,0x7e,0xe7,0xc3,0xc3,0xc3,0xc3,
0xc3,0xc3,0xc3,0xc3,0xc3,0x18,0x18,0x18,
0x3c,0x3c,0x24,0x66,0x66,0x66,0xc3,0xc3,
0xc3,0x30,0xc0,0x30,0xc0,0x30,0xc0,0x39,
0xc0,0x79,0xe0,0x69,0x60,0x6f,0x60,0x6f,
0x60,0xc6,0x30,0xc6,0x30,0xc6,0x30,0xc6,
0x30,0xe3,0x80,0x63,0x00,0x63,0x00,0x36,
0x00,0x36,0x00,0x1c,0x00,0x1c,0x00,0x36,
0x00,0x36,0x00,0x63,0x00,0x63,0x00,0xe3,
0x80,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,
0x00,0x0c,0x00,0x1e,0x00,0x1e,0x00,0x33,
0x00,0x33,0x00,0x61,0x80,0x61,0x80,0xe1,
0xc0,0xff,0xff,0x60,0x70,0x30,0x18,0x18,
0x0c,0x0e,0x06,0xff,0xff,0xe0,0xe0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xe0,0xe0,0x10,0x10,0x30,0x20,
0x20,0x60,0x40,0x40,0xc0,0x80,0x80,0xe0,
0xe0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0xe0,0xe0,0xcc,0xcc,
0x48,0x78,0x78,0x30,0x30,0xfe,0xc0,0xc0,
0x80,0x40,0x6c,0xfc,0xcc,0xcc,0x7c,0x1c,
0xcc,0xfc,0x78,0xd8,0xfc,0xee,0xc6,0xc6,
0xc6,0xee,0xfc,0xd8,0xc0,0xc0,0xc0,0x38,
0x7c,0xec,0xc0,0xc0,0xc0,0xec,0x7c,0x38,
0x36,0x7e,0xee,0xc6,0xc6,0xc6,0xee,0x7e,
0x36,0x06,0x06,0x06,0x38,0x7c,0xcc,0xc0,
0xfc,0xcc,0xcc,0x78,0x30,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0xf0,0xf0,0x60,0x70,
0x30,0x78,0xfc,0xc6,0x36,0x7e,0xee,0xc6,
0xc6,0xc6,0xee,0x7e,0x36,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0xe6,0xfe,0xdc,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0x00,0xc0,0xc0,0xc0,0xe0,0x60,
0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x00,0x60,0x60,0xce,0xcc,0xd8,0xd8,
0xf0,0xf0,0xd8,0xd8,0xcc,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xcc,0xc0,0xcc,0xc0,
0xcc,0xc0,0xcc,0xc0,0xcc,0xc0,0xcc,0xc0,
0xcc,0xc0,0xff,0xc0,0xdb,0x80,0xc6,0xc6,
0xc6,0xc6,0xc6,0xc6,0xe6,0xfe,0xdc,0x38,
0x7c,0xee,0xc6,0xc6,0xc6,0xee,0x7c,0x38,
0xc0,0xc0,0xc0,0xd8,0xfc,0xee,0xc6,0xc6,
0xc6,0xee,0xfc,0xd8,0x06,0x06,0x06,0x36,
0x7e,0xee,0xc6,0xc6,0xc6,0xee,0x7e,0x36,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xe0,0xf8,
0xd0,0x78,0xfc,0xcc,0x1c,0x78,0xe0,0xcc,
0xfc,0x78,0x30,0x70,0x60,0x60,0x60,0x60,
0x60,0xf0,0xf0,0x60,0x60,0x76,0xfe,0xce,
0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x30,0x30,
0x30,0x78,0x78,0x48,0xcc,0xcc,0xcc,0x33,
0x00,0x33,0x00,0x33,0x00,0x73,0x80,0x7f,
0x80,0x4c,0x80,0x4c,0x80,0xcc,0xc0,0xcc,
0xc0,0xc6,0xee,0x6c,0x38,0x38,0x38,0x6c,
0xee,0xc6,0x60,0x70,0x10,0x18,0x38,0x38,
0x2c,0x6c,0x6c,0xc6,0xc6,0xc6,0xfc,0xfc,
0x60,0x60,0x30,0x18,0x18,0xfc,0xfc,0x30,
0x70,0x60,0x60,0x60,0x60,0x60,0xc0,0x60,
0x60,0x60,0x60,0x60,0x70,0x30,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0x80,0x80,0x80,0x80,0xc0,0xe0,0x60,
0x60,0x60,0x60,0x60,0x30,0x60,0x60,0x60,
0x60,0x60,0xe0,0xc0,0x98,0xfc,0x64,0xc0,
0xc0,0xc0,0xc0,0xc0,0x80,0x80,0x80,0x00,
0x00,0xc0,0xc0,0x20,0x20,0x38,0x7c,0xec,
0xe0,0xd0,0xd0,0xdc,0x7c,0x38,0x08,0x08,
0xcc,0xfe,0x70,0x30,0x30,0xf8,0x60,0xc0,
0xcc,0xcc,0x7c,0x38,0xcc,0x78,0xcc,0xcc,
0xcc,0xcc,0x78,0xcc,0x18,0x18,0x18,0x7e,
0x18,0x7e,0x18,0x3c,0x24,0x66,0x42,0xc3,
0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x38,
0x7c,0x6c,0x0c,0x18,0x7c,0xe6,0xc6,0xce,
0x7c,0x30,0x60,0x6c,0x7c,0x38,0xd8,0xd8,
0x1e,0x00,0x33,0x00,0x40,0x80,0xde,0xc0,
0xb3,0x40,0xa0,0x40,0xa0,0x40,0xb3,0x40,
0xde,0xc0,0x40,0x80,0x33,0x00,0x1e,0x00,
0xf0,0x00,0xd0,0xb0,0x70,0xb0,0x60,0x24,
0x6c,0xd8,0xd8,0x6c,0x24,0x06,0x06,0x06,
0xfe,0xfe,0xe0,0xe0,0x1e,0x00,0x33,0x00,
0x40,0x80,0xd2,0xc0,0x96,0x40,0x9c,0x40,
0x92,0x40,0x92,0x40,0xdc,0xc0,0x40,0x80,
0x33,0x00,0x1e,0x00,0xf0,0x60,0x90,0x90,
0x90,0x60,0xfc,0xfc,0x00,0x30,0x30,0x30,
0xfc,0xfc,0x30,0x30,0x30,0xf0,0x80,0x40,
0x20,0x90,0xb0,0x60,0x60,0xb0,0x10,0x60,
0x30,0x90,0x60,0xc0,0x60,0xc0,0xc0,0xc0,
0xf6,0xfe,0xce,0xc6,0xc6,0xc6,0xc6,0xc6,
0xc6,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
0x14,0x74,0xf4,0xf4,0xf4,0xf4,0x74,0x3e,
0xc0,0xc0,0xc0,0x60,0x40,0x20,0x20,0x20,
0x20,0x20,0xe0,0x20,0xf0,0x00,0x60,0x90,
0x90,0x90,0x60,0x90,0xd8,0x6c,0x6c,0xd8,
0x90,0x20,0x40,0x10,0x40,0x13,0xe0,0x0a,
0x40,0x09,0x40,0x24,0xc0,0x24,0x40,0x22,
0x00,0x22,0x00,0x21,0x00,0xe1,0x00,0x20,
0x80,0x21,0xe0,0x11,0x00,0x10,0x80,0x08,
0x40,0x09,0x20,0x25,0x60,0x24,0xc0,0x22,
0x00,0x22,0x00,0x21,0x00,0xe1,0x00,0x20,
0x80,0x20,0x40,0x10,0x40,0x13,0xe0,0x0a,
0x40,0x09,0x40,0x64,0xc0,0xb4,0x40,0x12,
0x00,0x62,0x00,0x31,0x00,0x91,0x00,0x60,
0x80,0x70,0xf8,0xcc,0xcc,0xc0,0x60,0x60,
0x30,0x30,0x00,0x30,0x30,0xe1,0xc0,0x61,
0x80,0x7f,0x80,0x3f,0x00,0x33,0x00,0x33,
0x00,0x12,0x00,0x1e,0x00,0x1e,0x00,0x0c,
0x00,0x0c,0x00,0x00,0x00,0x0c,0x00,0x18,
0x00,0xe1,0xc0,0x61,0x80,0x7f,0x80,0x3f,
0x00,0x33,0x00,0x33,0x00,0x12,0x00,0x1e,
0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x00,
0x00,0x0c,0x00,0x06,0x00,0xe1,0xc0,0x61,
0x80,0x7f,0x80,0x3f,0x00,0x33,0x00,0x33,
0x00,0x12,0x00,0x1e,0x00,0x1e,0x00,0x0c,
0x00,0x0c,0x00,0x00,0x00,0x36,0x00,0x1c,
0x00,0xe1,0xc0,0x61,0x80,0x7f,0x80,0x3f,
0x00,0x33,0x00,0x33,0x00,0x12,0x00,0x1e,
0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x00,
0x00,0x16,0x00,0x0d,0x00,0xe1,0xc0,0x61,
0x80,0x7f,0x80,0x3f,0x00,0x33,0x00,0x33,
0x00,0x12,0x00,0x1e,0x00,0x1e,0x00,0x0c,
0x00,0x0c,0x00,0x00,0x00,0x36,0x00,0x36,
0x00,0xe1,0xc0,0x61,0x80,0x7f,0x80,0x3f,
0x00,0x33,0x00,0x33,0x00,0x12,0x00,0x1e,
0x00,0x1e,0x00,0x0c,0x00,0x0c,0x00,0x0c,
0x00,0x0a,0x00,0x06,0x00,0xe3,0xf8,0x63,
0xf8,0x7f,0x00,0x7f,0x00,0x33,0x00,0x33,
0xf8,0x3b,0xf8,0x1b,0x00,0x1b,0x00,0x1f,
0x00,0x0f,0xf8,0x0f,0xf8,0x18,0x0c,0x08,
0x3c,0x7e,0x63,0xc3,0xc0,0xc0,0xc0,0xc0,
0xc3,0x63,0x7e,0x3c,0xfe,0xfe,0xc0,0xc0,
0xc0,0xfe,0xfe,0xc0,0xc0,0xfe,0xfe,0x00,
0x18,0x30,0xfe,0xfe,0xc0,0xc0,0xc0,0xfe,
0xfe,0xc0,0xc0,0xfe,0xfe,0x00,0x18,0x0c,
0xfe,0xfe,0xc0,0xc0,0xc0,0xfe,0xfe,0xc0,
0xc0,0xfe,0xfe,0x00,0x6c,0x38,0xfe,0xfe,
0xc0,0xc0,0xc0,0xfe,0xfe,0xc0,0xc0,0xfe,
0xfe,0x00,0x6c,0x6c,0x60,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,
0x60,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0xc0,0x60,
0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0x30,0x30,0x00,0xd8,0x70,0x30,0x30,
0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0x00,0xd8,0xd8,0x7e,0x00,0x7f,0x00,
0x63,0x00,0x61,0x80,0x61,0x80,0xf9,0x80,
0xf9,0x80,0x61,0x80,0x61,0x80,0x63,0x00,
0x7f,0x00,0x7e,0x00,0xc3,0xc7,0xc7,0xcf,
0xcb,0xdb,0xd3,0xf3,0xe3,0xe3,0xc3,0x00,
0x2c,0x1a,0x3e,0x00,0x7f,0x00,0x63,0x00,
0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,
0xc1,0x80,0x63,0x00,0x7f,0x00,0x3e,0x00,
0x00,0x00,0x0c,0x00,0x18,0x00,0x3e,0x00,
0x7f,0x00,0x63,0x00,0xc1,0x80,0xc1,0x80,
0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x00,
0x7f,0x00,0x3e,0x00,0x00,0x00,0x18,0x00,
0x0c,0x00,0x3e,0x00,0x7f,0x00,0x63,0x00,
0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,
0xc1,0x80,0x63,0x00,0x7f,0x00,0x3e,0x00,
0x00,0x00,0x36,0x00,0x1c,0x00,0x3e,0x00,
0x7f,0x00,0x63,0x00,0xc1,0x80,0xc1,0x80,
0xc1,0x80,0xc1,0x80,0xc1,0x80,0x63,0x00,
0x7f,0x00,0x3e,0x00,0x00,0x00,0x2c,0x00,
0x1a,0x00,0x3e,0x00,0x7f,0x00,0x63,0x00,
0xc1,0x80,0xc1,0x80,0xc1,0x80,0xc1,0x80,
0xc1,0x80,0x63,0x00,0x7f,0x00,0x3e,0x00,
0x00,0x00,0x36,0x00,0x36,0x00,0x84,0xcc,
0x78,0x30,0x30,0x78,0xcc,0x84,0xbe,0x00,
0xff,0x00,0x63,0x00,0xf1,0x80,0xd1,0x80,
0xc9,0x80,0xc9,0x80,0xc5,0x80,0xc7,0x80,
0x63,0x00,0x7f,0x80,0x3e,0x80,0x3c,0x7e,
0xe7,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
0xc3,0x00,0x18,0x30,0x3c,0x7e,0xe7,0xc3,
0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x00,
0x18,0x0c,0x3c,0x7e,0xe7,0xc3,0xc3,0xc3,
0xc3,0xc3,0xc3,0xc3,0xc3,0x00,0x6c,0x38,
0x3c,0x7e,0xe7,0xc3,0xc3,0xc3,0xc3,0xc3,
0xc3,0xc3,0xc3,0x00,0x6c,0x6c,0x0c,0x00,
0x0c,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,
0x1e,0x00,0x1e,0x00,0x33,0x00,0x33,0x00,
0x61,0x80,0xe1,0xc0,0x00,0x00,0x0c,0x00,
0x06,0x00,0xc0,0xc0,0xf8,0xfc,0xce,0xc6,
0xc6,0xce,0xfc,0xf8,0xc0,0xc0,0xd8,0xdc,
0xc6,0xc6,0xc6,0xdc,0xd8,0xcc,0xcc,0xcc,
0x7c,0x38,0x6c,0xfc,0xcc,0xcc,0x7c,0x1c,
0xcc,0xfc,0x78,0x00,0x30,0x60,0x6c,0xfc,
0xcc,0xcc,0x7c,0x1c,0xcc,0xfc,0x78,0x00,
0x30,0x18,0x6c,0xfc,0xcc,0xcc,0x7c,0x1c,
0xcc,0xfc,0x78,0x00,0xd8,0x70,0x6c,0xfc,
0xcc,0xcc,0x7c,0x1c,0xcc,0xfc,0x78,0x00,
0x58,0x34,0x6c,0xfc,0xcc,0xcc,0x7c,0x1c,
0xcc,0xfc,0x78,0x00,0xd8,0xd8,0x6c,0xfc,
0xcc,0xcc,0x7c,0x1c,0xcc,0xfc,0x78,0x00,
0x30,0x28,0x18,0x73,0x80,0xff,0xc0,0xcc,
0xc0,0xcc,0x00,0x7f,0xc0,0x1c,0xc0,0xcc,
0xc0,0xff,0xc0,0x73,0x80,0x30,0x18,0x10,
0x38,0x7c,0xec,0xc0,0xc0,0xc0,0xec,0x7c,
0x38,0x38,0x7c,0xcc,0xc0,0xfc,0xcc,0xcc,
0x78,0x30,0x00,0x30,0x60,0x38,0x7c,0xcc,
0xc0,0xfc,0xcc,0xcc,0x78,0x30,0x00,0x30,
0x18,0x38,0x7c,0xcc,0xc0,0xfc,0xcc,0xcc,
0x78,0x30,0x00,0x6c,0x38,0x38,0x7c,0xcc,
0xc0,0xfc,0xcc,0xcc,0x78,0x30,0x00,0xd8,
0xd8,0x60,0x60,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x00,0x60,0xc0,0xc0,0xc0,0xc0,
0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0xc0,
0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
0x30,0x30,0x00,0xd8,0x70,0x30,0x30,0x30,
0x30,0x30,0x30,0x30,0x30,0x30,0x00,0xd8,
0xd8,0x38,0x7c,0xee,0xc6,0xc6,0xc6,0xee,
0x7c,0x3c,0xf8,0x38,0x6c,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0xe6,0xfe,0xdc,0x00,0x58,
0x34,0x38,0x7c,0xee,0xc6,0xc6,0xc6,0xee,
0x7c,0x38,0x00,0x18,0x30,0x38,0x7c,0xee,
0xc6,0xc6,0xc6,0xee,0x7c,0x38,0x00,0x30,
0x18,0x38,0x7c,0xee,0xc6,0xc6,0xc6,0xee,
0x7c,0x38,0x00,0x6c,0x38,0x38,0x7c,0xee,
0xc6,0xc6,0xc6,0xee,0x7c,0x38,0x00,0x58,
0x34,0x38,0x7c,0xee,0xc6,0xc6,0xc6,0xee,
0x7c,0x38,0x00,0x6c,0x6c,0x30,0x30,0x00,
0xfc,0xfc,0x00,0x30,0x30,0xb8,0x7c,0xee,
0xe6,0xd6,0xce,0xee,0x7c,0x3a,0x76,0xfe,
0xce,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,
0x18,0x30,0x76,0xfe,0xce,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0x00,0x30,0x18,0x76,0xfe,
0xce,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,
0x6c,0x38,0x76,0xfe,0xce,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0x00,0x6c,0x6c,0x60,0x70,
0x10,0x18,0x38,0x38,0x2c,0x6c,0x6c,0xc6,
0xc6,0xc6,0x00,0x30,0x18,0xc0,0xc0,0xc0,
0xd8,0xfc,0xee,0xc6,0xc6,0xc6,0xee,0xfc,
0xd8,0xc0,0xc0,0xc0,0x60,0x70,0x10,0x18,
0x38,0x38,0x2c,0x6c,0x6c,0xc6,0xc6,0xc6,
0x00,0x6c,0x6c,
};
BMF_FontData BMF_font_helvb14 = {
-2, -3,
12, 14,
{
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0, 0, 0, 0, 12, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{1, 1, 0, 0, 3, 0},
{2, 12, -1, 0, 4, 1},
{5, 4, 0, -8, 6, 13},
{8, 12, 1, 0, 7, 17},
{7, 15, 0, 2, 7, 29},
{11, 11, 0, 0, 12, 44},
{9, 12, 0, 0, 9, 66},
{2, 4, -1, -8, 4, 90},
{4, 15, 0, 3, 4, 94},
{4, 15, 1, 3, 4, 109},
{5, 6, 0, -6, 5, 124},
{6, 8, -1, 0, 8, 130},
{2, 5, 0, 3, 3, 138},
{7, 2, 0, -3, 8, 143},
{2, 2, 0, 0, 3, 145},
{4, 11, 0, 0, 4, 147},
{6, 12, 0, 0, 7, 158},
{4, 12, 0, 0, 7, 170},
{6, 12, 0, 0, 7, 182},
{6, 12, 0, 0, 7, 194},
{6, 12, 0, 0, 7, 206},
{6, 12, 0, 0, 7, 218},
{6, 12, 0, 0, 7, 230},
{6, 12, 0, 0, 7, 242},
{6, 12, 0, 0, 7, 254},
{6, 12, 0, 0, 7, 266},
{2, 8, -1, 0, 4, 278},
{2, 11, -1, 3, 4, 286},
{7, 8, 0, 0, 8, 297},
{6, 6, -1, -1, 8, 305},
{7, 8, 0, 0, 8, 311},
{6, 12, -1, 0, 8, 319},
{12, 14, 0, 2, 13, 331},
{10, 12, 1, 0, 9, 359},
{8, 12, 0, 0, 9, 383},
{8, 12, 0, 0, 9, 395},
{8, 12, 0, 0, 9, 407},
{7, 12, 0, 0, 8, 419},
{7, 12, -1, 0, 8, 431},
{9, 12, 0, 0, 10, 443},
{8, 12, 0, 0, 9, 467},
{2, 12, -1, 0, 5, 479},
{6, 12, 0, 0, 7, 491},
{9, 12, -1, 0, 10, 503},
{7, 12, -1, 0, 8, 527},
{10, 12, 0, 0, 11, 539},
{8, 12, 0, 0, 9, 563},
{9, 12, 0, 0, 10, 575},
{7, 12, -1, 0, 9, 599},
{9, 13, 0, 1, 10, 611},
{8, 12, 0, 0, 9, 637},
{8, 12, 0, 0, 9, 649},
{8, 12, 0, 0, 9, 661},
{8, 12, 0, 0, 9, 673},
{8, 12, 0, 0, 9, 685},
{12, 12, 0, 0, 13, 697},
{9, 12, 0, 0, 10, 721},
{10, 12, 1, 0, 9, 745},
{8, 12, 0, 0, 9, 769},
{3, 15, 0, 3, 4, 781},
{4, 11, 0, 0, 4, 796},
{3, 15, 0, 3, 4, 807},
{6, 7, -1, -4, 8, 822},
{7, 1, 0, 3, 7, 829},
{2, 4, -1, -8, 4, 830},
{6, 9, 0, 0, 7, 834},
{7, 12, 0, 0, 8, 843},
{6, 9, 0, 0, 7, 855},
{7, 12, 0, 0, 8, 864},
{6, 9, 0, 0, 7, 876},
{4, 12, 0, 0, 5, 885},
{7, 12, 0, 3, 8, 897},
{7, 12, 0, 0, 8, 909},
{2, 12, 0, 0, 3, 921},
{3, 15, 1, 3, 3, 933},
{7, 12, 0, 0, 7, 948},
{2, 12, 0, 0, 3, 960},
{10, 9, 0, 0, 11, 972},
{7, 9, 0, 0, 8, 990},
{7, 9, 0, 0, 8, 999},
{7, 12, 0, 3, 8, 1008},
{7, 12, 0, 3, 8, 1020},
{5, 9, 0, 0, 5, 1032},
{6, 9, 0, 0, 7, 1041},
{4, 11, 0, 0, 5, 1050},
{7, 9, 0, 0, 8, 1061},
{6, 9, 0, 0, 7, 1070},
{10, 9, 0, 0, 11, 1079},
{7, 9, 0, 0, 8, 1097},
{7, 12, 0, 3, 8, 1106},
{6, 9, 0, 0, 7, 1118},
{4, 15, 0, 3, 5, 1127},
{1, 15, -1, 3, 4, 1142},
{4, 15, 0, 3, 5, 1157},
{6, 3, -1, -3, 8, 1172},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{0,0,0,0,0, -1},
{2, 12, -1, 3, 4, 1175},
{6, 13, 0, 2, 7, 1187},
{7, 12, 0, 0, 7, 1200},
{6, 8, 0, -2, 7, 1212},
{8, 12, 1, 0, 7, 1220},
{1, 15, -1, 3, 4, 1232},
{7, 15, 0, 3, 7, 1247},
{5, 2, 1, -10, 4, 1262},
{10, 12, 0, 0, 10, 1264},
{4, 7, 0, -5, 5, 1288},
{6, 6, 0, -1, 7, 1295},
{7, 5, 0, -2, 8, 1301},
{3, 2, 0, -3, 4, 1306},
{10, 12, 0, 0, 10, 1308},
{4, 1, 0, -11, 4, 1332},
{4, 5, 0, -7, 5, 1333},
{6, 11, -1, 0, 8, 1338},
{4, 7, 0, -5, 4, 1349},
{4, 7, 0, -5, 4, 1356},
{3, 2, -1, -10, 4, 1363},
{7, 12, 0, 3, 8, 1365},
{7, 15, 0, 3, 7, 1377},
{2, 2, 0, -5, 3, 1392},
{3, 3, 0, 3, 4, 1394},
{3, 7, 0, -5, 4, 1397},
{4, 7, 0, -5, 5, 1404},
{6, 6, 0, -1, 7, 1411},
{11, 12, 1, 0, 11, 1417},
{11, 12, 1, 0, 11, 1441},
{11, 12, 0, 0, 11, 1465},
{6, 12, -1, 3, 8, 1489},
{10, 14, 1, 0, 9, 1501},
{10, 14, 1, 0, 9, 1529},
{10, 14, 1, 0, 9, 1557},
{10, 14, 1, 0, 9, 1585},
{10, 14, 1, 0, 9, 1613},
{10, 14, 1, 0, 9, 1641},
{13, 12, 1, 0, 13, 1669},
{8, 15, 0, 3, 9, 1693},
{7, 14, 0, 0, 8, 1708},
{7, 14, 0, 0, 8, 1722},
{7, 14, 0, 0, 8, 1736},
{7, 14, 0, 0, 8, 1750},
{3, 14, 0, 0, 5, 1764},
{3, 14, -1, 0, 5, 1778},
{5, 14, 1, 0, 5, 1792},
{5, 14, 1, 0, 5, 1806},
{9, 12, 1, 0, 9, 1820},
{8, 14, 0, 0, 9, 1844},
{9, 14, 0, 0, 10, 1858},
{9, 14, 0, 0, 10, 1886},
{9, 14, 0, 0, 10, 1914},
{9, 14, 0, 0, 10, 1942},
{9, 14, 0, 0, 10, 1970},
{6, 8, -1, 0, 8, 1998},
{9, 12, 0, 0, 10, 2006},
{8, 14, 0, 0, 9, 2030},
{8, 14, 0, 0, 9, 2044},
{8, 14, 0, 0, 9, 2058},
{8, 14, 0, 0, 9, 2072},
{10, 14, 1, 0, 9, 2086},
{7, 12, -1, 0, 9, 2114},
{7, 12, 0, 0, 8, 2126},
{6, 12, 0, 0, 7, 2138},
{6, 12, 0, 0, 7, 2150},
{6, 12, 0, 0, 7, 2162},
{6, 12, 0, 0, 7, 2174},
{6, 12, 0, 0, 7, 2186},
{6, 13, 0, 0, 7, 2198},
{10, 9, 0, 0, 11, 2211},
{6, 12, 0, 3, 7, 2229},
{6, 12, 0, 0, 7, 2241},
{6, 12, 0, 0, 7, 2253},
{6, 12, 0, 0, 7, 2265},
{6, 12, 0, 0, 7, 2277},
{3, 12, 1, 0, 3, 2289},
{3, 12, 0, 0, 3, 2301},
{5, 12, 2, 0, 3, 2313},
{5, 12, 2, 0, 3, 2325},
{7, 12, 0, 0, 8, 2337},
{7, 12, 0, 0, 8, 2349},
{7, 12, 0, 0, 8, 2361},
{7, 12, 0, 0, 8, 2373},
{7, 12, 0, 0, 8, 2385},
{7, 12, 0, 0, 8, 2397},
{7, 12, 0, 0, 8, 2409},
{6, 8, -1, 0, 8, 2421},
{7, 9, 0, 0, 8, 2429},
{7, 12, 0, 0, 8, 2438},
{7, 12, 0, 0, 8, 2450},
{7, 12, 0, 0, 8, 2462},
{7, 12, 0, 0, 8, 2474},
{7, 15, 0, 3, 8, 2486},
{7, 15, 0, 3, 8, 2501},
{7, 15, 0, 3, 8, 2516},
},
bitmap_data
};
#endif

Some files were not shown because too many files have changed in this diff Show More