int error = SetFontScale(APTR handle, double *sx, double *sy, struct hwTagList *tags);
HWFONTFLAGS_VECTOR
flag, SetFontScale()
needs to apply the
scaling coefficients passed in sx
and sy
to the font. Note that these are
passed as pointers to double
solely for compatibility with WarpOS. You must
not write anything to these pointers, they are just for reading.
Note that if your LoadFont() implementation has set the HWFONTFLAGS_LAYOUT
flag, SetFontScale()
will never be called. In that case, any scaling coefficients
will be passed to your RenderText() implementation as a 2D transformation
matrix.
Since applying scaling coefficients can always lead to floating point inaccuracies,
your implementation of SetFontScale()
should always pass the scaled pixel height and
baseline of the font back to Hollywood. This is done using the tag list passed
to SetFontScale()
in the tags
parameter. The tag list can contain the following
tags:
HWFONTSCALETAG_HEIGHT:
pData
member of the tag contains a pointer to an int
that you should write the new
font height in pixels to.
HWFONTSCALETAG_BASELINE:
pData
member of the tag contains a pointer to an int
that you should write the new
font baseline in pixels to.
double
double