Index: content/gpu/gpu_memory_buffer_service.cc |
diff --git a/content/gpu/gpu_memory_buffer_service.cc b/content/gpu/gpu_memory_buffer_service.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c6afd4eb7d264fcb27087feaefafc89f36ad5f7f |
--- /dev/null |
+++ b/content/gpu/gpu_memory_buffer_service.cc |
@@ -0,0 +1,50 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/gpu/gpu_memory_buffer_service.h" |
+ |
+#include "content/common/gpu/create_gpu_memory_buffer_from_handle_params.h" |
+#include "content/common/gpu/create_gpu_memory_buffer_params.h" |
+#include "content/common/gpu/gpu_memory_buffer_factory.h" |
+#include "content/gpu/chrome_gpu_memory_buffer_service_ipc_transport.h" |
+ |
+namespace content { |
+ |
+GpuMemoryBufferService::GpuMemoryBufferService( |
+ GpuMemoryBufferFactory* gpu_memory_buffer_factory) |
+ : gpu_memory_buffer_factory_(gpu_memory_buffer_factory) { |
+ transport_ = ChromeGpuMemoryBufferServiceIPCTransport::Create(); |
+ transport_->SetClient(this); |
+} |
+ |
+GpuMemoryBufferService::~GpuMemoryBufferService() {} |
+ |
+void GpuMemoryBufferService::OnConnectionClosed() { |
+ delete this; |
+} |
+ |
+void GpuMemoryBufferService::OnCreateGpuMemoryBuffer( |
+ const CreateGpuMemoryBufferParams& params) { |
+ TRACE_EVENT2("gpu", "GpuMemoryBufferService::OnCreateGpuMemoryBuffer", "id", |
+ params.id.id, "client_id", params.client_id); |
+ |
+ DCHECK(gpu_memory_buffer_factory_); |
+ transport_->GpuMemoryBufferCreated( |
+ gpu_memory_buffer_factory_->CreateGpuMemoryBuffer( |
+ params.id, params.size, params.format, params.usage, params.client_id, |
+ params.surface_handle)); |
+} |
+ |
+void GpuMemoryBufferService::OnCreateGpuMemoryBufferFromHandle( |
+ const CreateGpuMemoryBufferFromHandleParams& params) { |
+ TRACE_EVENT2("gpu", |
+ "GpuMemoryBufferService::OnCreateGpuMemoryBufferFromHandle", |
+ "id", params.id.id, "client_id", params.client_id); |
+ transport_->GpuMemoryBufferCreated( |
+ gpu_memory_buffer_factory_->CreateGpuMemoryBufferFromHandle( |
+ params.handle, params.id, params.size, params.format, |
+ params.client_id)); |
+} |
+ |
+} // namespace content |