Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / browser / gpu / gpu_memory_buffer_factory_host_impl.h
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.
4
5 #ifndef CONTENT_BROWSER_GPU_GPU_MEMORY_BUFFER_FACTORY_HOST_IMPL_H_
6 #define CONTENT_BROWSER_GPU_GPU_MEMORY_BUFFER_FACTORY_HOST_IMPL_H_
7
8 #include <map>
9
10 #include "content/common/gpu/client/gpu_memory_buffer_factory_host.h"
11
12 namespace content {
13 class GpuMemoryBufferImpl;
14
15 class CONTENT_EXPORT GpuMemoryBufferFactoryHostImpl
16     : public GpuMemoryBufferFactoryHost {
17  public:
18   GpuMemoryBufferFactoryHostImpl();
19   virtual ~GpuMemoryBufferFactoryHostImpl();
20
21   // Overridden from GpuMemoryBufferFactoryHost:
22   virtual void CreateGpuMemoryBuffer(
23       const gfx::GpuMemoryBufferHandle& handle,
24       const gfx::Size& size,
25       unsigned internalformat,
26       unsigned usage,
27       const CreateGpuMemoryBufferCallback& callback) OVERRIDE;
28   virtual void DestroyGpuMemoryBuffer(const gfx::GpuMemoryBufferHandle& handle,
29                                       int32 sync_point) OVERRIDE;
30
31   void set_gpu_host_id(int gpu_host_id) { gpu_host_id_ = gpu_host_id; }
32
33  private:
34   void OnGpuMemoryBufferCreated(uint32 request_id,
35                                 const gfx::GpuMemoryBufferHandle& handle);
36
37   int gpu_host_id_;
38   uint32 next_create_gpu_memory_buffer_request_id_;
39   typedef std::map<uint32, CreateGpuMemoryBufferCallback>
40       CreateGpuMemoryBufferCallbackMap;
41   CreateGpuMemoryBufferCallbackMap create_gpu_memory_buffer_requests_;
42
43   DISALLOW_COPY_AND_ASSIGN(GpuMemoryBufferFactoryHostImpl);
44 };
45
46 }  // namespace content
47
48 #endif  // CONTENT_BROWSER_GPU_GPU_MEMORY_BUFFER_FACTORY_HOST_IMPL_H_