Index: cc/test/test_gpu_memory_buffer_manager.cc |
diff --git a/cc/test/test_gpu_memory_buffer_manager.cc b/cc/test/test_gpu_memory_buffer_manager.cc |
index 12aa1ee119e873d0633a1facda6a30ffa819ab7b..72cc9f1b33a6ccdd007f7155b7723567cefc5f8c 100644 |
--- a/cc/test/test_gpu_memory_buffer_manager.cc |
+++ b/cc/test/test_gpu_memory_buffer_manager.cc |
@@ -12,6 +12,7 @@ |
#include "base/numerics/safe_conversions.h" |
#include "ui/gfx/buffer_format_util.h" |
#include "ui/gfx/gpu_memory_buffer.h" |
+#include "ui/gfx/shared_event.h" |
namespace cc { |
namespace { |
@@ -123,6 +124,32 @@ class GpuMemoryBufferFromClient : public gfx::GpuMemoryBuffer { |
gfx::GpuMemoryBuffer* client_buffer_; |
}; |
+class GpuFenceImpl : public gfx::GpuFence { |
+ public: |
+ GpuFenceImpl() {} |
+ explicit GpuFenceImpl(const gfx::GpuFenceHandle& handle) |
+ : shared_event_(handle.shared_event_handle) {} |
+ ~GpuFenceImpl() override {} |
+ |
+ // Overridden from gfx::GpuFence: |
+ bool IsSignaled() override { return shared_event_.IsSignaled(); } |
+ bool Wait(const base::TimeDelta& max_time) override { |
+ return shared_event_.Wait(max_time); |
+ } |
+ void Reset() override { shared_event_.Reset(); } |
+ gfx::GpuFenceHandle GetHandle() const override { |
+ gfx::GpuFenceHandle handle; |
+ handle.shared_event_handle = shared_event_.GetHandle(); |
+ return handle; |
+ } |
+ ClientFence AsClientFence() override { |
+ return reinterpret_cast<ClientFence>(this); |
+ } |
+ |
+ private: |
+ gfx::SharedEvent shared_event_; |
+}; |
+ |
} // namespace |
TestGpuMemoryBufferManager::TestGpuMemoryBufferManager() { |
@@ -193,4 +220,21 @@ void TestGpuMemoryBufferManager::SetDestructionSyncToken( |
gfx::GpuMemoryBuffer* buffer, |
const gpu::SyncToken& sync_token) {} |
+std::unique_ptr<gfx::GpuFence> TestGpuMemoryBufferManager::CreateGpuFence() { |
+ std::unique_ptr<gfx::GpuFence> result(new GpuFenceImpl); |
+ return result; |
+} |
+ |
+std::unique_ptr<gfx::GpuFence> |
+TestGpuMemoryBufferManager::CreateGpuFenceFromHandle( |
+ const gfx::GpuFenceHandle& handle) { |
+ std::unique_ptr<gfx::GpuFence> result(new GpuFenceImpl(handle)); |
+ return result; |
+} |
+ |
+gfx::GpuFence* TestGpuMemoryBufferManager::GpuFenceFromClientFence( |
+ ClientFence fence) { |
+ return reinterpret_cast<gfx::GpuFence*>(fence); |
+} |
+ |
} // namespace cc |