ICU 4.8.1.1
4.8.1.1
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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 by
1.8.1.1