summaryrefslogtreecommitdiffstats
path: root/core/jni/android/graphics/MinikinUtils.cpp
diff options
context:
space:
mode:
authorRaph Levien <raph@google.com>2014-06-04 14:48:02 -0700
committerRaph Levien <raph@google.com>2014-06-05 11:01:21 -0700
commit6bfd7e7df3a9f9ea2f9e57a3552eed7f518be711 (patch)
tree7a77072e57ab296d649765f7865b5a1cf8a1094c /core/jni/android/graphics/MinikinUtils.cpp
parente95b5850ac2e56330abf68362451e7614b3dfe16 (diff)
downloadframeworks_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.cpp8
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) {