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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 23961003: cc: Remove most methods from RendererClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rendererclient: rebase Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 4981 matching lines...) Expand 10 before | Expand all | Expand 10 after
4992 EXPECT_FALSE(did_request_commit_); 4992 EXPECT_FALSE(did_request_commit_);
4993 } 4993 }
4994 4994
4995 struct RenderPassRemovalTestData : public LayerTreeHostImpl::FrameData { 4995 struct RenderPassRemovalTestData : public LayerTreeHostImpl::FrameData {
4996 base::ScopedPtrHashMap<RenderPass::Id, TestRenderPass> render_pass_cache; 4996 base::ScopedPtrHashMap<RenderPass::Id, TestRenderPass> render_pass_cache;
4997 scoped_ptr<SharedQuadState> shared_quad_state; 4997 scoped_ptr<SharedQuadState> shared_quad_state;
4998 }; 4998 };
4999 4999
5000 class TestRenderer : public GLRenderer, public RendererClient { 5000 class TestRenderer : public GLRenderer, public RendererClient {
5001 public: 5001 public:
5002 static scoped_ptr<TestRenderer> Create(ResourceProvider* resource_provider, 5002 static scoped_ptr<TestRenderer> Create(const LayerTreeSettings* settings,
5003 ResourceProvider* resource_provider,
5003 OutputSurface* output_surface, 5004 OutputSurface* output_surface,
5004 Proxy* proxy) { 5005 Proxy* proxy) {
5005 scoped_ptr<TestRenderer> renderer(new TestRenderer(resource_provider, 5006 scoped_ptr<TestRenderer> renderer(
5006 output_surface, 5007 new TestRenderer(settings, resource_provider, output_surface, proxy));
5007 proxy));
5008 if (!renderer->Initialize()) 5008 if (!renderer->Initialize())
5009 return scoped_ptr<TestRenderer>(); 5009 return scoped_ptr<TestRenderer>();
5010 5010
5011 return renderer.Pass(); 5011 return renderer.Pass();
5012 } 5012 }
5013 5013
5014 void ClearCachedTextures() { textures_.clear(); } 5014 void ClearCachedTextures() { textures_.clear(); }
5015 void SetHaveCachedResourcesForRenderPassId(RenderPass::Id id) { 5015 void SetHaveCachedResourcesForRenderPassId(RenderPass::Id id) {
5016 textures_.insert(id); 5016 textures_.insert(id);
5017 } 5017 }
5018 5018
5019 virtual bool HaveCachedResourcesForRenderPassId(RenderPass::Id id) const 5019 virtual bool HaveCachedResourcesForRenderPassId(RenderPass::Id id) const
5020 OVERRIDE { 5020 OVERRIDE {
5021 return textures_.count(id); 5021 return textures_.count(id);
5022 } 5022 }
5023 5023
5024 // RendererClient implementation. 5024 // RendererClient implementation.
5025 virtual gfx::Rect DeviceViewport() const OVERRIDE { 5025 virtual gfx::Rect DeviceViewport() const OVERRIDE {
5026 return gfx::Rect(viewport_size_); 5026 return gfx::Rect(viewport_size_);
5027 } 5027 }
5028 virtual gfx::Rect DeviceClip() const OVERRIDE { 5028 virtual gfx::Rect DeviceClip() const OVERRIDE { return DeviceViewport(); }
5029 return DeviceViewport(); 5029 virtual void SetFullRootLayerDamage() OVERRIDE {}
5030 virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const OVERRIDE {
5031 return CompositorFrameMetadata();
5030 } 5032 }
5031 virtual float DeviceScaleFactor() const OVERRIDE {
5032 return 1.f;
5033 }
5034 virtual const LayerTreeSettings& Settings() const OVERRIDE {
5035 return settings_;
5036 }
5037 virtual void SetFullRootLayerDamage() OVERRIDE {}
5038 virtual bool HasImplThread() const OVERRIDE { return false; }
5039 virtual bool ShouldClearRootRenderPass() const OVERRIDE { return true; }
5040 virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const
5041 OVERRIDE { return CompositorFrameMetadata(); }
5042 virtual bool AllowPartialSwap() const OVERRIDE {
5043 return true;
5044 }
5045 virtual bool ExternalStencilTestEnabled() const OVERRIDE { return false; }
5046 5033
5047 protected: 5034 protected:
5048 TestRenderer(ResourceProvider* resource_provider, 5035 TestRenderer(const LayerTreeSettings* settings,
5036 ResourceProvider* resource_provider,
5049 OutputSurface* output_surface, 5037 OutputSurface* output_surface,
5050 Proxy* proxy) 5038 Proxy* proxy)
5051 : GLRenderer(this, output_surface, resource_provider, 0) {} 5039 : GLRenderer(this, settings, output_surface, resource_provider, 0) {}
5052 5040
5053 private: 5041 private:
5054 LayerTreeSettings settings_; 5042 LayerTreeSettings settings_;
5055 gfx::Size viewport_size_; 5043 gfx::Size viewport_size_;
5056 base::hash_set<RenderPass::Id> textures_; 5044 base::hash_set<RenderPass::Id> textures_;
5057 }; 5045 };
5058 5046
5059 static void ConfigureRenderPassTestData(const char* test_script, 5047 static void ConfigureRenderPassTestData(const char* test_script,
5060 RenderPassRemovalTestData* test_data, 5048 RenderPassRemovalTestData* test_data,
5061 TestRenderer* renderer) { 5049 TestRenderer* renderer) {
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
5361 static void VerifyRenderPassTestData( 5349 static void VerifyRenderPassTestData(
5362 const TestCase& test_case, 5350 const TestCase& test_case,
5363 const RenderPassRemovalTestData& test_data) { 5351 const RenderPassRemovalTestData& test_data) {
5364 char actual_result[1024]; 5352 char actual_result[1024];
5365 DumpRenderPassTestData(test_data, actual_result); 5353 DumpRenderPassTestData(test_data, actual_result);
5366 EXPECT_STREQ(test_case.expected_result, actual_result) << "In test case: " << 5354 EXPECT_STREQ(test_case.expected_result, actual_result) << "In test case: " <<
5367 test_case.name; 5355 test_case.name;
5368 } 5356 }
5369 5357
5370 TEST_F(LayerTreeHostImplTest, TestRemoveRenderPasses) { 5358 TEST_F(LayerTreeHostImplTest, TestRemoveRenderPasses) {
5359 LayerTreeSettings settings;
5371 FakeOutputSurfaceClient output_surface_client; 5360 FakeOutputSurfaceClient output_surface_client;
5372 scoped_ptr<OutputSurface> output_surface(CreateOutputSurface()); 5361 scoped_ptr<OutputSurface> output_surface(CreateOutputSurface());
5373 ASSERT_TRUE(output_surface->BindToClient(&output_surface_client)); 5362 ASSERT_TRUE(output_surface->BindToClient(&output_surface_client));
5374 ASSERT_TRUE(output_surface->context_provider()); 5363 ASSERT_TRUE(output_surface->context_provider());
5375 5364
5376 scoped_ptr<ResourceProvider> resource_provider = 5365 scoped_ptr<ResourceProvider> resource_provider =
5377 ResourceProvider::Create(output_surface.get(), 0); 5366 ResourceProvider::Create(output_surface.get(), 0);
5378 5367
5379 scoped_ptr<TestRenderer> renderer = 5368 scoped_ptr<TestRenderer> renderer = TestRenderer::Create(
5380 TestRenderer::Create(resource_provider.get(), 5369 &settings, resource_provider.get(), output_surface.get(), &proxy_);
5381 output_surface.get(),
5382 &proxy_);
5383 5370
5384 int test_case_index = 0; 5371 int test_case_index = 0;
5385 while (remove_render_passes_cases[test_case_index].name) { 5372 while (remove_render_passes_cases[test_case_index].name) {
5386 RenderPassRemovalTestData test_data; 5373 RenderPassRemovalTestData test_data;
5387 ConfigureRenderPassTestData( 5374 ConfigureRenderPassTestData(
5388 remove_render_passes_cases[test_case_index].init_script, 5375 remove_render_passes_cases[test_case_index].init_script,
5389 &test_data, 5376 &test_data,
5390 renderer.get()); 5377 renderer.get());
5391 LayerTreeHostImpl::RemoveRenderPasses( 5378 LayerTreeHostImpl::RemoveRenderPasses(
5392 LayerTreeHostImpl::CullRenderPassesWithCachedTextures(renderer.get()), 5379 LayerTreeHostImpl::CullRenderPassesWithCachedTextures(renderer.get()),
(...skipping 1192 matching lines...) Expand 10 before | Expand all | Expand 10 after
6585 EXPECT_EQ(0u, host_impl_->ResourceIdForUIResource(ui_resource_id)); 6572 EXPECT_EQ(0u, host_impl_->ResourceIdForUIResource(ui_resource_id));
6586 EXPECT_EQ(0u, context3d->NumTextures()); 6573 EXPECT_EQ(0u, context3d->NumTextures());
6587 6574
6588 // Should not change state for multiple deletion on one UIResourceId 6575 // Should not change state for multiple deletion on one UIResourceId
6589 host_impl_->DeleteUIResource(ui_resource_id); 6576 host_impl_->DeleteUIResource(ui_resource_id);
6590 EXPECT_EQ(0u, context3d->NumTextures()); 6577 EXPECT_EQ(0u, context3d->NumTextures());
6591 } 6578 }
6592 6579
6593 } // namespace 6580 } // namespace
6594 } // namespace cc 6581 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698