1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "gpu/command_buffer/service/async_pixel_transfer_manager.h"
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/debug/trace_event.h"
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "gpu/command_buffer/service/async_pixel_transfer_manager_idle.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "gpu/command_buffer/service/async_pixel_transfer_manager_stub.h"
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "ui/gl/gl_implementation.h"
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
12b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace gpu {
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)AsyncPixelTransferManager* AsyncPixelTransferManager::Create(
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    gfx::GLContext* context) {
16868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  TRACE_EVENT0("gpu", "AsyncPixelTransferManager::Create");
17b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  switch (gfx::GetGLImplementation()) {
18b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    case gfx::kGLImplementationOSMesaGL:
19b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    case gfx::kGLImplementationDesktopGL:
20b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    case gfx::kGLImplementationAppleGL:
21868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      return new AsyncPixelTransferManagerIdle;
22b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)    case gfx::kGLImplementationMockGL:
23868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)      return new AsyncPixelTransferManagerStub;
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    default:
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      NOTREACHED();
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      return NULL;
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  }
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
30b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)}  // namespace gpu
31