|
||
A device-independent font specification is provided
—TFontSpec
(in the twips domain) — and the means to map the
specification to a concrete device-dependent font CFont*
(in the
device domain). The GetNearestFontInTwips()
function provides a
means of getting from a TFontSpec
to the CFont*
which
is the nearest font in the graphics device’s typeface store.
Due to the necessary number of calculations and typeface store searches
involved in the GetNearestFontToMaxHeightInTwips()
function, a
font cache, holding a cache of TFontSpec
- CFont*
relations for the current graphics map, is provided as an alternative to
invoking this function.
As the fonts supported by the device are stored in a device dependent
form (TTypefaceSupport
), pixels to twips functions are also
provided to allow the list of supported font sizes to be presented in user
dialogs as twips/points rather than pixels.
The typeface store mechanism allows any font to be used by more than one
client and keeps an access count of the number of clients using a particular
font. This access count is increased and decreased by the
GetNearestFontToMaxHeightInTwips()
and ReleaseFont()
functions respectively, and a font is only deleted from memory when its access
count reaches zero.