Flutter Engine
The Flutter Engine
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
SkUnicode Class Referenceabstract

#include <SkUnicode.h>

Inheritance diagram for SkUnicode:
SkRefCnt SkRefCntBase SkUnicodeHardCodedCharProperties SkUnicode_icu SkUnicode_icu4x SkUnicode_client SkUnicode_libgrapheme

Classes

struct  BidiRegion
 
struct  LineBreakBefore
 

Public Types

enum  CodeUnitFlags {
  kNoCodeUnitFlag = 0x00 , kPartOfWhiteSpaceBreak = 0x01 , kGraphemeStart = 0x02 , kSoftLineBreakBefore = 0x04 ,
  kHardLineBreakBefore = 0x08 , kPartOfIntraWordBreak = 0x10 , kControl = 0x20 , kTabulation = 0x40 ,
  kGlyphClusterStart = 0x80 , kIdeographic = 0x100 , kEmoji = 0x200 , kWordBreak = 0x400 ,
  kSentenceBreak = 0x800
}
 
enum class  TextDirection { kLTR , kRTL }
 
enum class  LineBreakType { kSoftLineBreak = 0 , kHardLineBreak = 100 }
 
enum class  BreakType { kWords , kGraphemes , kLines , kSentences }
 
typedef size_t Position
 
typedef uint8_t BidiLevel
 

Public Member Functions

 ~SkUnicode () override=default
 
virtual SkString toUpper (const SkString &)=0
 
virtual SkString toUpper (const SkString &, const char *locale)=0
 
virtual bool isControl (SkUnichar utf8)=0
 
virtual bool isWhitespace (SkUnichar utf8)=0
 
virtual bool isSpace (SkUnichar utf8)=0
 
virtual bool isTabulation (SkUnichar utf8)=0
 
virtual bool isHardBreak (SkUnichar utf8)=0
 
virtual bool isEmoji (SkUnichar utf8)=0
 
virtual bool isEmojiComponent (SkUnichar utf8)=0
 
virtual bool isEmojiModifierBase (SkUnichar utf8)=0
 
virtual bool isEmojiModifier (SkUnichar utf8)=0
 
virtual bool isRegionalIndicator (SkUnichar utf8)=0
 
virtual bool isIdeographic (SkUnichar utf8)=0
 
virtual std::unique_ptr< SkBidiIteratormakeBidiIterator (const uint16_t text[], int count, SkBidiIterator::Direction)=0
 
virtual std::unique_ptr< SkBidiIteratormakeBidiIterator (const char text[], int count, SkBidiIterator::Direction)=0
 
virtual std::unique_ptr< SkBreakIteratormakeBreakIterator (const char locale[], BreakType breakType)=0
 
virtual std::unique_ptr< SkBreakIteratormakeBreakIterator (BreakType type)=0
 
virtual bool getBidiRegions (const char utf8[], int utf8Units, TextDirection dir, std::vector< BidiRegion > *results)=0
 
virtual bool getWords (const char utf8[], int utf8Units, const char *locale, std::vector< Position > *results)=0
 
virtual bool getUtf8Words (const char utf8[], int utf8Units, const char *locale, std::vector< Position > *results)=0
 
virtual bool getSentences (const char utf8[], int utf8Units, const char *locale, std::vector< Position > *results)=0
 
virtual bool computeCodeUnitFlags (char utf8[], int utf8Units, bool replaceTabs, skia_private::TArray< SkUnicode::CodeUnitFlags, true > *results)=0
 
virtual bool computeCodeUnitFlags (char16_t utf16[], int utf16Units, bool replaceTabs, skia_private::TArray< SkUnicode::CodeUnitFlags, true > *results)=0
 
template<typename Callback >
void forEachCodepoint (const char *utf8, int32_t utf8Units, Callback &&callback)
 
template<typename Callback >
void forEachCodepoint (const char16_t *utf16, int32_t utf16Units, Callback &&callback)
 
template<typename Callback >
void forEachBidiRegion (const uint16_t utf16[], int utf16Units, SkBidiIterator::Direction dir, Callback &&callback)
 
