| 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..8067a412fdf76538cc0f11a970df54aa4783f6eb 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,22 +18,35 @@ class GvrDeviceProvider;
|
|
|
| namespace vr_shell {
|
|
|
| +class NonPresentingGvrDelegate;
|
| +
|
| class VrShellDelegate : public device::GvrDelegateProvider {
|
| public:
|
| VrShellDelegate(JNIEnv* env, jobject obj);
|
| - virtual ~VrShellDelegate();
|
| + ~VrShellDelegate() override;
|
|
|
| static VrShellDelegate* GetNativeDelegate(JNIEnv* env, jobject jdelegate);
|
|
|
| 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);
|
| };
|
|
|