gfx/vr/ipc/VRParent.h
author Daosheng Mu <daoshengmu@gmail.com>
Tue, 07 Aug 2018 11:20:34 -0700
changeset 827382 401b81d450ba648d982b8e433834e5f728bd8803
child 830256 2a78cd6b8f86f9ef9fc106df415ce20c431de943
permissions -rw-r--r--
Bug 1430038 - Part 2: launch VR process and communicate with GPU process; r?kip, jimm Summary: MozReview-Commit-ID: IQZVIYVSCxe Tags: #secure-revision Differential Revision: https://phabricator.services.mozilla.com/D2877 MozReview-Commit-ID: 4sT6fqk7MpT

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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 GFX_VR_PARENT_H
#define GFX_VR_PARENT_H

#include "mozilla/gfx/PVRParent.h"

namespace mozilla {
namespace gfx {

class VRGPUParent;
class VRService;
class VRSystemManagerExternal;

class VRParent final : public PVRParent {

public:
  VRParent();
  bool Init(base::ProcessId aParentPid,
            const char* aParentBuildID,
            MessageLoop* aIOLoop,
            IPC::Channel* aChannel);
  virtual void ActorDestroy(ActorDestroyReason aWhy) override;

protected:
  virtual mozilla::ipc::IPCResult RecvNewGPUVRManager(Endpoint<PVRGPUParent>&& aEndpoint) override;
  virtual mozilla::ipc::IPCResult RecvInit(nsTArray<GfxPrefSetting>&& prefs,
                                           nsTArray<GfxVarUpdate>&& vars,
                                           const DevicePrefs& devicePrefs) override;
  virtual mozilla::ipc::IPCResult RecvNotifyVsync(const TimeStamp& aVsyncTimestamp) override;
  virtual mozilla::ipc::IPCResult RecvUpdatePref(const GfxPrefSetting& setting) override;
  virtual mozilla::ipc::IPCResult RecvUpdateVar(const GfxVarUpdate& pref) override;

private:
  RefPtr<VRGPUParent> mVRGPUParent;
};

} // namespace gfx
} // namespace mozilla

#endif // GFX_VR_PARENT_H