| // Copyright 2013 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. |
| |
| #ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_CONTROL_SERVICE_H_ |
| #define GPU_COMMAND_BUFFER_SERVICE_GPU_CONTROL_SERVICE_H_ |
| |
| #include "base/callback.h" |
| #include "gpu/command_buffer/common/capabilities.h" |
| #include "gpu/gpu_export.h" |
| #include "ui/gfx/gpu_memory_buffer.h" |
| |
| namespace gpu { |
| class GpuMemoryBufferManagerInterface; |
| |
| namespace gles2 { |
| class QueryManager; |
| } |
| |
| class GPU_EXPORT GpuControlService { |
| public: |
| GpuControlService(GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager, |
| gles2::QueryManager* query_manager); |
| virtual ~GpuControlService(); |
| |
| void SignalQuery(uint32 query, const base::Closure& callback); |
| |
| void RegisterGpuMemoryBuffer(int32 id, |
| gfx::GpuMemoryBufferHandle buffer, |
| size_t width, |
| size_t height, |
| unsigned internalformat); |
| void UnregisterGpuMemoryBuffer(int32 id); |
| |
| private: |
| GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager_; |
| gles2::QueryManager* query_manager_; |
| |
| DISALLOW_COPY_AND_ASSIGN(GpuControlService); |
| }; |
| |
| } // namespace gpu |
| |
| #endif // GPU_COMMAND_BUFFER_SERVICE_GPU_CONTROL_SERVICE_H_ |