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

Side by Side Diff: cc/layer_tree_host_impl_unittest.cc

Issue 11316128: Send compositor frame IPC with metadata. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix compile errors on mac/win Created 8 years 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
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/layer_tree_settings.h » ('j') | 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/layer_tree_host_impl.h" 5 #include "cc/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"
11 #include "base/hash_tables.h" 11 #include "base/hash_tables.h"
12 #include "cc/compositor_frame_metadata.h"
12 #include "cc/delegated_renderer_layer_impl.h" 13 #include "cc/delegated_renderer_layer_impl.h"
13 #include "cc/gl_renderer.h" 14 #include "cc/gl_renderer.h"
14 #include "cc/heads_up_display_layer_impl.h" 15 #include "cc/heads_up_display_layer_impl.h"
15 #include "cc/io_surface_layer_impl.h" 16 #include "cc/io_surface_layer_impl.h"
16 #include "cc/layer_impl.h" 17 #include "cc/layer_impl.h"
17 #include "cc/layer_tiling_data.h" 18 #include "cc/layer_tiling_data.h"
18 #include "cc/layer_tree_impl.h" 19 #include "cc/layer_tree_impl.h"
19 #include "cc/math_util.h" 20 #include "cc/math_util.h"
20 #include "cc/quad_sink.h" 21 #include "cc/quad_sink.h"
21 #include "cc/render_pass_draw_quad.h" 22 #include "cc/render_pass_draw_quad.h"
(...skipping 4071 matching lines...) Expand 10 before | Expand all | Expand 10 after
4093 EXPECT_FALSE(m_didRequestCommit); 4094 EXPECT_FALSE(m_didRequestCommit);
4094 } 4095 }
4095 4096
4096 struct RenderPassRemovalTestData : public LayerTreeHostImpl::FrameData { 4097 struct RenderPassRemovalTestData : public LayerTreeHostImpl::FrameData {
4097 ScopedPtrHashMap<RenderPass::Id, TestRenderPass> renderPassCache; 4098 ScopedPtrHashMap<RenderPass::Id, TestRenderPass> renderPassCache;
4098 scoped_ptr<SharedQuadState> sharedQuadState; 4099 scoped_ptr<SharedQuadState> sharedQuadState;
4099 }; 4100 };
4100 4101
4101 class TestRenderer : public GLRenderer, public RendererClient { 4102 class TestRenderer : public GLRenderer, public RendererClient {
4102 public: 4103 public:
4103 static scoped_ptr<TestRenderer> create(ResourceProvider* resourceProvider, P roxy* proxy) 4104 static scoped_ptr<TestRenderer> create(ResourceProvider* resourceProvider, O utputSurface* outputSurface, Proxy* proxy)
4104 { 4105 {
4105 scoped_ptr<TestRenderer> renderer(new TestRenderer(resourceProvider, pro xy)); 4106 scoped_ptr<TestRenderer> renderer(new TestRenderer(resourceProvider, out putSurface, proxy));
4106 if (!renderer->initialize()) 4107 if (!renderer->initialize())
4107 return scoped_ptr<TestRenderer>(); 4108 return scoped_ptr<TestRenderer>();
4108 4109
4109 return renderer.Pass(); 4110 return renderer.Pass();
4110 } 4111 }
4111 4112
4112 void clearCachedTextures() { m_textures.clear(); } 4113 void clearCachedTextures() { m_textures.clear(); }
4113 void setHaveCachedResourcesForRenderPassId(RenderPass::Id id) { m_textures.i nsert(id); } 4114 void setHaveCachedResourcesForRenderPassId(RenderPass::Id id) { m_textures.i nsert(id); }
4114 4115
4115 virtual bool haveCachedResourcesForRenderPassId(RenderPass::Id id) const OVE RRIDE { return m_textures.count(id); } 4116 virtual bool haveCachedResourcesForRenderPassId(RenderPass::Id id) const OVE RRIDE { return m_textures.count(id); }
4116 4117
4117 // RendererClient implementation. 4118 // RendererClient implementation.
4118 virtual const gfx::Size& deviceViewportSize() const OVERRIDE { return m_view portSize; } 4119 virtual const gfx::Size& deviceViewportSize() const OVERRIDE { return m_view portSize; }
4119 virtual const LayerTreeSettings& settings() const OVERRIDE { return m_settin gs; } 4120 virtual const LayerTreeSettings& settings() const OVERRIDE { return m_settin gs; }
4120 virtual void didLoseOutputSurface() OVERRIDE { } 4121 virtual void didLoseOutputSurface() OVERRIDE { }
4121 virtual void onSwapBuffersComplete() OVERRIDE { } 4122 virtual void onSwapBuffersComplete() OVERRIDE { }
4122 virtual void setFullRootLayerDamage() OVERRIDE { } 4123 virtual void setFullRootLayerDamage() OVERRIDE { }
4123 virtual void setManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERR IDE { } 4124 virtual void setManagedMemoryPolicy(const ManagedMemoryPolicy& policy) OVERR IDE { }
4124 virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) O VERRIDE { } 4125 virtual void enforceManagedMemoryPolicy(const ManagedMemoryPolicy& policy) O VERRIDE { }
4125 virtual bool hasImplThread() const OVERRIDE { return false; } 4126 virtual bool hasImplThread() const OVERRIDE { return false; }
4126 virtual bool shouldClearRootRenderPass() const OVERRIDE { return true; } 4127 virtual bool shouldClearRootRenderPass() const OVERRIDE { return true; }
4128 virtual CompositorFrameMetadata makeCompositorFrameMetadata() const
4129 OVERRIDE { return CompositorFrameMetadata(); }
4127 4130
4128 protected: 4131 protected:
4129 TestRenderer(ResourceProvider* resourceProvider, Proxy* proxy) : GLRenderer( this, resourceProvider) { } 4132 TestRenderer(ResourceProvider* resourceProvider, OutputSurface* outputSurfac e, Proxy* proxy) : GLRenderer(this, outputSurface, resourceProvider) { }
4130 4133
4131 private: 4134 private:
4132 LayerTreeSettings m_settings; 4135 LayerTreeSettings m_settings;
4133 gfx::Size m_viewportSize; 4136 gfx::Size m_viewportSize;
4134 base::hash_set<RenderPass::Id> m_textures; 4137 base::hash_set<RenderPass::Id> m_textures;
4135 }; 4138 };
4136 4139
4137 static void configureRenderPassTestData(const char* testScript, RenderPassRemova lTestData& testData, TestRenderer* renderer) 4140 static void configureRenderPassTestData(const char* testScript, RenderPassRemova lTestData& testData, TestRenderer* renderer)
4138 { 4141 {
4139 renderer->clearCachedTextures(); 4142 renderer->clearCachedTextures();
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
4410 dumpRenderPassTestData(testData, actualResult); 4413 dumpRenderPassTestData(testData, actualResult);
4411 EXPECT_STREQ(testCase.expectedResult, actualResult) << "In test case: " << t estCase.name; 4414 EXPECT_STREQ(testCase.expectedResult, actualResult) << "In test case: " << t estCase.name;
4412 } 4415 }
4413 4416
4414 TEST_P(LayerTreeHostImplTest, testRemoveRenderPasses) 4417 TEST_P(LayerTreeHostImplTest, testRemoveRenderPasses)
4415 { 4418 {
4416 scoped_ptr<OutputSurface> outputSurface(createOutputSurface()); 4419 scoped_ptr<OutputSurface> outputSurface(createOutputSurface());
4417 ASSERT_TRUE(outputSurface->Context3D()); 4420 ASSERT_TRUE(outputSurface->Context3D());
4418 scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu tSurface.get())); 4421 scoped_ptr<ResourceProvider> resourceProvider(ResourceProvider::create(outpu tSurface.get()));
4419 4422
4420 scoped_ptr<TestRenderer> renderer(TestRenderer::create(resourceProvider.get( ), &m_proxy)); 4423 scoped_ptr<TestRenderer> renderer(TestRenderer::create(resourceProvider.get( ), outputSurface.get(), &m_proxy));
4421 4424
4422 int testCaseIndex = 0; 4425 int testCaseIndex = 0;
4423 while (removeRenderPassesCases[testCaseIndex].name) { 4426 while (removeRenderPassesCases[testCaseIndex].name) {
4424 RenderPassRemovalTestData testData; 4427 RenderPassRemovalTestData testData;
4425 configureRenderPassTestData(removeRenderPassesCases[testCaseIndex].initS cript, testData, renderer.get()); 4428 configureRenderPassTestData(removeRenderPassesCases[testCaseIndex].initS cript, testData, renderer.get());
4426 LayerTreeHostImpl::removeRenderPasses(LayerTreeHostImpl::CullRenderPasse sWithCachedTextures(*renderer), testData); 4429 LayerTreeHostImpl::removeRenderPasses(LayerTreeHostImpl::CullRenderPasse sWithCachedTextures(*renderer), testData);
4427 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat a); 4430 verifyRenderPassTestData(removeRenderPassesCases[testCaseIndex], testDat a);
4428 testCaseIndex++; 4431 testCaseIndex++;
4429 } 4432 }
4430 } 4433 }
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
4824 gfx::Rect noDamage = gfx::Rect(m_hostImpl->deviceViewportSize()); 4827 gfx::Rect noDamage = gfx::Rect(m_hostImpl->deviceViewportSize());
4825 drawFrameAndTestDamage(noDamage); 4828 drawFrameAndTestDamage(noDamage);
4826 } 4829 }
4827 4830
4828 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, 4831 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests,
4829 LayerTreeHostImplTest, 4832 LayerTreeHostImplTest,
4830 ::testing::Values(false, true)); 4833 ::testing::Values(false, true));
4831 4834
4832 } // namespace 4835 } // namespace
4833 } // namespace cc 4836 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/layer_tree_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698