// Copyright (c) 2012 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. #include "content/browser/aura/image_transport_factory.h" #include "content/browser/aura/gpu_process_transport_factory.h" #include "content/browser/aura/no_transport_image_transport_factory.h" #include "ui/compositor/compositor.h" namespace content { namespace { ImageTransportFactory* g_factory = NULL; bool g_initialized_for_unit_tests = false; } // static void ImageTransportFactory::Initialize() { DCHECK(!g_factory || g_initialized_for_unit_tests); if (g_initialized_for_unit_tests) return; g_factory = new GpuProcessTransportFactory; ui::ContextFactory::SetInstance(g_factory->AsContextFactory()); } void ImageTransportFactory::InitializeForUnitTests( scoped_ptr test_factory) { DCHECK(!g_factory); DCHECK(!g_initialized_for_unit_tests); g_initialized_for_unit_tests = true; g_factory = new NoTransportImageTransportFactory(test_factory.Pass()); ui::ContextFactory::SetInstance(g_factory->AsContextFactory()); } // static void ImageTransportFactory::Terminate() { ui::ContextFactory::SetInstance(NULL); delete g_factory; g_factory = NULL; g_initialized_for_unit_tests = false; } // static ImageTransportFactory* ImageTransportFactory::GetInstance() { return g_factory; } } // namespace content