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
260
virtual
const
void
*getFontTable(
LETag
tableTag)
const
;
261
287
virtual
void
mapCharsToGlyphs(
const
LEUnicode
chars[],
le_int32
offset,
le_int32
count,
le_bool
reverse,
le_bool
mirror,
LEGlyphStorage
&glyphStorage,
LEErrorCode
&success);
288
289
#ifndef U_HIDE_INTERNAL_API
290
302
static
void
adjustMarkGlyphs(
LEGlyphStorage
&glyphStorage, LEGlyphFilter *markFilter,
LEErrorCode
&success);
303
304
323
static
void
adjustMarkGlyphs(
const
LEUnicode
chars[],
le_int32
charCount,
le_bool
reverse,
LEGlyphStorage
&glyphStorage, LEGlyphFilter *markFilter,
LEErrorCode
&success);
324
#endif
/* U_HIDE_INTERNAL_API */
325
326
public
:
335
virtual
~
LayoutEngine
();
336
362
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);
363
373
le_int32
getGlyphCount()
const
;
374
385
void
getGlyphs(
LEGlyphID
glyphs[],
LEErrorCode
&success)
const
;
386
399
virtual
void
getGlyphs(
le_uint32
glyphs[],
le_uint32
extraBits,
LEErrorCode
&success)
const
;
400
411
void
getCharIndices(
le_int32
charIndices[],
LEErrorCode
&success)
const
;
412
424
void
getCharIndices(
le_int32
charIndices[],
le_int32
indexBase,
LEErrorCode
&success)
const
;
425
437
void
getGlyphPositions(
float
positions[],
LEErrorCode
&success)
const
;
438
453
void
getGlyphPosition(
le_int32
glyphIndex,
float
&x,
float
&y,
LEErrorCode
&success)
const
;
454
462
virtual
void
reset();
463
480
static
LayoutEngine
*layoutEngineFactory(
const
LEFontInstance
*fontInstance,
le_int32
scriptCode,
le_int32
languageCode,
LEErrorCode
&success);
481
486
static
LayoutEngine
*layoutEngineFactory(
const
LEFontInstance
*fontInstance,
le_int32
scriptCode,
le_int32
languageCode,
le_int32
typo_flags,
LEErrorCode
&success);
487
493
virtual
UClassID
getDynamicClassID
()
const
;
494
500
static
UClassID
getStaticClassID();
501
502
};
503
504
U_NAMESPACE_END
505
#endif
Generated on Sat Aug 1 2015 12:46:42 for ICU 4.8.1.1 by
1.8.1.2