diff --git a/code/mobile/android/PhoneVR/app/src/main/cpp/alvr_main.cpp b/code/mobile/android/PhoneVR/app/src/main/cpp/alvr_main.cpp index 7c6e9176..0fe068b4 100644 --- a/code/mobile/android/PhoneVR/app/src/main/cpp/alvr_main.cpp +++ b/code/mobile/android/PhoneVR/app/src/main/cpp/alvr_main.cpp @@ -168,14 +168,14 @@ void inputThread() { // } extern "C" JNIEXPORT void JNICALL Java_viritualisres_phonevr_ALVRActivity_initializeNative( - JNIEnv *env, jobject obj, jint screenWidth, jint screenHeight) { + JNIEnv *env, jobject obj, jint screenWidth, jint screenHeight, jfloat refreshRate) { CTX.javaVm = jVM; CTX.javaContext = env->NewGlobalRef(obj); uint32_t viewWidth = std::max(screenWidth, screenHeight) / 2; uint32_t viewHeight = std::min(screenWidth, screenHeight); - float refreshRatesBuffer[1] = {60.f}; + float refreshRatesBuffer[1] = {refreshRate }; alvr_initialize((void *) CTX.javaVm, (void *) CTX.javaContext, diff --git a/code/mobile/android/PhoneVR/app/src/main/java/viritualisres/phonevr/ALVRActivity.java b/code/mobile/android/PhoneVR/app/src/main/java/viritualisres/phonevr/ALVRActivity.java index 3f8ca0b5..1724d0dc 100644 --- a/code/mobile/android/PhoneVR/app/src/main/java/viritualisres/phonevr/ALVRActivity.java +++ b/code/mobile/android/PhoneVR/app/src/main/java/viritualisres/phonevr/ALVRActivity.java @@ -16,6 +16,7 @@ import android.provider.Settings; import android.util.DisplayMetrics; import android.util.Log; +import android.view.Display; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; @@ -97,7 +98,12 @@ public void onCreate(Bundle savedInstance) { int width = displayMetrics.widthPixels; int height = displayMetrics.heightPixels; - initializeNative(width, height); + // get refresh rate of the device + Display display = getWindowManager().getDefaultDisplay(); + float refreshRate = display.getRefreshRate(); + Log.i(TAG, "Refresh rate: " + refreshRate); + + initializeNative(width, height, refreshRate); setContentView(R.layout.activity_vr); glView = findViewById(R.id.surface_view); @@ -248,7 +254,8 @@ private void setImmersiveSticky() { | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); } - private native void initializeNative(int screenWidth, int screenHeight); + private native void initializeNative( + int screenWidth, int screenHeight, float screenRefreshRate); private native void destroyNative();