blob: 766851cc1ac2260baec8535aec9b6e3513371f7b [file] [log] [blame]
/*
* Copyright 2024 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "include/private/base/SkAssert.h"
#include "modules/skunicode/src/SkBidiFactory_icu_subset.h"
#include <unicode/umachine.h>
const char* SkBidiSubsetFactory::errorName(UErrorCode status) const {
return u_errorName_skia(status);
}
SkBidiFactory::BidiCloseCallback SkBidiSubsetFactory::bidi_close_callback() const {
return ubidi_close_skia;
}
UBiDiDirection SkBidiSubsetFactory::bidi_getDirection(const UBiDi* bidi) const {
return ubidi_getDirection_skia(bidi);
}
SkBidiIterator::Position SkBidiSubsetFactory::bidi_getLength(const UBiDi* bidi) const {
return ubidi_getLength_skia(bidi);
}
SkBidiIterator::Level SkBidiSubsetFactory::bidi_getLevelAt(const UBiDi* bidi, int pos) const {
return ubidi_getLevelAt_skia(bidi, pos);
}
UBiDi* SkBidiSubsetFactory::bidi_openSized(int32_t maxLength,
int32_t maxRunCount,
UErrorCode* pErrorCode) const {
return ubidi_openSized_skia(maxLength, maxRunCount, pErrorCode);
}
void SkBidiSubsetFactory::bidi_setPara(UBiDi* bidi,
const UChar* text,
int32_t length,
UBiDiLevel paraLevel,
UBiDiLevel* embeddingLevels,
UErrorCode* status) const {
return ubidi_setPara_skia(bidi, text, length, paraLevel, embeddingLevels, status);
}
void SkBidiSubsetFactory::bidi_reorderVisual(const SkUnicode::BidiLevel runLevels[],
int levelsCount,
int32_t logicalFromVisual[]) const {
if (levelsCount == 0) {
// To avoid an assert in unicode
return;
}
SkASSERT(runLevels != nullptr);
ubidi_reorderVisual_skia(runLevels, levelsCount, logicalFromVisual);
}