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

Commit 8a389a58 authored by Seigo Nonaka's avatar Seigo Nonaka Committed by Android (Google) Code Review
Browse files

Revert "Cache the layout result if the font feature is specified"

Revert submission 25211873-font_feature_cache

Reason for revert: accessing feature flag in native causes the peformance regression.

Reverted changes: /q/submissionid:25211873-font_feature_cache

Change-Id: I1f4b619c827d2968fd8b75aa05f65a2ed89b62a2
parent 525e7e40
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -75,10 +75,3 @@ flag {
  description: "A feature flag that implements line break word style auto."
  bug: "280005585"
}

flag {
  name: "inter_character_justification"
  namespace: "text"
  description: "A feature flag that implement inter character justification."
  bug: "283193133"
}
+11 −15
Original line number Diff line number Diff line
@@ -17,18 +17,18 @@
#ifndef ANDROID_GRAPHICS_PAINT_H_
#define ANDROID_GRAPHICS_PAINT_H_

#include "Typeface.h"

#include <cutils/compiler.h>

#include <SkFont.h>
#include <SkPaint.h>
#include <SkSamplingOptions.h>
#include <cutils/compiler.h>
#include <minikin/FamilyVariant.h>
#include <minikin/FontFamily.h>
#include <minikin/FontFeature.h>
#include <minikin/Hyphenator.h>

#include <string>

#include "Typeface.h"
#include <minikin/FontFamily.h>
#include <minikin/FamilyVariant.h>
#include <minikin/Hyphenator.h>

namespace android {

@@ -82,15 +82,11 @@ public:

    float getWordSpacing() const { return mWordSpacing; }

    void setFontFeatureSettings(std::string_view fontFeatures) {
        mFontFeatureSettings = minikin::FontFeature::parse(fontFeatures);
    void setFontFeatureSettings(const std::string& fontFeatureSettings) {
        mFontFeatureSettings = fontFeatureSettings;
    }

    void resetFontFeatures() { mFontFeatureSettings.clear(); }

    const std::vector<minikin::FontFeature>& getFontFeatureSettings() const {
        return mFontFeatureSettings;
    }
    std::string getFontFeatureSettings() const { return mFontFeatureSettings; }

    void setMinikinLocaleListId(uint32_t minikinLocaleListId) {
        mMinikinLocaleListId = minikinLocaleListId;
@@ -174,7 +170,7 @@ private:

    float mLetterSpacing = 0;
    float mWordSpacing = 0;
    std::vector<minikin::FontFeature> mFontFeatureSettings;
    std::string mFontFeatureSettings;
    uint32_t mMinikinLocaleListId;
    std::optional<minikin::FamilyVariant> mFamilyVariant;
    uint32_t mHyphenEdit = 0;
+2 −4
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@
#include <cassert>
#include <cstring>
#include <memory>
#include <string_view>
#include <vector>

#include "ColorFilter.h"
@@ -691,11 +690,10 @@ namespace PaintGlue {
                                       jstring settings) {
        Paint* paint = reinterpret_cast<Paint*>(paintHandle);
        if (!settings) {
            paint->resetFontFeatures();
            paint->setFontFeatureSettings(std::string());
        } else {
            ScopedUtfChars settingsChars(env, settings);
            paint->setFontFeatureSettings(
                    std::string_view(settingsChars.c_str(), settingsChars.size()));
            paint->setFontFeatureSettings(std::string(settingsChars.c_str(), settingsChars.size()));
        }
    }