mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 1313281 - Part 6: Remove FenceHandle. r=sotaro
This commit is contained in:
parent
6250728c9c
commit
5ab6ff0b97
@ -605,11 +605,5 @@ Compositor::SetDispAcquireFence(Layer* aLayer)
|
||||
{
|
||||
}
|
||||
|
||||
FenceHandle
|
||||
Compositor::GetReleaseFence()
|
||||
{
|
||||
return FenceHandle();
|
||||
}
|
||||
|
||||
} // namespace layers
|
||||
} // namespace mozilla
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include "mozilla/gfx/Types.h" // for Float
|
||||
#include "mozilla/gfx/Triangle.h" // for Triangle, TexturedTriangle
|
||||
#include "mozilla/layers/CompositorTypes.h" // for DiagnosticTypes, etc
|
||||
#include "mozilla/layers/FenceUtils.h" // for FenceHandle
|
||||
#include "mozilla/layers/LayersTypes.h" // for LayersBackend
|
||||
#include "mozilla/widget/CompositorWidget.h"
|
||||
#include "nsISupportsImpl.h" // for MOZ_COUNT_CTOR, etc
|
||||
@ -435,8 +434,6 @@ public:
|
||||
|
||||
virtual void SetDispAcquireFence(Layer* aLayer);
|
||||
|
||||
virtual FenceHandle GetReleaseFence();
|
||||
|
||||
/**
|
||||
* Post-rendering stuff if the rendering is done outside of this Compositor
|
||||
* e.g., by Composer2D.
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include "mozilla/gfx/2D.h" // for DrawTarget
|
||||
#include "mozilla/gfx/Point.h" // for IntSize
|
||||
#include "mozilla/gfx/Types.h" // for SurfaceFormat
|
||||
#include "mozilla/layers/FenceUtils.h" // for FenceHandle
|
||||
#include "mozilla/ipc/Shmem.h" // for Shmem
|
||||
#include "mozilla/layers/AtomicRefCountedWithFinalize.h"
|
||||
#include "mozilla/layers/CompositorTypes.h" // for TextureFlags, etc
|
||||
@ -287,10 +286,6 @@ public:
|
||||
|
||||
virtual bool ReadBack(TextureReadbackSink* aReadbackSink) { return false; }
|
||||
|
||||
/// Ideally this should not be exposed and users of TextureClient would use Lock/Unlock
|
||||
/// preoperly but that requires a few changes to SharedSurface and maybe gonk video.
|
||||
virtual void WaitForFence(FenceHandle* aFence) {};
|
||||
|
||||
virtual void SyncWithObject(SyncObject* aFence) {};
|
||||
|
||||
virtual TextureFlags GetTextureFlags() const { return TextureFlags::NO_FLAGS; }
|
||||
|
@ -17,7 +17,6 @@
|
||||
#include "mozilla/gfx/Types.h" // for SurfaceFormat, etc
|
||||
#include "mozilla/layers/Compositor.h" // for Compositor
|
||||
#include "mozilla/layers/CompositorTypes.h" // for TextureFlags, etc
|
||||
#include "mozilla/layers/FenceUtils.h" // for FenceHandle
|
||||
#include "mozilla/layers/LayersTypes.h" // for LayerRenderState, etc
|
||||
#include "mozilla/layers/LayersSurfaces.h"
|
||||
#include "mozilla/mozalloc.h" // for operator delete
|
||||
|
@ -1,78 +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/. */
|
||||
|
||||
#include "FenceUtils.h"
|
||||
|
||||
using namespace mozilla::layers;
|
||||
|
||||
namespace IPC {
|
||||
|
||||
void
|
||||
ParamTraits<FenceHandle>::Write(Message* aMsg,
|
||||
const paramType& aParam)
|
||||
{
|
||||
FenceHandle handle = aParam;
|
||||
|
||||
MOZ_ASSERT(handle.IsValid());
|
||||
}
|
||||
|
||||
bool
|
||||
ParamTraits<FenceHandle>::Read(const Message* aMsg,
|
||||
PickleIterator* aIter, paramType* aResult)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace IPC
|
||||
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
|
||||
FenceHandle::FenceHandle()
|
||||
: mFence(new FdObj())
|
||||
{
|
||||
}
|
||||
|
||||
FenceHandle::FenceHandle(FdObj* aFdObj)
|
||||
: mFence(aFdObj)
|
||||
{
|
||||
MOZ_ASSERT(aFdObj);
|
||||
}
|
||||
|
||||
void
|
||||
FenceHandle::Merge(const FenceHandle& aFenceHandle)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
FenceHandle::TransferToAnotherFenceHandle(FenceHandle& aFenceHandle)
|
||||
{
|
||||
aFenceHandle.mFence = this->GetAndResetFdObj();
|
||||
}
|
||||
|
||||
already_AddRefed<FenceHandle::FdObj>
|
||||
FenceHandle::GetAndResetFdObj()
|
||||
{
|
||||
RefPtr<FdObj> fence = mFence;
|
||||
mFence = new FdObj();
|
||||
return fence.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<FenceHandle::FdObj>
|
||||
FenceHandle::GetDupFdObj()
|
||||
{
|
||||
RefPtr<FdObj> fdObj;
|
||||
if (IsValid()) {
|
||||
fdObj = new FenceHandle::FdObj(dup(mFence->mFd));
|
||||
} else {
|
||||
fdObj = new FenceHandle::FdObj();
|
||||
}
|
||||
return fdObj.forget();
|
||||
}
|
||||
|
||||
} // namespace layers
|
||||
} // namespace mozilla
|
@ -1,84 +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 IPC_FencerUtils_h
|
||||
#define IPC_FencerUtils_h
|
||||
|
||||
#include "ipc/IPCMessageUtils.h"
|
||||
#include "mozilla/RefPtr.h" // for nsRefPtr
|
||||
|
||||
namespace mozilla {
|
||||
namespace layers {
|
||||
|
||||
class FenceHandle {
|
||||
public:
|
||||
class FdObj {
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(FdObj)
|
||||
friend class FenceHandle;
|
||||
public:
|
||||
FdObj()
|
||||
: mFd(-1) {}
|
||||
explicit FdObj(int aFd)
|
||||
: mFd(aFd) {}
|
||||
int GetAndResetFd()
|
||||
{
|
||||
int fd = mFd;
|
||||
mFd = -1;
|
||||
return fd;
|
||||
}
|
||||
|
||||
private:
|
||||
virtual ~FdObj() {
|
||||
if (mFd != -1) {
|
||||
close(mFd);
|
||||
}
|
||||
}
|
||||
|
||||
int mFd;
|
||||
};
|
||||
|
||||
FenceHandle();
|
||||
|
||||
explicit FenceHandle(FdObj* aFdObj);
|
||||
|
||||
bool operator==(const FenceHandle& aOther) const {
|
||||
return mFence.get() == aOther.mFence.get();
|
||||
}
|
||||
|
||||
bool IsValid() const
|
||||
{
|
||||
return (mFence->mFd != -1);
|
||||
}
|
||||
|
||||
void Merge(const FenceHandle& aFenceHandle);
|
||||
|
||||
void TransferToAnotherFenceHandle(FenceHandle& aFenceHandle);
|
||||
|
||||
already_AddRefed<FdObj> GetAndResetFdObj();
|
||||
|
||||
already_AddRefed<FdObj> GetDupFdObj();
|
||||
|
||||
private:
|
||||
RefPtr<FdObj> mFence;
|
||||
};
|
||||
|
||||
} // namespace layers
|
||||
} // namespace mozilla
|
||||
|
||||
namespace IPC {
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::layers::FenceHandle> {
|
||||
typedef mozilla::layers::FenceHandle paramType;
|
||||
|
||||
static void Write(Message* aMsg, const paramType& aParam);
|
||||
static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult);
|
||||
};
|
||||
|
||||
} // namespace IPC
|
||||
|
||||
#endif // IPC_FencerUtils_h
|
@ -168,7 +168,6 @@ EXPORTS.mozilla.layers += [
|
||||
'ipc/CompositorBridgeChild.h',
|
||||
'ipc/CompositorBridgeParent.h',
|
||||
'ipc/CompositorThread.h',
|
||||
'ipc/FenceUtils.h',
|
||||
'ipc/GonkNativeHandle.h',
|
||||
'ipc/GonkNativeHandleUtils.h',
|
||||
'ipc/ImageBridgeChild.h',
|
||||
@ -337,7 +336,6 @@ UNIFIED_SOURCES += [
|
||||
'ipc/CompositorBridgeChild.cpp',
|
||||
'ipc/CompositorBridgeParent.cpp',
|
||||
'ipc/CompositorThread.cpp',
|
||||
'ipc/FenceUtils.cpp',
|
||||
'ipc/ImageBridgeChild.cpp',
|
||||
'ipc/ImageBridgeParent.cpp',
|
||||
'ipc/ImageContainerChild.cpp',
|
||||
|
Loading…
Reference in New Issue
Block a user