8 #ifndef __LEFONTINSTANCE_H
9 #define __LEFONTINSTANCE_H
170 virtual const void *getFontTable(
LETag tableTag)
const = 0;
219 virtual le_int32 getUnitsPerEM()
const = 0;
329 virtual float getXPixelsPerEm()
const = 0;
339 virtual float getYPixelsPerEm()
const = 0;
351 virtual float xUnitsToPoints(
float xUnits)
const;
363 virtual float yUnitsToPoints(
float yUnits)
const;
373 virtual void unitsToPoints(
LEPoint &units,
LEPoint &points)
const;
385 virtual float xPixelsToUnits(
float xPixels)
const;
397 virtual float yPixelsToUnits(
float yPixels)
const;
407 virtual void pixelsToUnits(
LEPoint &pixels,
LEPoint &units)
const;
420 virtual float getScaleFactorX()
const = 0;
432 virtual float getScaleFactorY()
const = 0;
449 virtual void transformFunits(
float xFunits,
float yFunits,
LEPoint &pixels)
const;
461 static inline float fixedToFloat(
le_int32 fixed);
473 static inline le_int32 floatToFixed(
float theFloat);
489 virtual le_int32 getAscent()
const = 0;
499 virtual le_int32 getDescent()
const = 0;
509 virtual le_int32 getLeading()
const = 0;
521 virtual le_int32 getLineHeight()
const;
539 inline float LEFontInstance::fixedToFloat(
le_int32 fixed)
541 return (
float) (fixed / 65536.0);
544 inline le_int32 LEFontInstance::floatToFixed(
float theFloat)
546 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 UClassID getDynamicClassID() const
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
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...
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.