template<typename Callback >
void forEachBreak (const char16_t utf16[], int utf16Units, SkUnicode::BreakType type, Callback &&callback)
 
virtual void reorderVisual (const BidiLevel runLevels[], int levelsCount, int32_t logicalFromVisual[])=0
 
- Public Member Functions inherited from SkRefCntBase
 SkRefCntBase ()
 
virtual ~SkRefCntBase ()
 
bool unique () const
 
void ref () const
 
void unref () const
 

Static Public Member Functions

static bool hasTabulationFlag (SkUnicode::CodeUnitFlags flags)
 
static bool hasHardLineBreakFlag (SkUnicode::CodeUnitFlags flags)
 
static bool hasSoftLineBreakFlag (SkUnicode::CodeUnitFlags flags)
 
static bool hasGraphemeStartFlag (SkUnicode::CodeUnitFlags flags)
 
static bool hasControlFlag (SkUnicode::CodeUnitFlags flags)
 
static bool hasPartOfWhiteSpaceBreakFlag (SkUnicode::CodeUnitFlags flags)
 
static bool extractBidi (const char utf8[], int utf8Units, TextDirection dir, std::vector< BidiRegion > *bidiRegions)
 
static SkString convertUtf16ToUtf8 (const char16_t *utf16, int utf16Units)
 
static SkString convertUtf16ToUtf8 (const std::u16string &utf16)
 
static std::u16string convertUtf8ToUtf16 (const char *utf8, int utf8Units)
 
static std::u16string convertUtf8ToUtf16 (const SkString &utf8)
 
template<typename Appender8 , typename Appender16 >
static bool extractUtfConversionMapping (SkSpan< const char > utf8, Appender8 &&appender8, Appender16 &&appender16)
 

Detailed Description

Definition at line 77 of file SkUnicode.h.

Member Typedef Documentation

◆ BidiLevel

typedef uint8_t SkUnicode::BidiLevel

Definition at line 99 of file SkUnicode.h.

◆ Position

typedef size_t SkUnicode::Position

Definition at line 98 of file SkUnicode.h.

Member Enumeration Documentation

◆ BreakType

enum class SkUnicode::BreakType
strong
Enumerator
kWords 
kGraphemes 
kLines 
kSentences 

Definition at line 112 of file SkUnicode.h.

112{ kWords, kGraphemes, kLines, kSentences };

◆ CodeUnitFlags

Enumerator
kNoCodeUnitFlag 
kPartOfWhiteSpaceBreak 
kGraphemeStart 
kSoftLineBreakBefore 
kHardLineBreakBefore 
kPartOfIntraWordBreak 
kControl 
kTabulation 
kGlyphClusterStart 
kIdeographic 
kEmoji 
kWordBreak 
kSentenceBreak 

Definition at line 79 of file SkUnicode.h.

79 {
80 kNoCodeUnitFlag = 0x00,
82 kGraphemeStart = 0x02,
86 kControl = 0x20,
87 kTabulation = 0x40,
88 kGlyphClusterStart = 0x80,
89 kIdeographic = 0x100,
90 kEmoji = 0x200,
91 kWordBreak = 0x400,
92 kSentenceBreak = 0x800,
93 };
@ kNoCodeUnitFlag
Definition: SkUnicode.h:80
@ kPartOfWhiteSpaceBreak
Definition: SkUnicode.h:81
@ kHardLineBreakBefore
Definition: SkUnicode.h:84
@ kTabulation
Definition: SkUnicode.h:87
@ kGraphemeStart
Definition: SkUnicode.h:82
@ kSentenceBreak
Definition: SkUnicode.h:92
@ kGlyphClusterStart
Definition: SkUnicode.h:88
@ kControl
Definition: SkUnicode.h:86
@ kIdeographic
Definition: SkUnicode.h:89
@ kWordBreak
Definition: SkUnicode.h:91
@ kSoftLineBreakBefore
Definition: SkUnicode.h:83
@ kPartOfIntraWordBreak
Definition: SkUnicode.h:85

◆ LineBreakType

