Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: cc/test/layer_tree_test.cc

Issue 14925009: Run all LayerTreeHost tests with a delegating renderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: uber-unittests: for landing2 Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | cc/trees/layer_tree_host_perftest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/test/layer_tree_test.cc
diff --git a/cc/test/layer_tree_test.cc b/cc/test/layer_tree_test.cc
index 43ae511ab83549f0885e7a498a89919ac0ba4c54..22de2d8f849418aa95572f1b00051ba2b15b6c8f 100644
--- a/cc/test/layer_tree_test.cc
+++ b/cc/test/layer_tree_test.cc
@@ -16,6 +16,7 @@
#include "cc/layers/layer.h"
#include "cc/layers/layer_impl.h"
#include "cc/test/animation_test_common.h"
+#include "cc/test/fake_context_provider.h"
#include "cc/test/fake_layer_tree_host_client.h"
#include "cc/test/fake_output_surface.h"
#include "cc/test/occlusion_tracker_test_common.h"
@@ -27,9 +28,7 @@
namespace cc {
-TestHooks::TestHooks()
- : fake_client_(
- new FakeLayerTreeHostClient(FakeLayerTreeHostClient::DIRECT_3D)) {}
+TestHooks::TestHooks() {}
TestHooks::~TestHooks() {}
@@ -43,20 +42,6 @@ bool TestHooks::CanActivatePendingTree() {
return true;
}
-scoped_ptr<OutputSurface> TestHooks::CreateOutputSurface() {
- return CreateFakeOutputSurface();
-}
-
-scoped_refptr<cc::ContextProvider> TestHooks::
- OffscreenContextProviderForMainThread() {
- return fake_client_->OffscreenContextProviderForMainThread();
-}
-
-scoped_refptr<cc::ContextProvider> TestHooks::
- OffscreenContextProviderForCompositorThread() {
- return fake_client_->OffscreenContextProviderForCompositorThread();
-}
-
// Adapts LayerTreeHostImpl for test. Runs real code, then invokes test hooks.
class LayerTreeHostImplForTesting : public LayerTreeHostImpl {
public:
@@ -550,7 +535,7 @@ void LayerTreeTest::DispatchComposite() {
layer_tree_host_->Composite(now);
}
-void LayerTreeTest::RunTest(bool threaded) {
+void LayerTreeTest::RunTest(bool threaded, bool delegating_renderer) {
if (threaded) {
impl_thread_.reset(new base::Thread("Compositor"));
ASSERT_TRUE(impl_thread_->Start());
@@ -558,6 +543,8 @@ void LayerTreeTest::RunTest(bool threaded) {
main_ccthread_ = cc::ThreadImpl::CreateForCurrentThread();
+ delegating_renderer_ = delegating_renderer;
+
// Spend less time waiting for vsync because the output is mocked out.
settings_.refresh_rate = 200.0;
InitializeSettings(&settings_);
@@ -588,4 +575,29 @@ void LayerTreeTest::RunTest(bool threaded) {
AfterTest();
}
+scoped_ptr<OutputSurface> LayerTreeTest::CreateOutputSurface() {
+ if (delegating_renderer_)
+ return FakeOutputSurface::CreateDelegating3d().PassAs<OutputSurface>();
+ return FakeOutputSurface::Create3d().PassAs<OutputSurface>();
+}
+
+scoped_refptr<cc::ContextProvider> LayerTreeTest::
+ OffscreenContextProviderForMainThread() {
+ if (!main_thread_contexts_ ||
+ main_thread_contexts_->DestroyedOnMainThread()) {
+ main_thread_contexts_ = FakeContextProvider::Create();
+ if (!main_thread_contexts_->BindToCurrentThread())
+ main_thread_contexts_ = NULL;
+ }
+ return main_thread_contexts_;
+}
+
+scoped_refptr<cc::ContextProvider> LayerTreeTest::
+ OffscreenContextProviderForCompositorThread() {
+ if (!compositor_thread_contexts_ ||
+ compositor_thread_contexts_->DestroyedOnMainThread())
+ compositor_thread_contexts_ = FakeContextProvider::Create();
+ return compositor_thread_contexts_;
+}
+
} // namespace cc
« no previous file with comments | « cc/test/layer_tree_test.h ('k') | cc/trees/layer_tree_host_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698