diff options
Diffstat (limited to 'core/jni/android/graphics/Graphics.cpp')
-rw-r--r-- | core/jni/android/graphics/Graphics.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp index e4c74b2..ed28c24 100644 --- a/core/jni/android/graphics/Graphics.cpp +++ b/core/jni/android/graphics/Graphics.cpp @@ -167,6 +167,7 @@ static jfieldID gCanvas_nativeInstanceID; static jclass gPaint_class; static jfieldID gPaint_nativeInstanceID; +static jfieldID gPaint_nativeTypefaceID; static jclass gPicture_class; static jfieldID gPicture_nativeInstanceID; @@ -334,6 +335,16 @@ SkPaint* GraphicsJNI::getNativePaint(JNIEnv* env, jobject paint) { return p; } +android::TypefaceImpl* GraphicsJNI::getNativeTypeface(JNIEnv* env, jobject paint) { + SkASSERT(env); + SkASSERT(paint); + SkASSERT(env->IsInstanceOf(paint, gPaint_class)); + jlong typefaceHandle = env->GetLongField(paint, gPaint_nativeTypefaceID); + android::TypefaceImpl* p = reinterpret_cast<android::TypefaceImpl*>(typefaceHandle); + SkASSERT(p); + return p; +} + SkPicture* GraphicsJNI::getNativePicture(JNIEnv* env, jobject picture) { SkASSERT(env); @@ -698,6 +709,7 @@ int register_android_graphics_Graphics(JNIEnv* env) gPaint_class = make_globalref(env, "android/graphics/Paint"); gPaint_nativeInstanceID = getFieldIDCheck(env, gPaint_class, "mNativePaint", "J"); + gPaint_nativeTypefaceID = getFieldIDCheck(env, gPaint_class, "mNativeTypeface", "J"); gPicture_class = make_globalref(env, "android/graphics/Picture"); gPicture_nativeInstanceID = getFieldIDCheck(env, gPicture_class, "mNativePicture", "J"); |