loadFont(outline=xxx)

This commit is contained in:
David Rose 2009-01-17 02:47:36 +00:00
parent 89aeadbc72
commit 3b793cf964

View File

@ -295,6 +295,7 @@ class Loader(DirectObject):
textureMargin = None, polyMargin = None,
minFilter = None, magFilter = None,
anisotropicDegree = None,
outline = None,
lineHeight = None, okMissing = False):
"""
modelPath is a string.
@ -304,6 +305,17 @@ class Loader(DirectObject):
egg file (or bam file) generated with egg-mkfont, or a
standard font file (like a TTF file) that is supported by
FreeType.
Most font-customization parameters accepted by this method
(except lineHeight and spaceAdvance) may only be specified for
font files like TTF files, not for static egg files.
If outline is not None, it may be either a single number,
representing the desired outline width (in font pixels), or it
may be a 2-tuple of (width, feather), where feather is a
number in the range 0.0 to 1.0 and indicates the softness of
the outline.
"""
assert Loader.notify.debug("Loading font: %s" % (modelPath))
if phaseChecker:
@ -336,6 +348,18 @@ class Loader(DirectObject):
font.setMagfilter(magFilter)
if anisotropicDegree != None:
font.setAnisotropicDegree(anisotropicDegree)
if outline != None:
# Outline should be a float: width
# or a 2-tuple: (width, feather)
try:
outline = tuple(outline)
except TypeError:
outline = (outline,)
if len(outline) < 2:
outline = (outline[0], 0.1)
font.setOutline(VBase4(0, 0, 0, 1), *outline)
# This means we also want the bg to be black.
font.setBg(VBase4(0, 0, 0, 0))
if lineHeight is not None:
# If the line height is specified, it overrides whatever