Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(732)

Unified Diff: components/viz/common/server_gpu_memory_buffer_manager.h

Issue 2934203002: exp/wip: Use ServerGpuMemoryBufferManager in browser.
Patch Set: . Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | components/viz/common/server_gpu_memory_buffer_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/viz/common/server_gpu_memory_buffer_manager.h
diff --git a/components/viz/common/server_gpu_memory_buffer_manager.h b/components/viz/common/server_gpu_memory_buffer_manager.h
index c6af5a668803a4a26847c023a10407df1e89096b..728e72de0adf1e0cc420a8925d8381c065942e1e 100644
--- a/components/viz/common/server_gpu_memory_buffer_manager.h
+++ b/components/viz/common/server_gpu_memory_buffer_manager.h
@@ -8,9 +8,10 @@
#include <memory>
#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
+#include "base/memory/ref_counted.h"
#include "base/single_thread_task_runner.h"
#include "base/synchronization/waitable_event.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "gpu/command_buffer/client/gpu_memory_buffer_manager.h"
#include "gpu/ipc/host/gpu_memory_buffer_support.h"
@@ -24,11 +25,15 @@ namespace viz {
// This GpuMemoryBufferManager implementation is for [de]allocating gpu memory
// from the gpu process over the mojom.GpuService api.
-class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
+class ServerGpuMemoryBufferManager
+ : public gpu::GpuMemoryBufferManager,
+ public base::RefCountedThreadSafe<ServerGpuMemoryBufferManager> {
public:
- ServerGpuMemoryBufferManager(ui::mojom::GpuService* gpu_service,
- int client_id);
- ~ServerGpuMemoryBufferManager() override;
+ ServerGpuMemoryBufferManager(
+ ui::mojom::GpuService* gpu_service,
+ int client_id,
+ scoped_refptr<base::SingleThreadTaskRunner> task_runner =
+ base::ThreadTaskRunnerHandle::Get());
void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id,
int client_id,
@@ -54,14 +59,24 @@ class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
void SetDestructionSyncToken(gfx::GpuMemoryBuffer* buffer,
const gpu::SyncToken& sync_token) override;
+ void set_gpu_service(ui::mojom::GpuService* service) {
+ gpu_service_ = service;
+ }
+
private:
+ friend class base::RefCountedThreadSafe<ServerGpuMemoryBufferManager>;
+ ~ServerGpuMemoryBufferManager() override;
+
void OnGpuMemoryBufferAllocated(
int client_id,
base::OnceCallback<void(const gfx::GpuMemoryBufferHandle&)> callback,
const gfx::GpuMemoryBufferHandle& handle);
void SignalOnGpuMemoryBufferAllocated(
- gfx::GpuMemoryBufferHandle* handle,
+ std::unique_ptr<gfx::GpuMemoryBuffer>* buffer,
base::WaitableEvent* wait_event,
+ const gfx::Size& size,
+ gfx::BufferFormat format,
+ gfx::BufferUsage usage,
const gfx::GpuMemoryBufferHandle& allocated_handle);
ui::mojom::GpuService* gpu_service_;
@@ -76,7 +91,6 @@ class ServerGpuMemoryBufferManager : public gpu::GpuMemoryBufferManager {
const gpu::GpuMemoryBufferConfigurationSet native_configurations_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
- base::WeakPtrFactory<ServerGpuMemoryBufferManager> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(ServerGpuMemoryBufferManager);
};
« no previous file with comments | « no previous file | components/viz/common/server_gpu_memory_buffer_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698