summaryrefslogtreecommitdiffstats
path: root/cc/layers
diff options
context:
space:
mode:
authorjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-07 05:01:32 +0000
committerjamesr@chromium.org <jamesr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-07 05:01:32 +0000
commit943528e092b0a1c242c75af60c7b08385908e954 (patch)
tree02904b3b722389bbe339cfd4a892c57a65016fbd /cc/layers
parent341acce17f767566e8602902055a29996e85ff64 (diff)
downloadchromium_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.cc15
-rw-r--r--cc/layers/nine_patch_layer_unittest.cc17
-rw-r--r--cc/layers/scrollbar_layer_unittest.cc4
-rw-r--r--cc/layers/texture_layer_unittest.cc4
-rw-r--r--cc/layers/tiled_layer_unittest.cc9
-rw-r--r--cc/layers/ui_resource_layer_unittest.cc16
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_;
};