A
GlyphVector
object is a collection of glyphs
containing geometric information for the placement of each glyph
in a transformed coordinate space which corresponds to the
device on which the
GlyphVector
is ultimately
displayed.
The GlyphVector
does not attempt any interpretation of
the sequence of glyphs it contains. Relationships between adjacent
glyphs in sequence are solely used to determine the placement of
the glyphs in the visual coordinate space.
Instances of GlyphVector
are created by a Font
.
In a text processing application that can cache intermediate
representations of text, creation and subsequent caching of a
GlyphVector
for use during rendering is the fastest
method to present the visual representation of characters to a user.
A GlyphVector
is associated with exactly one
Font
, and can provide data useful only in relation to
this Font
. In addition, metrics obtained from a
GlyphVector
are not generally geometrically scaleable
since the pixelization and spacing are dependent on grid-fitting
algorithms within a Font
. To facilitate accurate
measurement of a GlyphVector
and its component
glyphs, you must specify a scaling transform, anti-alias mode, and
fractional metrics mode when creating the GlyphVector
.
These characteristics can be derived from the destination device.
For each glyph in the GlyphVector
, you can obtain:
- the position of the glyph
- the transform associated with the glyph
- the metrics of the glyph in the context of the
GlyphVector
. The metrics of the glyph may be
different under different transforms, application specified
rendering hints, and the specific instance of the glyph within
the GlyphVector
.
Altering the data used to create the GlyphVector
does not
alter the state of the GlyphVector
.
Methods are provided to adjust the positions of the glyphs
within the GlyphVector
. These methods are most
appropriate for applications that are performing justification
operations for the presentation of the glyphs.
Methods are provided to transform individual glyphs within the
GlyphVector
. These methods are primarily useful for
special effects.
Methods are provided to return both the visual, logical, and pixel bounds
of the entire GlyphVector
or of individual glyphs within
the GlyphVector
.
Methods are provided to return a Shape
for the
GlyphVector
, and for individual glyphs within the
GlyphVector
.