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 12namespace content { 13class GpuMemoryBufferImpl; 14 15class 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_ 49