1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_BROWSER_GPU_GPU_MEMORY_BUFFER_FACTORY_HOST_IMPL_H_
6 #define CONTENT_BROWSER_GPU_GPU_MEMORY_BUFFER_FACTORY_HOST_IMPL_H_
10 #include "content/common/gpu/client/gpu_memory_buffer_factory_host.h"
13 class GpuMemoryBufferImpl;
15 class CONTENT_EXPORT GpuMemoryBufferFactoryHostImpl
16 : public GpuMemoryBufferFactoryHost {
18 GpuMemoryBufferFactoryHostImpl();
19 virtual ~GpuMemoryBufferFactoryHostImpl();
21 // Overridden from GpuMemoryBufferFactoryHost:
22 virtual void CreateGpuMemoryBuffer(
23 const gfx::GpuMemoryBufferHandle& handle,
24 const gfx::Size& size,
25 unsigned internalformat,
27 const CreateGpuMemoryBufferCallback& callback) OVERRIDE;
28 virtual void DestroyGpuMemoryBuffer(const gfx::GpuMemoryBufferHandle& handle,
29 int32 sync_point) OVERRIDE;
31 void set_gpu_host_id(int gpu_host_id) { gpu_host_id_ = gpu_host_id; }
34 void OnGpuMemoryBufferCreated(uint32 request_id,
35 const gfx::GpuMemoryBufferHandle& handle);
38 uint32 next_create_gpu_memory_buffer_request_id_;
39 typedef std::map<uint32, CreateGpuMemoryBufferCallback>
40 CreateGpuMemoryBufferCallbackMap;
41 CreateGpuMemoryBufferCallbackMap create_gpu_memory_buffer_requests_;
43 DISALLOW_COPY_AND_ASSIGN(GpuMemoryBufferFactoryHostImpl);
46 } // namespace content
48 #endif // CONTENT_BROWSER_GPU_GPU_MEMORY_BUFFER_FACTORY_HOST_IMPL_H_