FONTOBJ
typedef struct _FONTOBJ {
ULONG iUniq;
ULONG iFace;
ULONG cxMax;
FLONG flFontType;
ULONG iTTUniq;
ULONG iFile;
SIZE sizLogResPpi;
ULONG ulStyleSize;
PVOID pvConsumer;
PVOID pvProducer;
} FONTOBJ;
The FONTOBJ structure is used to give a driver access to information about a
particular instance of a font. As an accelerator, the driver is allowed to
access the public members of the FONTOBJ structure.
Members
-
iUniq
-
Specifies a distinct realization of the font. This value can be used by the
driver to identify a GDI font that it might have cached or to identify a
driver’s realization of its own font. If this member is zero for a GDI font,
the font should not be cached.
-
iFace
-
Specifies the device index for a device font, which was registered by a call
to DrvQueryFont. If the font is a GDI
font, this member has meaning only to GDI, and the driver should ignore it.
-
cxMax
-
Specifies the width, in pixels, of the largest glyph in the specified font.
-
flFontType
-
A value specifying the type of the font. This member can be a combination of
the following flags:
Flag
|
Meaning
|
RASTER_FONTTYPE
|
Bitmap font.
|
DEVICE_FONTTYPE
|
Device-specific font.
|
TRUETYPE_FONTTYPE
|
TrueType font.
|
FO_SIM_ITALIC
|
Driver-simulated italic font.
|
FO_SIM_BOLD
|
Driver-simulated bold font.
|
FO_EM_HEIGHT
|
TrueType driver internal flag.
|
FO_4_LEVEL
|
Four-level antialiased font.
|
FO_16_LEVEL
|
Sixteen-level antialiased font.
|
FO_64_LEVEL
|
Sixty-four-level antialiased font.
|
If the RASTER_FONTYPE flag is set, the glyphs written to the specified STROBJ
structure are bitmaps, otherwise they are pointers to PATHOBJ structures. If
the glyph images are returned in the form of PATHOBJ structures, the driver
must inspect the FM_INFO_TECH_STROKE flag of the flInfo member of the
associated IFIMETRICS structure. If that flag is
set, the paths should be stroked, otherwise the paths must be filled using the
alternating mode convention.
If the FO_16_LEVEL bit is set, the associated glyph’s bitmaps are
4-bits-per-pixel. If this bit is not set, the glyph’s bitmaps are monochrome.
-
iTTUniq
-
Specifies the associated TrueType file. Two separate point size realizations
of a TrueType font face will have FONTOBJ structures that share the same iTTUniq
value, but will have different iUniq values. Only TrueType font types
can have a nonzero iTTUniq member. For more information see flFontType.
-
iFile
-
The identifier returned for device fonts already loaded. If the font is a GDI
font, then this member is used internally to identify the font and should be
ignored.
-
sizLogResPpi
-
Specifies the resolution of the device for which this font is realized.
-
ulStyleSize
-
Specifies the style size of the font instance, in points.
-
pvConsumer
-
A consumer is a driver that accepts glyph information as input for generating
text output. Only a font consumer can modify this member. The consumer of this
font can store any information in the location pointed to by this member. This
member should be used to store a pointer to consumer-allocated data associated
with this font instance. The engine will not modify this member. The pvConsumer
member is guaranteed to be null the first time a FONTOBJ structure is passed
to the consumer.
-
pvProducer
-
A producer is a driver that can produce glyph information as output; this
includes glyph metrics, bitmaps, and outlines. Only a font producer can modify
this member. The producer of this font can store any information in the
location pointed to by this member. This member should be used to store a
pointer to producer-allocated data associated with this font instance. The
engine will not modify this member. The pvProducer member is guaranteed
to be null the first time a FONTOBJ structure is passed to the producer.
Comments
A driver can be both a producer and a consumer. For example, a printer driver
can act as a producer while processing a call to the driver-supplied DrvQueryFontData
function to provide glyph metrics, and later act a consumer while processing a
call to the driver-supplied DrvTextOut
function.
See Also
DrvDestroyFont, DrvGetGlyphMode,
DrvQueryFont, DrvQueryTrueTypeOutline,
FONTOBJ_cGetAllGlyphHandles,
FONTOBJ_cGetGlyphs, FONTOBJ_pifi,
FONTOBJ_pxoGetXform, FONTOBJ_vGetInfo,
IFIMETRICS