enum class SkUnicode::LineBreakType
strong
Enumerator
kSoftLineBreak 
kHardLineBreak 

Definition at line 107 of file SkUnicode.h.

107 {
108 kSoftLineBreak = 0,
109 kHardLineBreak = 100,
110 };

◆ TextDirection

enum class SkUnicode::TextDirection
strong
Enumerator
kLTR 
kRTL 

Definition at line 94 of file SkUnicode.h.

94 {
95 kLTR,
96 kRTL,
97 };

Constructor & Destructor Documentation

◆ ~SkUnicode()

SkUnicode::~SkUnicode ( )
overridedefault

Member Function Documentation

◆ computeCodeUnitFlags() [1/2]

virtual bool SkUnicode::computeCodeUnitFlags ( char  utf8[],
int  utf8Units,
bool  replaceTabs,
skia_private::TArray< SkUnicode::CodeUnitFlags, true > *  results 
)
pure virtual

◆ computeCodeUnitFlags() [2/2]

virtual bool SkUnicode::computeCodeUnitFlags ( char16_t  utf16[],
int  utf16Units,
bool  replaceTabs,
skia_private::TArray< SkUnicode::CodeUnitFlags, true > *  results 
)
pure virtual

◆ convertUtf16ToUtf8() [1/2]

SkString SkUnicode::convertUtf16ToUtf8 ( const char16_t *  utf16,
int  utf16Units 
)
static

Definition at line 14 of file SkUnicode.cpp.

14 {
15
16 int utf8Units = SkUTF::UTF16ToUTF8(nullptr, 0, (uint16_t*)utf16, utf16Units);
17 if (utf8Units < 0) {
18 SkDEBUGF("Convert error: Invalid utf16 input");
19 return SkString();
20 }
21 AutoTArray<char> utf8(utf8Units);
22 SkDEBUGCODE(int dstLen =) SkUTF::UTF16ToUTF8(utf8.data(), utf8Units, (uint16_t*)utf16, utf16Units);
23 SkASSERT(dstLen == utf8Units);
24
25 return SkString(utf8.data(), utf8Units);
26}
#define SkASSERT(cond)
Definition: SkAssert.h:116
#define SkDEBUGF(...)
Definition: SkDebug.h:24
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
Definition: SkUTF.h:13
SK_SPI int UTF16ToUTF8(char dst[], int dstCapacity, const uint16_t src[], size_t srcLength)
Definition: SkUTF.cpp:291
std::string UTF16ToUTF8(std::u16string src)
Definition: string_utils.cc:71
std::shared_ptr< const fml::Mapping > data
Definition: texture_gles.cc:63

◆ convertUtf16ToUtf8() [2/2]

SkString SkUnicode::convertUtf16ToUtf8 ( const std::u16string &  utf16)
static

Definition at line 28 of file SkUnicode.cpp.

28 {
29 return convertUtf16ToUtf8(utf16.c_str(), utf16.size());
30}
static SkString convertUtf16ToUtf8(const char16_t *utf16, int utf16Units)
Definition: SkUnicode.cpp:14

◆ convertUtf8ToUtf16() [1/2]

std::u16string SkUnicode::convertUtf8ToUtf16 ( const char *  utf8,
int  utf8Units 
)
static

Definition at line 32 of file SkUnicode.cpp.

32 {
33
34 int utf16Units = SkUTF::UTF8ToUTF16(nullptr, 0, utf8, utf8Units);
35 if (utf16Units < 0) {
36 SkDEBUGF("Convert error: Invalid utf8 input");
37 return std::u16string();
38 }
39
40 AutoTArray<uint16_t> utf16(utf16Units);
41 SkDEBUGCODE(int dstLen =) SkUTF::UTF8ToUTF16(utf16.data(), utf16Units, utf8, utf8Units);
42 SkASSERT(dstLen == utf16Units);
43
44 return std::u16string((char16_t *)utf16.data(), utf16Units);
45}
SK_SPI int UTF8ToUTF16(uint16_t dst[], int dstCapacity, const char src[], size_t srcByteLength)
Definition: SkUTF.cpp:259
std::u16string UTF8ToUTF16(std::string src)
Definition: string_utils.cc:67
Definition: ref_ptr.h:256

