7#ifndef SkUnicode_icu_bidi_DEFINED
8#define SkUnicode_icu_bidi_DEFINED
13#include <unicode/ubidi.h>
14#include <unicode/umachine.h>
15#include <unicode/utypes.h>
24 std::unique_ptr<SkBidiIterator>
MakeIterator(
const uint16_t utf16[],
27 std::unique_ptr<SkBidiIterator>
MakeIterator(
const char utf8[],
33 std::vector<SkUnicode::BidiRegion>* bidiRegions)
const;
35 virtual const char*
errorName(UErrorCode status)
const = 0;
44 UErrorCode* pErrorCode)
const = 0;
49 UBiDiLevel* embeddingLevels,
50 UErrorCode* status)
const = 0;
53 int32_t logicalFromVisual[])
const = 0;
bool ExtractBidi(const char utf8[], int utf8Units, SkUnicode::TextDirection dir, std::vector< SkUnicode::BidiRegion > *bidiRegions) const
virtual void bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[], int levelsCount, int32_t logicalFromVisual[]) const =0
virtual void bidi_setPara(UBiDi *bidi, const UChar *text, int32_t length, UBiDiLevel paraLevel, UBiDiLevel *embeddingLevels, UErrorCode *status) const =0
virtual SkBidiIterator::Level bidi_getLevelAt(const UBiDi *bidi, int pos) const =0
virtual SkBidiIterator::Position bidi_getLength(const UBiDi *bidi) const =0
std::unique_ptr< SkBidiIterator > MakeIterator(const uint16_t utf16[], int utf16Units, SkBidiIterator::Direction dir) const
virtual UBiDi * bidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode *pErrorCode) const =0
virtual BidiCloseCallback bidi_close_callback() const =0
virtual UBiDiDirection bidi_getDirection(const UBiDi *bidi) const =0
virtual const char * errorName(UErrorCode status) const =0
void(*)(UBiDi *bidi) BidiCloseCallback