diff options
Diffstat (limited to 'gfx/vr/ipc/VRManagerChild.h')
-rw-r--r-- | gfx/vr/ipc/VRManagerChild.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/gfx/vr/ipc/VRManagerChild.h b/gfx/vr/ipc/VRManagerChild.h deleted file mode 100644 index c898cd2f8..000000000 --- a/gfx/vr/ipc/VRManagerChild.h +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * vim: sw=2 ts=8 et : - */ -/* 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_GFX_VR_VRMANAGERCHILD_H -#define MOZILLA_GFX_VR_VRMANAGERCHILD_H - -#include "mozilla/gfx/PVRManagerChild.h" -#include "mozilla/ipc/SharedMemory.h" // for SharedMemory, etc -#include "ThreadSafeRefcountingWithMainThreadDestruction.h" -#include "mozilla/layers/ISurfaceAllocator.h" // for ISurfaceAllocator -#include "mozilla/layers/LayersTypes.h" // for LayersBackend -#include "mozilla/layers/TextureForwarder.h" - -namespace mozilla { -namespace dom { -class GamepadManager; -class Navigator; -class VRDisplay; -class VREventObserver; -} // namespace dom -namespace layers { -class PCompositableChild; -class TextureClient; -} -namespace gfx { -class VRLayerChild; -class VRDisplayClient; - -class VRManagerChild : public PVRManagerChild - , public layers::TextureForwarder - , public layers::KnowsCompositor -{ -public: - NS_INLINE_DECL_THREADSAFE_REFCOUNTING(VRManagerChild, override); - - TextureForwarder* GetTextureForwarder() override { return this; } - LayersIPCActor* GetLayersIPCActor() override { return this; } - - static VRManagerChild* Get(); - - // Indicate that an observer wants to receive VR events. - void AddListener(dom::VREventObserver* aObserver); - // Indicate that an observer should no longer receive VR events. - void RemoveListener(dom::VREventObserver* aObserver); - - int GetInputFrameID(); - bool GetVRDisplays(nsTArray<RefPtr<VRDisplayClient> >& aDisplays); - bool RefreshVRDisplaysWithCallback(uint64_t aWindowId); - - static void InitSameProcess(); - static void InitWithGPUProcess(Endpoint<PVRManagerChild>&& aEndpoint); - static bool InitForContent(Endpoint<PVRManagerChild>&& aEndpoint); - static bool ReinitForContent(Endpoint<PVRManagerChild>&& aEndpoint); - static void ShutDown(); - - static bool IsCreated(); - - virtual PTextureChild* CreateTexture(const SurfaceDescriptor& aSharedData, - layers::LayersBackend aLayersBackend, - TextureFlags aFlags, - uint64_t aSerial) override; - virtual void CancelWaitForRecycle(uint64_t aTextureId) override; - - PVRLayerChild* CreateVRLayer(uint32_t aDisplayID, const Rect& aLeftEyeRect, const Rect& aRightEyeRect); - - static void IdentifyTextureHost(const layers::TextureFactoryIdentifier& aIdentifier); - layers::LayersBackend GetBackendType() const; - layers::SyncObject* GetSyncObject() { return mSyncObject; } - - virtual MessageLoop* GetMessageLoop() const override { return mMessageLoop; } - virtual base::ProcessId GetParentPid() const override { return OtherPid(); } - - nsresult ScheduleFrameRequestCallback(mozilla::dom::FrameRequestCallback& aCallback, - int32_t *aHandle); - void CancelFrameRequestCallback(int32_t aHandle); - void RunFrameRequestCallbacks(); - - void UpdateDisplayInfo(nsTArray<VRDisplayInfo>& aDisplayUpdates); - void FireDOMVRDisplayConnectEvent(); - void FireDOMVRDisplayDisconnectEvent(); - void FireDOMVRDisplayPresentChangeEvent(); - - virtual void HandleFatalError(const char* aName, const char* aMsg) const override; - -protected: - explicit VRManagerChild(); - ~VRManagerChild(); - void Destroy(); - static void DeferredDestroy(RefPtr<VRManagerChild> aVRManagerChild); - - virtual PTextureChild* AllocPTextureChild(const SurfaceDescriptor& aSharedData, - const layers::LayersBackend& aLayersBackend, - const TextureFlags& aFlags, - const uint64_t& aSerial) override; - virtual bool DeallocPTextureChild(PTextureChild* actor) override; - - virtual PVRLayerChild* AllocPVRLayerChild(const uint32_t& aDisplayID, - const float& aLeftEyeX, - const float& aLeftEyeY, - const float& aLeftEyeWidth, - const float& aLeftEyeHeight, - const float& aRightEyeX, - const float& aRightEyeY, - const float& aRightEyeWidth, - const float& aRightEyeHeight) override; - virtual bool DeallocPVRLayerChild(PVRLayerChild* actor) override; - - virtual bool RecvUpdateDisplayInfo(nsTArray<VRDisplayInfo>&& aDisplayUpdates) override; - - virtual bool RecvParentAsyncMessages(InfallibleTArray<AsyncParentMessageData>&& aMessages) override; - - virtual bool RecvNotifyVSync() override; - virtual bool RecvNotifyVRVSync(const uint32_t& aDisplayID) override; - virtual bool RecvGamepadUpdate(const GamepadChangeEvent& aGamepadEvent) override; - - // ShmemAllocator - - virtual bool AllocShmem(size_t aSize, - ipc::SharedMemory::SharedMemoryType aType, - ipc::Shmem* aShmem) override; - - virtual bool AllocUnsafeShmem(size_t aSize, - ipc::SharedMemory::SharedMemoryType aType, - ipc::Shmem* aShmem) override; - - virtual bool DeallocShmem(ipc::Shmem& aShmem) override; - - virtual bool IsSameProcess() const override - { - return OtherPid() == base::GetCurrentProcId(); - } - - friend class layers::CompositorBridgeChild; - -private: - - void FireDOMVRDisplayConnectEventInternal(); - void FireDOMVRDisplayDisconnectEventInternal(); - void FireDOMVRDisplayPresentChangeEventInternal(); - /** - * Notify id of Texture When host side end its use. Transaction id is used to - * make sure if there is no newer usage. - */ - void NotifyNotUsed(uint64_t aTextureId, uint64_t aFwdTransactionId); - - nsTArray<RefPtr<VRDisplayClient> > mDisplays; - bool mDisplaysInitialized; - nsTArray<uint64_t> mNavigatorCallbacks; - - int32_t mInputFrameID; - - MessageLoop* mMessageLoop; - - struct FrameRequest; - - nsTArray<FrameRequest> mFrameRequestCallbacks; - /** - * The current frame request callback handle - */ - int32_t mFrameRequestCallbackCounter; - mozilla::TimeStamp mStartTimeStamp; - - // Array of Weak pointers, instance is owned by nsGlobalWindow::mVREventObserver. - nsTArray<dom::VREventObserver*> mListeners; - - /** - * Hold TextureClients refs until end of their usages on host side. - * It defer calling of TextureClient recycle callback. - */ - nsDataHashtable<nsUint64HashKey, RefPtr<layers::TextureClient> > mTexturesWaitingRecycled; - - layers::LayersBackend mBackend; - RefPtr<layers::SyncObject> mSyncObject; - - DISALLOW_COPY_AND_ASSIGN(VRManagerChild); -}; - -} // namespace mozilla -} // namespace gfx - -#endif // MOZILLA_GFX_VR_VRMANAGERCHILD_H |