Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
FreetypeFont Class Reference

This is a common base class for both DynamicTextFont and PNMTextMaker. More...

Inheritance diagram for FreetypeFont:
Namable DynamicTextFont PNMTextMaker

Public Types

enum  WindingOrder { WO_default = 0, WO_left = 1, WO_right = 2, WO_invalid = 3 }
 

Public Member Functions

int getFontPixelSize ()
 This is used to report whether the requested pixel size is being only approximated by a fixed-pixel-size font. More...
 
float getLineHeight ()
 Returns the number of units high each line of text is. More...
 
bool getNativeAntialias ()
 Returns whether Freetype's built-in antialias mode is enabled. More...
 
float getPixelSize ()
 Returns the size of the font in pixels, as it appears in the texture. More...
 
float getPixelsPerUnit ()
 Returns the resolution of the texture map. More...
 
float getPointSize ()
 Returns the point size of the font. More...
 
float getScaleFactor ()
 Returns the antialiasing scale factor. More...
 
float getSpaceAdvance ()
 Returns the number of units wide a space is. More...
 
FreetypeFont::WindingOrder getWindingOrder ()
 Returns the winding order set via set_winding_order(). More...
 
 setNativeAntialias (bool native_antialias)
 Sets whether the Freetype library's built-in antialias mode is enabled. More...
 
bool setPixelSize (float pixel_size)
 Computes the appropriate pixels_per_unit value to set the size of the font in the texture to the indicated number of pixels. More...
 
bool setPixelsPerUnit (float pixels_per_unit)
 Set the resolution of the texture map, and hence the clarity of the resulting font. More...
 
bool setPointSize (float point_size)
 Sets the point size of the font. More...
 
bool setScaleFactor (float scale_factor)
 Sets the factor by which the font is rendered larger by the FreeType library before being filtered down to its actual size in the texture as specified by set_pixels_per_unit(). More...
 
 setWindingOrder (FreetypeFont::WindingOrder winding_order)
 Specifies an explicitly winding order on this particular font. More...
 
- Public Member Functions inherited from Namable
 __init__ (const Namable)
 
 __init__ (str initial_name)
 
 clearName ()
 Resets the Namable's name to empty. More...
 
str getName ()
 
bool hasName ()
 Returns true if the Namable has a nonempty name set, false if the name is empty. More...
 
 output (Ostream out)
 Outputs the Namable. More...
 
 setName (str name)
 

Static Public Member Functions

static float getPointsPerInch ()
 Returns the number of points in one inch. More...
 
static float getPointsPerUnit ()
 Returns the point size of the font that is one Panda unit high. More...
 
- Static Public Member Functions inherited from Namable
static TypeHandle getClassType ()
 

Public Attributes

FreetypeFont::WindingOrder winding_order
 Returns the winding order set via set_winding_order(). More...
 
- Public Attributes inherited from Namable
const String name
 

Detailed Description

This is a common base class for both DynamicTextFont and PNMTextMaker.

Both of these are utility classes that use the FreeType library to generate glyphs from fonts; this class abstracts out that common wrapper around FreeType.

Member Enumeration Documentation

◆ WindingOrder

Enumerator
WO_default 
WO_left 
WO_right 
WO_invalid 

Member Function Documentation

◆ getFontPixelSize()

int getFontPixelSize ( )

This is used to report whether the requested pixel size is being only approximated by a fixed-pixel-size font.

This returns 0 in the normal case, in which a scalable font is used, or the fixed-pixel-size font has exactly the requested pixel size.

If this returns non-zero, it is the pixel size of the font that we are using to approximate our desired size.

◆ getLineHeight()

float getLineHeight ( )

Returns the number of units high each line of text is.

◆ getNativeAntialias()

bool getNativeAntialias ( )

Returns whether Freetype's built-in antialias mode is enabled.

See set_native_antialias().

◆ getPixelSize()

float getPixelSize ( )

Returns the size of the font in pixels, as it appears in the texture.

◆ getPixelsPerUnit()

float getPixelsPerUnit ( )

Returns the resolution of the texture map.

See set_pixels_per_unit().

◆ getPointSize()

float getPointSize ( )

Returns the point size of the font.

◆ getPointsPerInch()

static float getPointsPerInch ( )
static

Returns the number of points in one inch.

This is a universal typographic convention.

◆ getPointsPerUnit()

static float getPointsPerUnit ( )
static

Returns the point size of the font that is one Panda unit high.

This is an arbitrary Panda convention for text, and is set to 10.0.

◆ getScaleFactor()

float getScaleFactor ( )

Returns the antialiasing scale factor.

See set_scale_factor().

◆ getSpaceAdvance()

float getSpaceAdvance ( )

Returns the number of units wide a space is.

◆ getWindingOrder()

FreetypeFont::WindingOrder getWindingOrder ( )

Returns the winding order set via set_winding_order().

◆ setNativeAntialias()

setNativeAntialias ( bool  native_antialias)

Sets whether the Freetype library's built-in antialias mode is enabled.

There are two unrelated ways to achieve antialiasing: with Freetype's native antialias mode, and with the use of a scale_factor greater than one. By default, both modes are enabled.

At low resolutions, some fonts may do better with one mode or the other. In general, Freetype's native antialiasing will produce less blurry results, but may introduce more artifacts.

◆ setPixelSize()

bool setPixelSize ( float  pixel_size)

Computes the appropriate pixels_per_unit value to set the size of the font in the texture to the indicated number of pixels.

This is just another way to specify pixels_per_unit().

◆ setPixelsPerUnit()

bool setPixelsPerUnit ( float  pixels_per_unit)

Set the resolution of the texture map, and hence the clarity of the resulting font.

This sets the number of pixels in the texture map that are used for each onscreen unit.

Setting this number larger results in an easier to read font, but at the cost of more texture memory.

This should only be called before any characters have been requested out of the font, or immediately after calling clear().

◆ setPointSize()

bool setPointSize ( float  point_size)

Sets the point size of the font.

This controls the apparent size of the font onscreen. By convention, a 10 point font is about 1 screen unit high.

This should only be called before any characters have been requested out of the font, or immediately after calling clear().

◆ setScaleFactor()

bool setScaleFactor ( float  scale_factor)

Sets the factor by which the font is rendered larger by the FreeType library before being filtered down to its actual size in the texture as specified by set_pixels_per_unit().

This may be set to a number larger than 1.0 to improve the font's antialiasing (since FreeType doesn't really do a swell job of antialiasing by itself). There is some performance implication for setting this different than 1.0.

This should only be called before any characters have been requested out of the font, or immediately after calling clear().

◆ setWindingOrder()

setWindingOrder ( FreetypeFont::WindingOrder  winding_order)

Specifies an explicitly winding order on this particular font.

This is only necessary if the render_mode is RM_polygon or RM_solid, and only if FreeType appears to guess wrong on this font. Normally, you should leave this at WO_default.

Member Data Documentation

◆ winding_order

Returns the winding order set via set_winding_order().