Home | History | Annotate | Download | only in service
      1 // Copyright 2013 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 #include "gpu/command_buffer/service/gpu_control_service.h"
      6 
      7 #include "gpu/command_buffer/service/gpu_memory_buffer_manager.h"
      8 #include "gpu/command_buffer/service/query_manager.h"
      9 
     10 namespace gpu {
     11 
     12 GpuControlService::GpuControlService(
     13     GpuMemoryBufferManagerInterface* gpu_memory_buffer_manager,
     14     gles2::QueryManager* query_manager)
     15     : gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
     16       query_manager_(query_manager) {
     17 }
     18 
     19 GpuControlService::~GpuControlService() {
     20 }
     21 
     22 void GpuControlService::SignalQuery(uint32 query_id,
     23                                     const base::Closure& callback) {
     24   DCHECK(query_manager_);
     25   gles2::QueryManager::Query* query = query_manager_->GetQuery(query_id);
     26   if (!query)
     27     callback.Run();
     28   else
     29     query->AddCallback(callback);
     30 }
     31 
     32 void GpuControlService::RegisterGpuMemoryBuffer(
     33     int32 id,
     34     gfx::GpuMemoryBufferHandle buffer,
     35     size_t width,
     36     size_t height,
     37     unsigned internalformat) {
     38   gpu_memory_buffer_manager_->RegisterGpuMemoryBuffer(
     39       id, buffer, width, height, internalformat);
     40 }
     41 
     42 void GpuControlService::UnregisterGpuMemoryBuffer(int32 id) {
     43   gpu_memory_buffer_manager_->UnregisterGpuMemoryBuffer(id);
     44 }
     45 
     46 }  // namespace gpu
     47