OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/compositor/image_transport_factory.h" | 5 #include "content/browser/compositor/image_transport_factory.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "content/browser/compositor/gpu_process_transport_factory.h" | 8 #include "content/browser/compositor/gpu_process_transport_factory.h" |
9 #include "ui/compositor/compositor.h" | 9 #include "ui/compositor/compositor.h" |
10 #include "ui/compositor/compositor_switches.h" | 10 #include "ui/compositor/compositor_switches.h" |
11 #include "ui/gl/gl_implementation.h" | 11 #include "ui/gl/gl_implementation.h" |
12 | 12 |
13 namespace content { | 13 namespace content { |
14 | 14 |
15 namespace { | 15 namespace { |
16 ImageTransportFactory* g_factory = NULL; | 16 ImageTransportFactory* g_factory = NULL; |
17 bool g_initialized_for_unit_tests = false; | 17 bool g_initialized_for_unit_tests = false; |
18 static gfx::DisableNullDrawGLBindings* g_disable_null_draw = NULL; | 18 static gl::DisableNullDrawGLBindings* g_disable_null_draw = NULL; |
19 | 19 |
20 void SetFactory(ImageTransportFactory* factory) { | 20 void SetFactory(ImageTransportFactory* factory) { |
21 g_factory = factory; | 21 g_factory = factory; |
22 } | 22 } |
23 | 23 |
24 } | 24 } |
25 | 25 |
26 // static | 26 // static |
27 void ImageTransportFactory::Initialize() { | 27 void ImageTransportFactory::Initialize() { |
28 DCHECK(!g_factory || g_initialized_for_unit_tests); | 28 DCHECK(!g_factory || g_initialized_for_unit_tests); |
29 if (g_initialized_for_unit_tests) | 29 if (g_initialized_for_unit_tests) |
30 return; | 30 return; |
31 SetFactory(new GpuProcessTransportFactory); | 31 SetFactory(new GpuProcessTransportFactory); |
32 } | 32 } |
33 | 33 |
34 void ImageTransportFactory::InitializeForUnitTests( | 34 void ImageTransportFactory::InitializeForUnitTests( |
35 std::unique_ptr<ImageTransportFactory> factory) { | 35 std::unique_ptr<ImageTransportFactory> factory) { |
36 DCHECK(!g_factory); | 36 DCHECK(!g_factory); |
37 DCHECK(!g_initialized_for_unit_tests); | 37 DCHECK(!g_initialized_for_unit_tests); |
38 g_initialized_for_unit_tests = true; | 38 g_initialized_for_unit_tests = true; |
39 | 39 |
40 const base::CommandLine* command_line = | 40 const base::CommandLine* command_line = |
41 base::CommandLine::ForCurrentProcess(); | 41 base::CommandLine::ForCurrentProcess(); |
42 if (command_line->HasSwitch(switches::kEnablePixelOutputInTests)) | 42 if (command_line->HasSwitch(switches::kEnablePixelOutputInTests)) |
43 g_disable_null_draw = new gfx::DisableNullDrawGLBindings; | 43 g_disable_null_draw = new gl::DisableNullDrawGLBindings; |
44 | 44 |
45 SetFactory(factory.release()); | 45 SetFactory(factory.release()); |
46 } | 46 } |
47 | 47 |
48 // static | 48 // static |
49 void ImageTransportFactory::Terminate() { | 49 void ImageTransportFactory::Terminate() { |
50 delete g_factory; | 50 delete g_factory; |
51 g_factory = NULL; | 51 g_factory = NULL; |
52 delete g_disable_null_draw; | 52 delete g_disable_null_draw; |
53 g_disable_null_draw = NULL; | 53 g_disable_null_draw = NULL; |
54 g_initialized_for_unit_tests = false; | 54 g_initialized_for_unit_tests = false; |
55 } | 55 } |
56 | 56 |
57 // static | 57 // static |
58 ImageTransportFactory* ImageTransportFactory::GetInstance() { | 58 ImageTransportFactory* ImageTransportFactory::GetInstance() { |
59 return g_factory; | 59 return g_factory; |
60 } | 60 } |
61 | 61 |
62 } // namespace content | 62 } // namespace content |
OLD | NEW |