From 703696bb9b6cf90beacd67546bf7acc59af01198 Mon Sep 17 00:00:00 2001 From: Pere Pujal i Carabantes Date: Sat, 4 Apr 2020 19:25:35 +0200 Subject: [PATCH] Android prints were cut at the edges. --- src/android_print.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/android_print.c b/src/android_print.c index 53ef86faf..2ff205d5e 100644 --- a/src/android_print.c +++ b/src/android_print.c @@ -65,6 +65,14 @@ const char *SurfacePrint(SDL_Surface *surface) jmethodID mInitMethod = (*mEnv)->GetMethodID(mEnv, mPrintClass, "", "(Landroid/content/Context;)V"); jobject mPrint = (*mEnv)->NewObject(mEnv, mPrintClass, mInitMethod, mContext); jmethodID mPrintMethod = (*mEnv)->GetMethodID(mEnv, mPrintClass, "printBitmap", "(Ljava/lang/String;Landroid/graphics/Bitmap;)V"); + + /* Thanks to n.collins for the explaination on the int signature + on https://stackoverflow.com/questions/13468041/android-how-to-call-java-method-from-jni-with-int-and-int-parameters --Pere */ + jmethodID msetScaleMode = (*mEnv)->GetMethodID(mEnv, mPrintClass, "setScaleMode", "(I)V"); + jfieldID mScaleModeField = (*mEnv)->GetStaticFieldID(mEnv, mPrintClass, "SCALE_MODE_FIT", "I"); + jint mScaleModeInt = (*mEnv)->GetStaticIntField(mEnv, mPrintClass, mScaleModeField); + (*mEnv)->CallVoidMethod(mEnv, mPrint, msetScaleMode, mScaleModeInt); + jstring mString = (*mEnv)->NewStringUTF(mEnv, "TuxPaint"); (*mEnv)->CallVoidMethod(mEnv, mPrint, mPrintMethod, mString, mBitMap);