8 #ifndef __LEFONTINSTANCE_H
9 #define __LEFONTINSTANCE_H
166 virtual const void *getFontTable(
LETag tableTag)
const = 0;
213 virtual le_int32 getUnitsPerEM()
const = 0;
323 virtual float getXPixelsPerEm()
const = 0;
333 virtual float getYPixelsPerEm()
const = 0;
345 virtual float xUnitsToPoints(
float xUnits)
const;
357 virtual float yUnitsToPoints(
float yUnits)
const;
367 virtual void unitsToPoints(
LEPoint &units,
LEPoint &points)
const;
379 virtual float xPixelsToUnits(
float xPixels)
const;
391 virtual float yPixelsToUnits(
float yPixels)
const;
401 virtual void pixelsToUnits(
LEPoint &pixels,
LEPoint &units)
const;
414 virtual float getScaleFactorX()
const = 0;
426 virtual float getScaleFactorY()
const = 0;
443 virtual void transformFunits(
float xFunits,
float yFunits,
LEPoint &pixels)
const;
455 static inline float fixedToFloat(
le_int32 fixed);
467 static inline le_int32 floatToFixed(
float theFloat);
483 virtual le_int32 getAscent()
const = 0;
493 virtual le_int32 getDescent()
const = 0;
503 virtual le_int32 getLeading()
const = 0;
515 virtual le_int32 getLineHeight()
const;
533 inline float LEFontInstance::fixedToFloat(
le_int32 fixed)
535 return (
float) (fixed / 65536.0);
538 inline le_int32 LEFontInstance::floatToFixed(
float theFloat)
540 return (
le_int32) (theFloat * 65536.0);
UChar32 LEUnicode32
Used to represent 32-bit Unicode code points.
le_uint32 LETag
Used for four character tags.
virtual const void * getFontTable(LETag tableTag, size_t &length) const
This method reads a table from the font.
Instances of this class are used by LEFontInstance::mapCharsToGlyphs and LEFontInstance::mapCharToGly...
#define U_LAYOUT_API
Set to export library symbols from inside the layout engine library, and to import them from outside...
virtual UClassID getDynamicClassID() const =0
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
C API: Basic definitions for the ICU LayoutEngine.
int32_t le_int32
A type used for signed, 32-bit integers.
UBool le_bool
A type used for boolean values.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
LEErrorCode
Error codes returned by the LayoutEngine.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
UChar LEUnicode
Used to represent 16-bit Unicode code points.
This is a virtual base class that serves as the interface between a LayoutEngine and the platform fon...
This class encapsulates the per-glyph storage used by the ICU LayoutEngine.
le_uint32 LEGlyphID
Used for glyph indices.
UObject is the common ICU "boilerplate" class.
Used to hold a pair of (x, y) values which represent a point.