mirror of
https://github.com/love2d/love-android.git
synced 2026-08-19 12:14:49 +02:00
should fix the crash on startup
This commit is contained in:
@@ -32,18 +32,22 @@ namespace android
|
|||||||
|
|
||||||
double getScreenScale()
|
double getScreenScale()
|
||||||
{
|
{
|
||||||
JNIEnv *env = (JNIEnv*) SDL_AndroidGetJNIEnv();
|
static double result = -1.;
|
||||||
|
|
||||||
jclass activity = (jclass) SDL_AndroidGetActivity();
|
if (result == -1.) {
|
||||||
jmethodID getMetrics = env->GetStaticMethodID(activity, "getMetrics", "()Landroid/util/DisplayMetrics;");
|
JNIEnv *env = (JNIEnv*) SDL_AndroidGetJNIEnv();
|
||||||
jobject metrics = env->CallStaticObjectMethod(activity, getMetrics);
|
jclass activity = env->FindClass("org/libsdl/app/SDLActivity");
|
||||||
jclass metricsClass = env->GetObjectClass(metrics);
|
|
||||||
|
|
||||||
double result = env->GetFloatField(metrics, env->GetFieldID(metricsClass, "density", "F"));
|
jmethodID getMetrics = env->GetStaticMethodID(activity, "getMetrics", "()Landroid/util/DisplayMetrics;");
|
||||||
|
jobject metrics = env->CallStaticObjectMethod(activity, getMetrics);
|
||||||
|
jclass metricsClass = env->GetObjectClass(metrics);
|
||||||
|
|
||||||
env->DeleteLocalRef (metricsClass);
|
result = env->GetFloatField(metrics, env->GetFieldID(metricsClass, "density", "F"));
|
||||||
env->DeleteLocalRef (metrics);
|
|
||||||
env->DeleteLocalRef (activity);
|
env->DeleteLocalRef (metricsClass);
|
||||||
|
env->DeleteLocalRef (metrics);
|
||||||
|
env->DeleteLocalRef (activity);
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import android.view.inputmethod.InputConnection;
|
|||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.AbsoluteLayout;
|
import android.widget.AbsoluteLayout;
|
||||||
import android.os.*;
|
import android.os.*;
|
||||||
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.graphics.*;
|
import android.graphics.*;
|
||||||
import android.media.*;
|
import android.media.*;
|
||||||
@@ -53,6 +54,11 @@ public class SDLActivity extends Activity {
|
|||||||
System.loadLibrary("love");
|
System.loadLibrary("love");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static DisplayMetrics metrics = new DisplayMetrics();
|
||||||
|
public static DisplayMetrics getMetrics() {
|
||||||
|
return metrics;
|
||||||
|
}
|
||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -79,6 +85,8 @@ public class SDLActivity extends Activity {
|
|||||||
mLayout.addView(mSurface);
|
mLayout.addView(mSurface);
|
||||||
|
|
||||||
setContentView(mLayout);
|
setContentView(mLayout);
|
||||||
|
|
||||||
|
getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
|
|||||||
@@ -1,22 +1,11 @@
|
|||||||
package org.love2d.android;
|
package org.love2d.android;
|
||||||
|
|
||||||
import org.libsdl.app.SDLActivity;
|
import org.libsdl.app.SDLActivity;
|
||||||
import android.util.DisplayMetrics;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
public class GameActivity extends SDLActivity {
|
public class GameActivity extends SDLActivity {
|
||||||
|
|
||||||
private static DisplayMetrics metrics = new DisplayMetrics();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DisplayMetrics getMetrics() {
|
|
||||||
return metrics;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user