Index: chrome/browser/android/vr_shell/vr_shell_delegate.h |
diff --git a/chrome/browser/android/vr_shell/vr_shell_delegate.h b/chrome/browser/android/vr_shell/vr_shell_delegate.h |
index 3731bb2f7972489e448db590fe0c1d245c7dc6e3..1be56a3a7eb0e14569cb03dd865605818c7eef1e 100644 |
--- a/chrome/browser/android/vr_shell/vr_shell_delegate.h |
+++ b/chrome/browser/android/vr_shell/vr_shell_delegate.h |
@@ -8,6 +8,7 @@ |
#include <jni.h> |
#include "base/android/jni_weak_ref.h" |
+#include "base/callback.h" |
#include "base/macros.h" |
#include "device/vr/android/gvr/gvr_delegate.h" |
@@ -17,6 +18,8 @@ class GvrDeviceProvider; |
namespace vr_shell { |
+class NonPresentingGvrDelegate; |
+ |
class VrShellDelegate : public device::GvrDelegateProvider { |
public: |
VrShellDelegate(JNIEnv* env, jobject obj); |
@@ -27,12 +30,23 @@ class VrShellDelegate : public device::GvrDelegateProvider { |
void SetDelegate(device::GvrDelegate* delegate); |
void RemoveDelegate(); |
- void SetPresentResult(JNIEnv* env, jobject obj, jboolean result); |
- void DisplayActivate(JNIEnv* env, jobject obj); |
+ void SetPresentResult(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& obj, |
+ jboolean result); |
+ void DisplayActivate(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& obj); |
+ void UpdateVSyncInterval(JNIEnv* env, |
+ const base::android::JavaParamRef<jobject>& obj, |
+ jlong timebase_nanos, jdouble interval_seconds); |
+ void OnPause(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
+ void OnResume(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
void ForceExitVr(); |
device::GvrDeviceProvider* device_provider() { return device_provider_; } |
+ void OnVRVsyncProviderRequest(device::mojom::VRVSyncProviderRequest request); |
+ base::WeakPtr<VrShellDelegate> GetWeakPtr(); |
+ private: |
// device::GvrDelegateProvider implementation |
void SetDeviceProvider(device::GvrDeviceProvider* device_provider) override; |
void RequestWebVRPresent(const base::Callback<void(bool)>& callback) override; |
@@ -41,12 +55,15 @@ class VrShellDelegate : public device::GvrDelegateProvider { |
void DestroyNonPresentingDelegate() override; |
void SetListeningForActivate(bool listening) override; |
- private: |
- std::unique_ptr<device::GvrDelegate> non_presenting_delegate_; |
+ std::unique_ptr<NonPresentingGvrDelegate> non_presenting_delegate_; |
base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_delegate_; |
device::GvrDeviceProvider* device_provider_ = nullptr; |
device::GvrDelegate* delegate_ = nullptr; |
base::Callback<void(bool)> present_callback_; |
+ long timebase_nanos_ = 0; |
+ double interval_seconds_ = 0; |
+ |
+ base::WeakPtrFactory<VrShellDelegate> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(VrShellDelegate); |
}; |