diff options
author | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-07 05:01:32 +0000 |
---|---|---|
committer | jamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-07 05:01:32 +0000 |
commit | 943528e092b0a1c242c75af60c7b08385908e954 (patch) | |
tree | 02904b3b722389bbe339cfd4a892c57a65016fbd /cc/layers | |
parent | 341acce17f767566e8602902055a29996e85ff64 (diff) | |
download | chromium_src-943528e092b0a1c242c75af60c7b08385908e954.zip chromium_src-943528e092b0a1c242c75af60c7b08385908e954.tar.gz chromium_src-943528e092b0a1c242c75af60c7b08385908e954.tar.bz2 |
Introduce separate client and init path for single-threaded cc
The chromium compositor can be used in either a single-threaded fashion
or multi-threaded. The requirements, APIs and responsibilities of the embedder
are different for these two modes. Some users of cc only use one path
or the other. This adds a separate client interface and initialization
path for code that only uses the single threaded path.
Having a dedicated client for the single threaded path will make it
possible to get rid of the WebGraphicsContext3DSwapBuffersClient which
will then make it easier to break cc's dependency on WGC3D.
R=piman
BUG=181120
Review URL: https://codereview.chromium.org/61823008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layers')
-rw-r--r-- | cc/layers/layer_unittest.cc | 15 | ||||
-rw-r--r-- | cc/layers/nine_patch_layer_unittest.cc | 17 | ||||
-rw-r--r-- | cc/layers/scrollbar_layer_unittest.cc | 4 | ||||
-rw-r--r-- | cc/layers/texture_layer_unittest.cc | 4 | ||||
-rw-r--r-- | cc/layers/tiled_layer_unittest.cc | 9 | ||||
-rw-r--r-- | cc/layers/ui_resource_layer_unittest.cc | 16 |
6 files changed, 26 insertions, 39 deletions
diff --git a/cc/layers/layer_unittest.cc b/cc/layers/layer_unittest.cc index c66eb85..0414acb 100644 --- a/cc/layers/layer_unittest.cc +++ b/cc/layers/layer_unittest.cc @@ -38,9 +38,9 @@ namespace { class MockLayerTreeHost : public LayerTreeHost { public: - explicit MockLayerTreeHost(LayerTreeHostClient* client) + explicit MockLayerTreeHost(FakeLayerTreeHostClient* client) : LayerTreeHost(client, NULL, LayerTreeSettings()) { - Initialize(NULL); + InitializeSingleThreaded(client); } MOCK_METHOD0(SetNeedsCommit, void()); @@ -803,12 +803,17 @@ class LayerTreeHostFactory { : client_(FakeLayerTreeHostClient::DIRECT_3D) {} scoped_ptr<LayerTreeHost> Create() { - return LayerTreeHost::Create(&client_, NULL, LayerTreeSettings(), NULL) - .Pass(); + return LayerTreeHost::CreateSingleThreaded(&client_, + &client_, + NULL, + LayerTreeSettings()).Pass(); } scoped_ptr<LayerTreeHost> Create(LayerTreeSettings settings) { - return LayerTreeHost::Create(&client_, NULL, settings, NULL).Pass(); + return LayerTreeHost::CreateSingleThreaded(&client_, + &client_, + NULL, + settings).Pass(); } private: diff --git a/cc/layers/nine_patch_layer_unittest.cc b/cc/layers/nine_patch_layer_unittest.cc index 7213a51..41da351 100644 --- a/cc/layers/nine_patch_layer_unittest.cc +++ b/cc/layers/nine_patch_layer_unittest.cc @@ -10,6 +10,7 @@ #include "cc/resources/resource_update_queue.h" #include "cc/resources/scoped_ui_resource.h" #include "cc/scheduler/texture_uploader.h" +#include "cc/test/fake_layer_tree_host.h" #include "cc/test/fake_layer_tree_host_client.h" #include "cc/test/fake_output_surface.h" #include "cc/test/fake_output_surface_client.h" @@ -29,30 +30,20 @@ using ::testing::AnyNumber; namespace cc { namespace { -class MockLayerTreeHost : public LayerTreeHost { - public: - explicit MockLayerTreeHost(LayerTreeHostClient* client) - : LayerTreeHost(client, NULL, LayerTreeSettings()) { - Initialize(NULL); - } -}; - class NinePatchLayerTest : public testing::Test { public: NinePatchLayerTest() : fake_client_(FakeLayerTreeHostClient::DIRECT_3D) {} - cc::Proxy* Proxy() const { return layer_tree_host_->proxy(); } - protected: virtual void SetUp() { - layer_tree_host_.reset(new MockLayerTreeHost(&fake_client_)); + layer_tree_host_ = FakeLayerTreeHost::Create(); } virtual void TearDown() { Mock::VerifyAndClearExpectations(layer_tree_host_.get()); } - scoped_ptr<MockLayerTreeHost> layer_tree_host_; + scoped_ptr<FakeLayerTreeHost> layer_tree_host_; FakeLayerTreeHostClient fake_client_; }; @@ -66,8 +57,6 @@ TEST_F(NinePatchLayerTest, SetLayerProperties) { Mock::VerifyAndClearExpectations(layer_tree_host_.get()); EXPECT_EQ(test_layer->layer_tree_host(), layer_tree_host_.get()); - layer_tree_host_->InitializeOutputSurfaceIfNeeded(); - ResourceUpdateQueue queue; OcclusionTracker occlusion_tracker(gfx::Rect(), false); test_layer->SavePaintProperties(); diff --git a/cc/layers/scrollbar_layer_unittest.cc b/cc/layers/scrollbar_layer_unittest.cc index df12b73..53a9fa8 100644 --- a/cc/layers/scrollbar_layer_unittest.cc +++ b/cc/layers/scrollbar_layer_unittest.cc @@ -512,13 +512,13 @@ TEST_F(ScrollbarLayerTestMaxTextureSize, DelegatingRenderer) { class MockLayerTreeHost : public LayerTreeHost { public: - MockLayerTreeHost(LayerTreeHostClient* client, + MockLayerTreeHost(FakeLayerTreeHostClient* client, const LayerTreeSettings& settings) : LayerTreeHost(client, NULL, settings), next_id_(1), total_ui_resource_created_(0), total_ui_resource_deleted_(0) { - Initialize(NULL); + InitializeSingleThreaded(client); } virtual UIResourceId CreateUIResource(UIResourceClient* content) OVERRIDE { diff --git a/cc/layers/texture_layer_unittest.cc b/cc/layers/texture_layer_unittest.cc index d793473..5acc9c5 100644 --- a/cc/layers/texture_layer_unittest.cc +++ b/cc/layers/texture_layer_unittest.cc @@ -43,9 +43,9 @@ namespace { class MockLayerTreeHost : public LayerTreeHost { public: - explicit MockLayerTreeHost(LayerTreeHostClient* client) + explicit MockLayerTreeHost(FakeLayerTreeHostClient* client) : LayerTreeHost(client, NULL, LayerTreeSettings()) { - Initialize(NULL); + InitializeSingleThreaded(client); } MOCK_METHOD0(AcquireLayerTextures, void()); diff --git a/cc/layers/tiled_layer_unittest.cc b/cc/layers/tiled_layer_unittest.cc index 6f5d485..42ef29c 100644 --- a/cc/layers/tiled_layer_unittest.cc +++ b/cc/layers/tiled_layer_unittest.cc @@ -59,10 +59,11 @@ class TiledLayerTest : public testing::Test { virtual void SetUp() { impl_thread_.Start(); - layer_tree_host_ = LayerTreeHost::Create(&fake_layer_tree_host_client_, - NULL, - settings_, - impl_thread_.message_loop_proxy()); + layer_tree_host_ = LayerTreeHost::CreateThreaded( + &fake_layer_tree_host_client_, + NULL, + settings_, + impl_thread_.message_loop_proxy()); proxy_ = layer_tree_host_->proxy(); resource_manager_ = PrioritizedResourceManager::Create(proxy_); layer_tree_host_->SetLayerTreeHostClientReady(); diff --git a/cc/layers/ui_resource_layer_unittest.cc b/cc/layers/ui_resource_layer_unittest.cc index a2c75c1..48dbdf5 100644 --- a/cc/layers/ui_resource_layer_unittest.cc +++ b/cc/layers/ui_resource_layer_unittest.cc @@ -10,6 +10,7 @@ #include "cc/resources/resource_update_queue.h" #include "cc/resources/scoped_ui_resource.h" #include "cc/scheduler/texture_uploader.h" +#include "cc/test/fake_layer_tree_host.h" #include "cc/test/fake_layer_tree_host_client.h" #include "cc/test/fake_output_surface.h" #include "cc/test/fake_output_surface_client.h" @@ -29,30 +30,21 @@ using ::testing::AnyNumber; namespace cc { namespace { -class MockLayerTreeHost : public LayerTreeHost { - public: - explicit MockLayerTreeHost(LayerTreeHostClient* client) - : LayerTreeHost(client, NULL, LayerTreeSettings()) { - Initialize(NULL); - } -}; - class UIResourceLayerTest : public testing::Test { public: UIResourceLayerTest() : fake_client_(FakeLayerTreeHostClient::DIRECT_3D) {} - cc::Proxy* Proxy() const { return layer_tree_host_->proxy(); } - protected: virtual void SetUp() { - layer_tree_host_.reset(new MockLayerTreeHost(&fake_client_)); + layer_tree_host_ = FakeLayerTreeHost::Create(); + layer_tree_host_->InitializeSingleThreaded(&fake_client_); } virtual void TearDown() { Mock::VerifyAndClearExpectations(layer_tree_host_.get()); } - scoped_ptr<MockLayerTreeHost> layer_tree_host_; + scoped_ptr<FakeLayerTreeHost> layer_tree_host_; FakeLayerTreeHostClient fake_client_; }; |