summaryrefslogtreecommitdiffstats
path: root/WebKit/android/plugins/ANPPaintInterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/android/plugins/ANPPaintInterface.cpp')
-rw-r--r--WebKit/android/plugins/ANPPaintInterface.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/WebKit/android/plugins/ANPPaintInterface.cpp b/WebKit/android/plugins/ANPPaintInterface.cpp
index 2a74b7f..4b561f0 100644
--- a/WebKit/android/plugins/ANPPaintInterface.cpp
+++ b/WebKit/android/plugins/ANPPaintInterface.cpp
@@ -158,6 +158,19 @@ static int anp_getTextWidths(ANPPaint* paint, const void* text,
reinterpret_cast<SkRect*>(bounds));
}
+static float anp_getFontMetrics(ANPPaint* paint, ANPFontMetrics* metrics) {
+ SkPaint::FontMetrics fm;
+ SkScalar spacing = paint->getFontMetrics(&fm);
+ if (metrics) {
+ metrics->fTop = SkScalarToFloat(fm.fTop);
+ metrics->fAscent = SkScalarToFloat(fm.fAscent);
+ metrics->fDescent = SkScalarToFloat(fm.fDescent);
+ metrics->fBottom = SkScalarToFloat(fm.fBottom);
+ metrics->fLeading = SkScalarToFloat(fm.fLeading);
+ }
+ return SkScalarToFloat(spacing);
+}
+
///////////////////////////////////////////////////////////////////////////////
#define ASSIGN(obj, name) (obj)->name = anp_##name
@@ -195,5 +208,6 @@ void ANPPaintInterfaceV0_Init(ANPInterface* value) {
ASSIGN(i, setTypeface);
ASSIGN(i, measureText);
ASSIGN(i, getTextWidths);
+ ASSIGN(i, getFontMetrics);
}