| Index: services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
|
| diff --git a/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h b/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
|
| index 2ec9e23076498f09891728768a5af25fb04d4b1f..1d8e0986db82ef8ee396b41d1b683f9a975d36db 100644
|
| --- a/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
|
| +++ b/services/ui/public/cpp/mojo_gpu_memory_buffer_manager.h
|
| @@ -9,17 +9,39 @@
|
| #include <vector>
|
|
|
| #include "base/macros.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| +#include "base/threading/thread.h"
|
| #include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
|
| +#include "services/ui/public/interfaces/gpu_service.mojom.h"
|
| +
|
| +namespace base {
|
| +class WaitableEvent;
|
| +}
|
| +
|
| +namespace service_manager {
|
| +class Connector;
|
| +}
|
|
|
| namespace ui {
|
|
|
| +namespace mojom {
|
| +class GpuService;
|
| +}
|
| +
|
| class MojoGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
|
| public:
|
| - MojoGpuMemoryBufferManager();
|
| + explicit MojoGpuMemoryBufferManager(service_manager::Connector* connector);
|
| ~MojoGpuMemoryBufferManager() override;
|
|
|
| private:
|
| + void InitThread();
|
| + void TearDownThread();
|
| + void AllocateGpuMemoryBufferOnThread(const gfx::Size& size,
|
| + gfx::BufferFormat format,
|
| + gfx::BufferUsage usage,
|
| + gfx::GpuMemoryBufferHandle* handle,
|
| + base::WaitableEvent* wait);
|
| void DeletedGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
|
| const gpu::SyncToken& sync_token);
|
|
|
| @@ -37,8 +59,11 @@ class MojoGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
|
| ClientBuffer buffer) override;
|
| void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer,
|
| const gpu::SyncToken& sync_token) override;
|
| -
|
| int counter_ = 0;
|
| + // TODO(sad): Explore the option of doing this from an existing thread.
|
| + base::Thread thread_;
|
| + mojom::GpuServicePtr gpu_service_;
|
| + std::unique_ptr<service_manager::Connector> connector_;
|
| base::WeakPtrFactory<MojoGpuMemoryBufferManager> weak_ptr_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MojoGpuMemoryBufferManager);
|
|
|