diff options
author | Raph Levien <raph@google.com> | 2014-06-04 14:48:02 -0700 |
---|---|---|
committer | Raph Levien <raph@google.com> | 2014-06-05 11:01:21 -0700 |
commit | 6bfd7e7df3a9f9ea2f9e57a3552eed7f518be711 (patch) | |
tree | 7a77072e57ab296d649765f7865b5a1cf8a1094c /core/jni/android/graphics/MinikinUtils.cpp | |
parent | e95b5850ac2e56330abf68362451e7614b3dfe16 (diff) | |
download | frameworks_base-6bfd7e7df3a9f9ea2f9e57a3552eed7f518be711.zip frameworks_base-6bfd7e7df3a9f9ea2f9e57a3552eed7f518be711.tar.gz frameworks_base-6bfd7e7df3a9f9ea2f9e57a3552eed7f518be711.tar.bz2 |
Support for context in Minikin shaping
This patch uses the Minikin's new doLayout API that supports context,
and has some simple refactoring (pass css as string rather than setting
on the Layout object) to use this api.
Change-Id: I899474f81d377f3106e95ee3eb8d0fcc44c23ac2
Diffstat (limited to 'core/jni/android/graphics/MinikinUtils.cpp')
-rw-r--r-- | core/jni/android/graphics/MinikinUtils.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/jni/android/graphics/MinikinUtils.cpp b/core/jni/android/graphics/MinikinUtils.cpp index 146bc3d9..a9360ea 100644 --- a/core/jni/android/graphics/MinikinUtils.cpp +++ b/core/jni/android/graphics/MinikinUtils.cpp @@ -16,6 +16,7 @@ #define LOG_TAG "Minikin" #include <cutils/log.h> +#include <string> #include "SkPaint.h" #include "minikin/Layout.h" @@ -36,8 +37,8 @@ static int snprintfcat(char* buf, int off, int size, const char* format, ...) { return off + n; } -void MinikinUtils::SetLayoutProperties(Layout* layout, const SkPaint* paint, int flags, - TypefaceImpl* typeface) { +std::string MinikinUtils::setLayoutProperties(Layout* layout, const SkPaint* paint, int bidiFlags, + TypefaceImpl* typeface) { TypefaceImpl* resolvedFace = TypefaceImpl_resolveDefault(typeface); layout->setFontCollection(resolvedFace->fFontCollection); FontStyle style = resolvedFace->fStyle; @@ -51,13 +52,14 @@ void MinikinUtils::SetLayoutProperties(Layout* layout, const SkPaint* paint, int MinikinFontSkia::packPaintFlags(paint), style.getWeight() * 100, style.getItalic() ? "italic" : "normal", - flags); + bidiFlags); SkString langString = paint->getPaintOptionsAndroid().getLanguage().getTag(); off = snprintfcat(css, off, sizeof(css), " lang: %s;", langString.c_str()); SkPaintOptionsAndroid::FontVariant var = paint->getPaintOptionsAndroid().getFontVariant(); const char* varstr = var == SkPaintOptionsAndroid::kElegant_Variant ? "elegant" : "compact"; off = snprintfcat(css, off, sizeof(css), " -minikin-variant: %s;", varstr); layout->setProperties(css); + return std::string(css); } float MinikinUtils::xOffsetForTextAlign(SkPaint* paint, const Layout& layout) { |