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

Side by Side Diff: cc/layer_tree_host_impl_unittest.cc

Issue 11622008: cc: Defer texture allocation (to allow async allocations). (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Track uninitialized textures. Fix tests. 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 | « no previous file | cc/prioritized_resource_manager.cc » ('j') | cc/resource_provider.h » ('J')
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"
(...skipping 1029 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 1040
1041 private: 1041 private:
1042 MissingTextureAnimatingLayer(LayerTreeImpl* treeImpl, int id, bool tileMissi ng, bool skipsDraw, bool animating, ResourceProvider* resourceProvider) 1042 MissingTextureAnimatingLayer(LayerTreeImpl* treeImpl, int id, bool tileMissi ng, bool skipsDraw, bool animating, ResourceProvider* resourceProvider)
1043 : DidDrawCheckLayer(treeImpl, id) 1043 : DidDrawCheckLayer(treeImpl, id)
1044 { 1044 {
1045 scoped_ptr<LayerTilingData> tilingData = LayerTilingData::create(gfx::Si ze(10, 10), LayerTilingData::NoBorderTexels); 1045 scoped_ptr<LayerTilingData> tilingData = LayerTilingData::create(gfx::Si ze(10, 10), LayerTilingData::NoBorderTexels);
1046 tilingData->setBounds(bounds()); 1046 tilingData->setBounds(bounds());
1047 setTilingData(*tilingData.get()); 1047 setTilingData(*tilingData.get());
1048 setSkipsDraw(skipsDraw); 1048 setSkipsDraw(skipsDraw);
1049 if (!tileMissing) { 1049 if (!tileMissing) {
1050 ResourceProvider::ResourceId resource = resourceProvider->createReso urce(gfx::Size(), GL_RGBA, ResourceProvider::TextureUsageAny); 1050 ResourceProvider::ResourceId resource = resourceProvider->createAllo catedResource(gfx::Size(), GL_RGBA, ResourceProvider::TextureUsageAny);
1051 pushTileProperties(0, 0, resource, gfx::Rect(), false); 1051 pushTileProperties(0, 0, resource, gfx::Rect(), false);
1052 } 1052 }
1053 if (animating) 1053 if (animating)
1054 addAnimatedTransformToLayer(*this, 10, 3, 0); 1054 addAnimatedTransformToLayer(*this, 10, 3, 0);
1055 } 1055 }
1056 }; 1056 };
1057 1057
1058 TEST_P(LayerTreeHostImplTest, prepareToDrawFailsWhenAnimationUsesCheckerboard) 1058 TEST_P(LayerTreeHostImplTest, prepareToDrawFailsWhenAnimationUsesCheckerboard)
1059 { 1059 {
1060 // When the texture is not missing, we draw as usual. 1060 // When the texture is not missing, we draw as usual.
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
1664 void setOpaqueContentRect(const gfx::Rect& rect) { m_opaqueContentRect = rec t; } 1664 void setOpaqueContentRect(const gfx::Rect& rect) { m_opaqueContentRect = rec t; }
1665 1665
1666 private: 1666 private:
1667 BlendStateCheckLayer(LayerTreeImpl* treeImpl, int id, ResourceProvider* reso urceProvider) 1667 BlendStateCheckLayer(LayerTreeImpl* treeImpl, int id, ResourceProvider* reso urceProvider)
1668 : LayerImpl(treeImpl, id) 1668 : LayerImpl(treeImpl, id)
1669 , m_blend(false) 1669 , m_blend(false)
1670 , m_hasRenderSurface(false) 1670 , m_hasRenderSurface(false)
1671 , m_quadsAppended(false) 1671 , m_quadsAppended(false)
1672 , m_quadRect(5, 5, 5, 5) 1672 , m_quadRect(5, 5, 5, 5)
1673 , m_quadVisibleRect(5, 5, 5, 5) 1673 , m_quadVisibleRect(5, 5, 5, 5)
1674 , m_resourceId(resourceProvider->createResource(gfx::Size(1, 1), GL_RGBA , ResourceProvider::TextureUsageAny)) 1674 , m_resourceId(resourceProvider->createAllocatedResource(gfx::Size(1, 1) , GL_RGBA, ResourceProvider::TextureUsageAny))
1675 { 1675 {
1676 setAnchorPoint(gfx::PointF(0, 0)); 1676 setAnchorPoint(gfx::PointF(0, 0));
1677 setBounds(gfx::Size(10, 10)); 1677 setBounds(gfx::Size(10, 10));
1678 setContentBounds(gfx::Size(10, 10)); 1678 setContentBounds(gfx::Size(10, 10));
1679 setDrawsContent(true); 1679 setDrawsContent(true);
1680 } 1680 }
1681 1681
1682 bool m_blend; 1682 bool m_blend;
1683 bool m_hasRenderSurface; 1683 bool m_hasRenderSurface;
1684 bool m_quadsAppended; 1684 bool m_quadsAppended;
(...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after
2740 } 2740 }
2741 2741
2742 void createResources(ResourceProvider* provider) 2742 void createResources(ResourceProvider* provider)
2743 { 2743 {
2744 DCHECK(provider); 2744 DCHECK(provider);
2745 gfx::Size size(10, 10); 2745 gfx::Size size(10, 10);
2746 GLenum format = GL_RGBA; 2746 GLenum format = GL_RGBA;
2747 ResourceProvider::TextureUsageHint hint = ResourceProvider::TextureUsage Any; 2747 ResourceProvider::TextureUsageHint hint = ResourceProvider::TextureUsage Any;
2748 setScrollbarGeometry(ScrollbarGeometryFixedThumb::create(FakeWebScrollba rThemeGeometryNonEmpty::create())); 2748 setScrollbarGeometry(ScrollbarGeometryFixedThumb::create(FakeWebScrollba rThemeGeometryNonEmpty::create()));
2749 2749
2750 setBackTrackResourceId(provider->createResource(size, format, hint)); 2750 setBackTrackResourceId(provider->createAllocatedResource(size, format, h int));
2751 setForeTrackResourceId(provider->createResource(size, format, hint)); 2751 setForeTrackResourceId(provider->createAllocatedResource(size, format, h int));
2752 setThumbResourceId(provider->createResource(size, format, hint)); 2752 setThumbResourceId(provider->createAllocatedResource(size, format, hint) );
2753 } 2753 }
2754 2754
2755 protected: 2755 protected:
2756 FakeScrollbarLayerImpl(LayerTreeImpl* treeImpl, int id) 2756 FakeScrollbarLayerImpl(LayerTreeImpl* treeImpl, int id)
2757 : ScrollbarLayerImpl(treeImpl, id) 2757 : ScrollbarLayerImpl(treeImpl, id)
2758 { 2758 {
2759 } 2759 }
2760 }; 2760 };
2761 2761
2762 static inline scoped_ptr<RenderPass> createRenderPassWithResource(ResourceProvid er* provider) 2762 static inline scoped_ptr<RenderPass> createRenderPassWithResource(ResourceProvid er* provider)
2763 { 2763 {
2764 ResourceProvider::ResourceId resourceId = provider->createResource(gfx::Size (1, 1), GL_RGBA, ResourceProvider::TextureUsageAny); 2764 ResourceProvider::ResourceId resourceId = provider->createAllocatedResource( gfx::Size(1, 1), GL_RGBA, ResourceProvider::TextureUsageAny);
2765 2765
2766 scoped_ptr<TestRenderPass> pass = TestRenderPass::Create(); 2766 scoped_ptr<TestRenderPass> pass = TestRenderPass::Create();
2767 pass->SetNew(RenderPass::Id(1, 1), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), gfx::Transform()); 2767 pass->SetNew(RenderPass::Id(1, 1), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), gfx::Transform());
2768 scoped_ptr<SharedQuadState> sharedState = SharedQuadState::Create(); 2768 scoped_ptr<SharedQuadState> sharedState = SharedQuadState::Create();
2769 sharedState->SetAll(gfx::Transform(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), false, 1); 2769 sharedState->SetAll(gfx::Transform(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), false, 1);
2770 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f}; 2770 const float vertex_opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
2771 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); 2771 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create();
2772 quad->SetNew(sharedState.get(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1) , resourceId, false, gfx::RectF(0, 0, 1, 1), vertex_opacity, false); 2772 quad->SetNew(sharedState.get(), gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1) , resourceId, false, gfx::RectF(0, 0, 1, 1), vertex_opacity, false);
2773 2773
2774 pass->AppendSharedQuadState(sharedState.Pass()); 2774 pass->AppendSharedQuadState(sharedState.Pass());
(...skipping 2049 matching lines...) Expand 10 before | Expand all | Expand 10 after
4824 gfx::Rect noDamage = gfx::Rect(m_hostImpl->deviceViewportSize()); 4824 gfx::Rect noDamage = gfx::Rect(m_hostImpl->deviceViewportSize());
4825 drawFrameAndTestDamage(noDamage); 4825 drawFrameAndTestDamage(noDamage);
4826 } 4826 }
4827 4827
4828 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests, 4828 INSTANTIATE_TEST_CASE_P(LayerTreeHostImplTests,
4829 LayerTreeHostImplTest, 4829 LayerTreeHostImplTest,
4830 ::testing::Values(false, true)); 4830 ::testing::Values(false, true));
4831 4831
4832 } // namespace 4832 } // namespace
4833 } // namespace cc 4833 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/prioritized_resource_manager.cc » ('j') | cc/resource_provider.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698