ICU 56.1
56.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
layout
LEFontInstance.h
Go to the documentation of this file.
1
2
/*
3
*
4
* (C) Copyright IBM Corp. 1998-2015 - All Rights Reserved
5
*
6
*/
7
8
#ifndef __LEFONTINSTANCE_H
9
#define __LEFONTINSTANCE_H
10
11
#include "
LETypes.h
"
17
U_NAMESPACE_BEGIN
18
28
class
LECharMapper
/* not : public UObject because this is an interface/mixin class */
29
{
30
public
:
35
virtual
~
LECharMapper
();
36
46
virtual
LEUnicode32
mapChar(
LEUnicode32
ch)
const
= 0;
47
};
48
55
class
LEGlyphStorage
;
56
81
class
U_LAYOUT_API
LEFontInstance
:
public
UObject
82
{
83
public
:
84
91
virtual
~
LEFontInstance
();
92
144
virtual
const
LEFontInstance
*getSubFont(
const
LEUnicode
chars[],
le_int32
*offset,
le_int32
limit,
le_int32
script,
LEErrorCode
&success)
const
;
145
146
//
147
// Font file access
148
//
149
165
virtual
const
void
* getFontTable(
LETag
tableTag,
size_t
&length)
const
= 0;
166
183
virtual
le_bool
canDisplay(
LEUnicode32
ch)
const
;
184
193
virtual
le_int32
getUnitsPerEM()
const
= 0;
194
218
virtual
void
mapCharsToGlyphs(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_bool
reverse,
const
LECharMapper
*mapper,
le_bool
filterZeroWidth,
LEGlyphStorage
&glyphStorage)
const
;
219
235
virtual
LEGlyphID
mapCharToGlyph(
LEUnicode32
ch,
const
LECharMapper
*mapper,
le_bool
filterZeroWidth)
const
;
236
251
virtual
LEGlyphID
mapCharToGlyph(
LEUnicode32
ch,
const
LECharMapper
*mapper)
const
;
252
265
virtual
LEGlyphID
mapCharToGlyph(
LEUnicode32
ch)
const
= 0;
266
267
//
268
// Metrics
269
//
270
279
virtual
void
getGlyphAdvance(
LEGlyphID
glyph,
LEPoint
&advance)
const
= 0;
280
293
virtual
le_bool
getGlyphPoint(
LEGlyphID
glyph,
le_int32
pointNumber,
LEPoint
&point)
const
= 0;
294
303
virtual
float
getXPixelsPerEm()
const
= 0;
304
313
virtual
float
getYPixelsPerEm()
const
= 0;
314
325
virtual
float
xUnitsToPoints(
float
xUnits)
const
;
326
337
virtual
float
yUnitsToPoints(
float
yUnits)
const
;
338
347
virtual
void
unitsToPoints(
LEPoint
&units,
LEPoint
&points)
const
;
348
359
virtual
float
xPixelsToUnits(
float
xPixels)
const
;
360
371
virtual
float
yPixelsToUnits(
float
yPixels)
const
;
372
381
virtual
void
pixelsToUnits(
LEPoint
&pixels,
LEPoint
&units)
const
;
382
394
virtual
float
getScaleFactorX()
const
= 0;
395
406
virtual
float
getScaleFactorY()
const
= 0;
407
423
virtual
void
transformFunits(
float
xFunits,
float
yFunits,
LEPoint
&pixels)
const
;
424
435
static
inline
float
fixedToFloat(
le_int32
fixed);
436
447
static
inline
le_int32
floatToFixed(
float
theFloat);
448
449
//
450
// These methods won't ever be called by the LayoutEngine,
451
// but are useful for clients of <code>LEFontInstance</code> who
452
// need to render text.
453
//
454
463
virtual
le_int32
getAscent()
const
= 0;
464
473
virtual
le_int32
getDescent()
const
= 0;
474
483
virtual
le_int32
getLeading()
const
= 0;
484
495
virtual
le_int32
getLineHeight()
const
;
496
502
virtual
UClassID
getDynamicClassID
()
const
;
503
509
static
UClassID
getStaticClassID();
510
511
};
512
513
inline
float
LEFontInstance::fixedToFloat(
le_int32
fixed)
514
{
515
return
(
float
) (fixed / 65536.0);
516
}
517
518
inline
le_int32
LEFontInstance::floatToFixed(
float
theFloat)
519
{
520
return
(
le_int32
) (theFloat * 65536.0);
521
}
522
523
U_NAMESPACE_END
524
#endif
Generated on Wed Oct 7 2015 21:17:56 for ICU 56.1 by
1.8.1.2