◆ convertUtf8ToUtf16() [2/2]

std::u16string SkUnicode::convertUtf8ToUtf16 ( const SkString utf8)
static

Definition at line 47 of file SkUnicode.cpp.

47 {
48 return convertUtf8ToUtf16(utf8.c_str(), utf8.size());
49}
static std::u16string convertUtf8ToUtf16(const char *utf8, int utf8Units)
Definition: SkUnicode.cpp:32

◆ extractBidi()

static bool SkUnicode::extractBidi ( const char  utf8[],
int  utf8Units,
TextDirection  dir,
std::vector< BidiRegion > *  bidiRegions 
)
static

◆ extractUtfConversionMapping()

template<typename Appender8 , typename Appender16 >
static bool SkUnicode::extractUtfConversionMapping ( SkSpan< const char >  utf8,
Appender8 &&  appender8,
Appender16 &&  appender16 
)
inlinestatic

Definition at line 193 of file SkUnicode.h.

193 {
194 size_t size8 = 0;
195 size_t size16 = 0;
196 auto ptr = utf8.begin();
197 auto end = utf8.end();
198 while (ptr < end) {
199
200 size_t index = SkToSizeT(ptr - utf8.begin());
201 SkUnichar u = SkUTF::NextUTF8(&ptr, end);
202
203 // All UTF8 code units refer to the same codepoint
204 size_t next = SkToSizeT(ptr - utf8.begin());
205 for (auto i = index; i < next; ++i) {
206 //fUTF16IndexForUTF8Index.emplace_back(fUTF8IndexForUTF16Index.size());
207 appender16(size8);
208 ++size16;
209 }
210 //SkASSERT(fUTF16IndexForUTF8Index.size() == next);
211 SkASSERT(size16 == next);
212 if (size16 != next) {
213 return false;
214 }
215
216 // One or two UTF16 code units refer to the same codepoint
217 uint16_t buffer[2];
218 size_t count = SkUTF::ToUTF16(u, buffer);
219 //fUTF8IndexForUTF16Index.emplace_back(index);
220 appender8(index);
221 ++size8;
222 if (count > 1) {
223 //fUTF8IndexForUTF16Index.emplace_back(index);
224 appender8(index);
225 ++size8;
226 }
227 }
228 //fUTF16IndexForUTF8Index.emplace_back(fUTF8IndexForUTF16Index.size());
229 appender16(size8);
230 ++size16;
231 //fUTF8IndexForUTF16Index.emplace_back(fText.size());
232 appender8(utf8.size());
233 ++size8;
234
235 return true;
236 }
int count
Definition: FontMgrTest.cpp:50
static float next(float f)
constexpr size_t SkToSizeT(S x)
Definition: SkTo.h:31
int32_t SkUnichar
Definition: SkTypes.h:175
glong glong end
SK_SPI SkUnichar NextUTF8(const char **ptr, const char *end)
Definition: SkUTF.cpp:118
SK_SPI size_t ToUTF16(SkUnichar uni, uint16_t utf16[2]=nullptr)
Definition: SkUTF.cpp:243
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer
Definition: switches.h:126

◆ forEachBidiRegion()

template<typename Callback >
void SkUnicode::forEachBidiRegion ( const uint16_t  utf16[],
int  utf16Units,
SkBidiIterator::Direction  dir,
Callback &&  callback 
)
inline

Definition at line 266 of file SkUnicode.h.

