ICU 52.1
52.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
layout
LayoutEngine.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright IBM Corp. and others 1998-2013 - All Rights Reserved
3
*/
4
5
#ifndef __LAYOUTENGINE_H
6
#define __LAYOUTENGINE_H
7
8
#include "
LETypes.h
"
9
15
U_NAMESPACE_BEGIN
16
17
class
LEFontInstance;
18
class
LEGlyphFilter;
19
class
LEGlyphStorage;
20
64
class
U_LAYOUT_API
LayoutEngine
:
public
UObject
{
65
public
:
66
#ifndef U_HIDE_INTERNAL_API
67
68
static
const
le_int32
kTypoFlagKern
;
70
static
const
le_int32
kTypoFlagLiga
;
71
#endif
/* U_HIDE_INTERNAL_API */
72
73
protected
:
79
LEGlyphStorage
*
fGlyphStorage
;
80
88
const
LEFontInstance
*
fFontInstance
;
89
97
le_int32
fScriptCode
;
98
106
le_int32
fLanguageCode
;
107
113
le_int32
fTypoFlags
;
114
121
le_bool
fFilterZeroWidth
;
122
123
#ifndef U_HIDE_INTERNAL_API
124
140
LayoutEngine
(
const
LEFontInstance
*fontInstance,
141
le_int32
scriptCode,
142
le_int32
languageCode,
143
le_int32
typoFlags,
144
LEErrorCode
&success);
145
#endif
/* U_HIDE_INTERNAL_API */
146
147
// Do not enclose the protected default constructor with #ifndef U_HIDE_INTERNAL_API
148
// or else the compiler will create a public default constructor.
156
LayoutEngine
();
157
180
virtual
le_int32
characterProcessing(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_int32
max,
le_bool
rightToLeft,
181
LEUnicode
*&outChars,
LEGlyphStorage
&glyphStorage,
LEErrorCode
&success);
182
209
virtual
le_int32
computeGlyphs(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_int32
max,
le_bool
rightToLeft,
LEGlyphStorage
&glyphStorage,
LEErrorCode
&success);
210
224
virtual
void
positionGlyphs(
LEGlyphStorage
&glyphStorage,
float
x,
float
y,
LEErrorCode
&success);
225
246
virtual
void
adjustGlyphPositions(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_bool
reverse,
LEGlyphStorage
&glyphStorage,
LEErrorCode
&success);
247
261
virtual
const
void
*getFontTable(
LETag
tableTag,
size_t
&length)
const
;
262
266
virtual
const
void
*
getFontTable
(
LETag
tableTag)
const
{
size_t
ignored;
return
getFontTable
(tableTag, ignored); }
267
293
virtual
void
mapCharsToGlyphs(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_bool
reverse,
le_bool
mirror,
LEGlyphStorage
&glyphStorage,
LEErrorCode
&success);
294
295
#ifndef U_HIDE_INTERNAL_API
296
308
static
void
adjustMarkGlyphs(
LEGlyphStorage
&glyphStorage, LEGlyphFilter *markFilter,
LEErrorCode
&success);
309
310
329
static
void
adjustMarkGlyphs(
const
LEUnicode
chars[],
le_int32
charCount,
le_bool
reverse,
LEGlyphStorage
&glyphStorage, LEGlyphFilter *markFilter,
LEErrorCode
&success);
330
#endif
/* U_HIDE_INTERNAL_API */
331
332
public
:
341
virtual
~
LayoutEngine
();
342
368
virtual
le_int32
layoutChars(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_int32
max,
le_bool
rightToLeft,
float
x,
float
y,
LEErrorCode
&success);
369
379
le_int32
getGlyphCount()
const
;
380
391
void
getGlyphs(
LEGlyphID
glyphs[],
LEErrorCode
&success)
const
;
392
405
virtual
void
getGlyphs(
le_uint32
glyphs[],
le_uint32
extraBits,
LEErrorCode
&success)
const
;
406
417
void
getCharIndices(
le_int32
charIndices[],
LEErrorCode
&success)
const
;
418
430
void
getCharIndices(
le_int32
charIndices[],
le_int32
indexBase,
LEErrorCode
&success)
const
;
431
443
void
getGlyphPositions(
float
positions[],
LEErrorCode
&success)
const
;
444
459
void
getGlyphPosition(
le_int32
glyphIndex,
float
&x,
float
&y,
LEErrorCode
&success)
const
;
460
468
virtual
void
reset();
469
486
static
LayoutEngine
*layoutEngineFactory(
const
LEFontInstance
*fontInstance,
le_int32
scriptCode,
le_int32
languageCode,
LEErrorCode
&success);
487
492
static
LayoutEngine
*layoutEngineFactory(
const
LEFontInstance
*fontInstance,
le_int32
scriptCode,
le_int32
languageCode,
le_int32
typo_flags,
LEErrorCode
&success);
493
499
virtual
UClassID
getDynamicClassID
()
const
;
500
506
static
UClassID
getStaticClassID();
507
508
};
509
510
U_NAMESPACE_END
511
#endif
Generated on Tue Mar 1 2016 21:34:29 for ICU 52.1 by
1.8.4