Index: ui/compositor/test/test_context_factory.cc |
diff --git a/ui/compositor/test/test_context_factory.cc b/ui/compositor/test/test_context_factory.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cc082ac902b5137f3c8199b7e8972c94ada33242 |
--- /dev/null |
+++ b/ui/compositor/test/test_context_factory.cc |
@@ -0,0 +1,65 @@ |
+// Copyright (c) 2013 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 "ui/compositor/test/test_context_factory.h" |
+ |
+#include "cc/debug/test_context_provider.h" |
+#include "cc/output/output_surface.h" |
+#include "ui/compositor/reflector.h" |
+ |
+namespace ui { |
+ |
+TestContextFactory::TestContextFactory() {} |
+ |
+TestContextFactory::~TestContextFactory() {} |
+ |
+scoped_ptr<cc::OutputSurface> TestContextFactory::CreateOutputSurface( |
+ Compositor* compositor) { |
+ return make_scoped_ptr( |
+ new cc::OutputSurface(cc::TestContextProvider::Create())); |
+} |
+ |
+scoped_refptr<Reflector> TestContextFactory::CreateReflector( |
+ Compositor* mirrored_compositor, |
+ Layer* mirroring_layer) { |
+ return new Reflector(); |
+} |
+ |
+void TestContextFactory::RemoveReflector(scoped_refptr<Reflector> reflector) { |
+} |
+ |
+scoped_refptr<cc::ContextProvider> |
+TestContextFactory::OffscreenCompositorContextProvider() { |
+ if (!offscreen_compositor_contexts_.get() || |
+ offscreen_compositor_contexts_->DestroyedOnMainThread()) |
+ offscreen_compositor_contexts_ = cc::TestContextProvider::Create(); |
+ return offscreen_compositor_contexts_; |
+} |
+ |
+scoped_refptr<cc::ContextProvider> |
+TestContextFactory::SharedMainThreadContextProvider() { |
+ if (shared_main_thread_contexts_ && |
+ !shared_main_thread_contexts_->DestroyedOnMainThread()) |
+ return shared_main_thread_contexts_; |
+ |
+ if (ui::Compositor::WasInitializedWithThread()) { |
+ shared_main_thread_contexts_ = cc::TestContextProvider::Create(); |
+ } else { |
+ shared_main_thread_contexts_ = |
+ static_cast<cc::TestContextProvider*>( |
+ OffscreenCompositorContextProvider().get()); |
+ } |
+ if (shared_main_thread_contexts_ && |
+ !shared_main_thread_contexts_->BindToCurrentThread()) |
+ shared_main_thread_contexts_ = NULL; |
+ |
+ return shared_main_thread_contexts_; |
+} |
+ |
+void TestContextFactory::RemoveCompositor(Compositor* compositor) { |
+} |
+ |
+bool TestContextFactory::DoesCreateTestContexts() { return true; } |
+ |
+} // namespace ui |