266 {
267 auto iter = makeBidiIterator(utf16, utf16Units, dir);
268 const uint16_t* start16 = utf16;
269 const uint16_t* end16 = utf16 + utf16Units;
270 SkBidiIterator::Level currentLevel = 0;
271
272 SkBidiIterator::Position pos16 = 0;
273 while (pos16 <= iter->getLength()) {
274 auto level = iter->getLevelAt(pos16);
275 if (pos16 == 0) {
276 currentLevel = level;
277 } else if (level != currentLevel) {
278 callback(pos16, start16 - utf16, currentLevel);
279 currentLevel = level;
280 }
281 if (start16 == end16) {
282 break;
283 }
284 SkUnichar u = SkUTF::NextUTF16(&start16, end16);
285 pos16 += SkUTF::ToUTF16(u);
286 }
287 }
int32_t Position
Definition: SkUnicode.h:45
uint8_t Level
Definition: SkUnicode.h:46
virtual std::unique_ptr< SkBidiIterator > makeBidiIterator(const uint16_t text[], int count, SkBidiIterator::Direction)=0
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
SK_SPI SkUnichar NextUTF16(const uint16_t **ptr, const uint16_t *end)
Definition: SkUTF.cpp:159
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace Enable an endless trace buffer The default is a ring buffer This is useful when very old events need to viewed For during application launch Memory usage will continue to grow indefinitely however Start app with an specific route defined on the framework flutter assets dir
Definition: switches.h:145

◆ forEachBreak()

template<typename Callback >
void SkUnicode::forEachBreak ( const char16_t  utf16[],
int  utf16Units,
SkUnicode::BreakType  type,
Callback &&  callback 
)
inline

Definition at line 290 of file SkUnicode.h.

290 {
291 auto iter = makeBreakIterator(type);
292 iter->setText(utf16, utf16Units);
293 auto pos = iter->first();
294 do {
295 callback(pos, iter->status());
296 pos = iter->next();
297 } while (!iter->isDone());
298 }
SkPoint pos
GLenum type
virtual std::unique_ptr< SkBreakIterator > makeBreakIterator(const char locale[], BreakType breakType)=0

◆ forEachCodepoint() [1/2]

template<typename Callback >
void SkUnicode::forEachCodepoint ( const char *  utf8,
int32_t  utf8Units,
Callback &&  callback 
)
inline

Definition at line 239 of file SkUnicode.h.

239 {
240 const char* current = utf8;
241 const char* end = utf8 + utf8Units;
242 while (current < end) {
243 auto before = current - utf8;
244 SkUnichar unichar = SkUTF::NextUTF8(&current, end);
245 if (unichar < 0) unichar = 0xFFFD;
246 auto after = current - utf8;
247 uint16_t buffer[2];
248 size_t count = SkUTF::ToUTF16(unichar, buffer);
249 callback(unichar, before, after, count);
250 }
251 }

◆ forEachCodepoint() [2/2]

template<typename Callback >
void SkUnicode::forEachCodepoint ( const char16_t *  utf16,
int32_t  utf16Units,
Callback &&  callback 
)
inline

Definition at line 254 of file SkUnicode.h.

254 {
255 const char16_t* current = utf16;
256 const char16_t* end = utf16 + utf16Units;
257 while (current < end) {
258 auto before = current - utf16;
259 SkUnichar unichar = SkUTF::NextUTF16((const uint16_t**)&current, (const uint16_t*)end);
260 auto after = current - utf16;
261 callback(unichar, before, after);
262 }
263 }

◆ getBidiRegions()

virtual bool SkUnicode::getBidiRegions ( const char  utf8[],
int  utf8Units,
TextDirection  dir,
std::vector< BidiRegion > *  results 
)
pure virtual

◆ getSentences()

virtual bool SkUnicode::getSentences ( const char  utf8[],
int  utf8Units,
const char *  locale,
std::vector< Position > *  results 
)
pure virtual

◆ getUtf8Words()

virtual bool SkUnicode::getUtf8Words ( const char  utf8[],
int  utf8Units,
const char *  locale,
std::vector< Position > *  results 
)
pure virtual

◆ getWords()

virtual bool SkUnicode::getWords ( const char  utf8[],
int  utf8Units,
const char *  locale,
std::vector< Position > *  results 
)
pure virtual

◆ hasControlFlag()

bool SkUnicode::hasControlFlag ( SkUnicode::CodeUnitFlags  flags)
static

Definition at line 67 of file SkUnicode.cpp.

67 {
69}
FlutterSemanticsFlag flags

◆ hasGraphemeStartFlag()

