widget/android/GeckoVRManager.h
author Martin Stransky <stransky@redhat.com>
Thu, 01 Feb 2018 13:56:15 +0100
changeset 750088 c8b0466bc1d0f3c2ed42a71ce127c36c9185477f
parent 694463 7a2400c118327b0639e28cd2939b2b4eea5b3319
child 803893 93ba1d1fac50d8d9bb1b71f87c0e35fbaf2ba063
child 804527 66a3146a7fce62c513aa0fec48a0a4b62a839881
permissions -rw-r--r--
Bug 1434565 - Put some meanigful timestamp to nsRemoteService::HandleCommandLine(), r?jhorak We need to put a timestamp to nsRemoteService::HandleCommandLine() to allow Gtk+ focus opened Firefox window. Unfortunately we don't have much choice how to get the timestamp at DBUS remote service so ask for gtk_get_current_event_time() and when GDK_CURRENT_TIME is returned (it means we don't have the timestamp) use g_get_monotonic_time() as well as at nsWindow::GetEventTimeStamp(). MozReview-Commit-ID: 9ilVZ0kPe3x

/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_GeckoVRManager_h_
#define mozilla_GeckoVRManager_h_

#include "GeneratedJNINatives.h"
#include "mozilla/jni/Utils.h"

#if defined(MOZ_ANDROID_GOOGLE_VR)
#include "gfxVRGVRAPI.h"
extern bool SetupGVRJNI(JNIEnv* env);
#endif // defined(MOZ_ANDROID_GOOGLE_VR)

namespace mozilla {

class GeckoVRManager
    : public mozilla::java::GeckoVRManager::Natives<mozilla::GeckoVRManager>
{
  typedef mozilla::java::GeckoVRManager::Natives<mozilla::GeckoVRManager> Super;
public:
  static void Init()
  {
    Super::Init();
#if defined(MOZ_ANDROID_GOOGLE_VR)
    SetupGVRJNI(jni::GetGeckoThreadEnv());
#endif // defined(MOZ_ANDROID_GOOGLE_VR)
  }

  static void SetGVRPresentingContext(const int64_t aContext)
  {
#if defined(MOZ_ANDROID_GOOGLE_VR)
    mozilla::gfx::SetGVRPresentingContext((void*)aContext);
#endif // defined(MOZ_ANDROID_GOOGLE_VR)
  }

  static void CleanupGVRNonPresentingContext()
  {
#if defined(MOZ_ANDROID_GOOGLE_VR)
    mozilla::gfx::CleanupGVRNonPresentingContext();
#endif // defined(MOZ_ANDROID_GOOGLE_VR)
  }

  static void SetGVRPaused(const bool aPaused)
  {
#if defined(MOZ_ANDROID_GOOGLE_VR)
    mozilla::gfx::SetGVRPaused(aPaused);
#endif // defined(MOZ_ANDROID_GOOGLE_VR)
  }

  static void* CreateGVRNonPresentingContext()
  {
    return (void*)mozilla::java::GeckoVRManager::CreateGVRNonPresentingContext();
  }

  static void DestroyGVRNonPresentingContext()
  {
    mozilla::java::GeckoVRManager::DestroyGVRNonPresentingContext();
  }

  static void EnableVRMode()
  {
    mozilla::java::GeckoVRManager::EnableVRMode();
  }

  static void DisableVRMode()
  {
    mozilla::java::GeckoVRManager::DisableVRMode();
  }

  static bool IsGVRPresent()
  {
    return mozilla::java::GeckoVRManager::IsGVRPresent();
  }

};

} // namespace mozilla

#endif // mozilla_GeckoVRManager_h_