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/async_pixel_transfer_manager.h"
6
7#include "base/debug/trace_event.h"
8#include "gpu/command_buffer/service/async_pixel_transfer_manager_idle.h"
9#include "gpu/command_buffer/service/async_pixel_transfer_manager_stub.h"
10#include "ui/gl/gl_implementation.h"
11
12namespace gpu {
13
14AsyncPixelTransferManager* AsyncPixelTransferManager::Create(
15    gfx::GLContext* context) {
16  TRACE_EVENT0("gpu", "AsyncPixelTransferManager::Create");
17  switch (gfx::GetGLImplementation()) {
18    case gfx::kGLImplementationOSMesaGL:
19    case gfx::kGLImplementationDesktopGL:
20    case gfx::kGLImplementationEGLGLES2:
21      return new AsyncPixelTransferManagerIdle;
22    case gfx::kGLImplementationMockGL:
23      return new AsyncPixelTransferManagerStub;
24    default:
25      NOTREACHED();
26      return NULL;
27  }
28}
29
30}  // namespace gpu
31