bool SkUnicode::hasGraphemeStartFlag ( SkUnicode::CodeUnitFlags  flags)
static

Definition at line 63 of file SkUnicode.cpp.

◆ hasHardLineBreakFlag()

bool SkUnicode::hasHardLineBreakFlag ( SkUnicode::CodeUnitFlags  flags)
static

Definition at line 55 of file SkUnicode.cpp.

◆ hasPartOfWhiteSpaceBreakFlag()

bool SkUnicode::hasPartOfWhiteSpaceBreakFlag ( SkUnicode::CodeUnitFlags  flags)
static

Definition at line 71 of file SkUnicode.cpp.

◆ hasSoftLineBreakFlag()

bool SkUnicode::hasSoftLineBreakFlag ( SkUnicode::CodeUnitFlags  flags)
static

Definition at line 59 of file SkUnicode.cpp.

◆ hasTabulationFlag()

bool SkUnicode::hasTabulationFlag ( SkUnicode::CodeUnitFlags  flags)
static

Definition at line 51 of file SkUnicode.cpp.

◆ isControl()

virtual bool SkUnicode::isControl ( SkUnichar  utf8)
pure virtual

◆ isEmoji()

virtual bool SkUnicode::isEmoji ( SkUnichar  utf8)
pure virtual

Returns if a code point may start an emoji sequence. Returns true for '#', '*', and '0'-'9' since they may start an emoji sequence. To determine if a list of code points begins with an emoji sequence, use getEmojiSequence.

Implemented in SkUnicodeHardCodedCharProperties, and SkUnicode_icu4x.

◆ isEmojiComponent()

virtual bool SkUnicode::isEmojiComponent ( SkUnichar  utf8)
pure virtual

◆ isEmojiModifier()

virtual bool SkUnicode::isEmojiModifier ( SkUnichar  utf8)
pure virtual

◆ isEmojiModifierBase()

virtual bool SkUnicode::isEmojiModifierBase ( SkUnichar  utf8)
pure virtual

◆ isHardBreak()

virtual bool SkUnicode::isHardBreak ( SkUnichar  utf8)
pure virtual

◆ isIdeographic()

virtual bool SkUnicode::isIdeographic ( SkUnichar  utf8)
pure virtual

◆ isRegionalIndicator()

virtual bool SkUnicode::isRegionalIndicator ( SkUnichar  utf8)
pure virtual

◆ isSpace()

virtual bool SkUnicode::isSpace ( SkUnichar  utf8)
pure virtual

◆ isTabulation()

virtual bool SkUnicode::isTabulation ( SkUnichar  utf8)
pure virtual

◆ isWhitespace()

virtual bool SkUnicode::isWhitespace ( SkUnichar  utf8)
pure virtual

◆ makeBidiIterator() [1/2]

virtual std::unique_ptr< SkBidiIterator > SkUnicode::makeBidiIterator ( const char  text[],
int  count,
SkBidiIterator::Direction   
)
pure virtual

◆ makeBidiIterator() [2/2]

virtual std::unique_ptr< SkBidiIterator > SkUnicode::makeBidiIterator ( const uint16_t  text[],
int  count,
SkBidiIterator::Direction   
)
pure virtual

◆ makeBreakIterator() [1/2]

virtual std::unique_ptr< SkBreakIterator > SkUnicode::makeBreakIterator ( BreakType  type)
pure virtual

◆ makeBreakIterator() [2/2]

virtual std::unique_ptr< SkBreakIterator > SkUnicode::makeBreakIterator ( const char  locale[],
BreakType  breakType 
)
pure virtual

◆ reorderVisual()

virtual void SkUnicode::reorderVisual ( const BidiLevel  runLevels[],
int  levelsCount,
int32_t  logicalFromVisual[] 
)
pure virtual

◆ toUpper() [1/2]

virtual SkString SkUnicode::toUpper ( const SkString )
pure virtual

◆ toUpper() [2/2]

virtual SkString SkUnicode::toUpper ( const SkString ,
const char *  locale 
)
pure virtual

The documentation for this class was generated from the following files: