Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 839a186f authored by Mike Reed's avatar Mike Reed
Browse files

use new SkFontMgr API

Test: make

Change-Id: I926b604fac4ad92ddf72bbec2ce937bd1d2aac6e
parent ded30a1d
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -97,21 +97,21 @@ static void FontFamily_unref(jlong familyPtr) {

static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, int ttcIndex,
        jint givenWeight, jint givenItalic) {
    uirenderer::FatVector<SkFontMgr::FontParameters::Axis, 2> skiaAxes;
    uirenderer::FatVector<SkFontArguments::Axis, 2> skiaAxes;
    for (const auto& axis : builder->axes) {
        skiaAxes.emplace_back(SkFontMgr::FontParameters::Axis{axis.axisTag, axis.value});
        skiaAxes.emplace_back(SkFontArguments::Axis{axis.axisTag, axis.value});
    }

    const size_t fontSize = data->size();
    const void* fontPtr = data->data();
    std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(std::move(data)));

    SkFontMgr::FontParameters params;
    SkFontArguments params;
    params.setCollectionIndex(ttcIndex);
    params.setAxes(skiaAxes.data(), skiaAxes.size());

    sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
    sk_sp<SkTypeface> face(fm->createFromStream(fontData.release(), params));
    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(fontData), params));
    if (face == NULL) {
        ALOGE("addFont failed to create font, invalid request");
        builder->axes.clear();
+4 −4
Original line number Diff line number Diff line
@@ -104,14 +104,14 @@ const std::vector<minikin::FontVariation>& MinikinFontSkia::GetAxes() const {

std::shared_ptr<minikin::MinikinFont> MinikinFontSkia::createFontWithVariation(
        const std::vector<minikin::FontVariation>& variations) const {
    SkFontMgr::FontParameters params;
    SkFontArguments params;

    int ttcIndex;
    SkStreamAsset* stream = mTypeface->openStream(&ttcIndex);
    std::unique_ptr<SkStreamAsset> stream(mTypeface->openStream(&ttcIndex));
    LOG_ALWAYS_FATAL_IF(stream == nullptr, "openStream failed");

    params.setCollectionIndex(ttcIndex);
    std::vector<SkFontMgr::FontParameters::Axis> skAxes;
    std::vector<SkFontArguments::Axis> skAxes;
    skAxes.resize(variations.size());
    for (size_t i = 0; i < variations.size(); i++) {
        skAxes[i].fTag = variations[i].axisTag;
@@ -119,7 +119,7 @@ std::shared_ptr<minikin::MinikinFont> MinikinFontSkia::createFontWithVariation(
    }
    params.setAxes(skAxes.data(), skAxes.size());
    sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
    sk_sp<SkTypeface> face(fm->createFromStream(stream, params));
    sk_sp<SkTypeface> face(fm->makeFromStream(std::move(stream), params));

    return std::make_shared<MinikinFontSkia>(std::move(face), mFontData, mFontSize, ttcIndex,
            variations);
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ std::shared_ptr<minikin::FontFamily> buildFamily(const char* fileName) {
            SkData::MakeWithProc(data, st.st_size, unmap, reinterpret_cast<void*>(st.st_size));
    std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(skData));
    sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault());
    sk_sp<SkTypeface> typeface(fm->createFromStream(fontData.release()));
    sk_sp<SkTypeface> typeface(fm->makeFromStream(std::move(fontData)));
    LOG_ALWAYS_FATAL_IF(typeface == nullptr, "Failed to make typeface from %s", fileName);
    std::shared_ptr<minikin::MinikinFont> font = std::make_shared<MinikinFontSkia>(
            std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>());