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

Side by Side Diff: cc/quad_culler_unittest.cc

Issue 12774006: cc: Chromify Layer and LayerImpl classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: MoreAndroidCompilings Created 7 years, 9 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/quad_culler.cc ('k') | cc/quad_sink.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/quad_culler.h" 5 #include "cc/quad_culler.h"
6 6
7 #include "cc/append_quads_data.h" 7 #include "cc/append_quads_data.h"
8 #include "cc/layer_tiling_data.h" 8 #include "cc/layer_tiling_data.h"
9 #include "cc/math_util.h" 9 #include "cc/math_util.h"
10 #include "cc/occlusion_tracker.h" 10 #include "cc/occlusion_tracker.h"
(...skipping 25 matching lines...) Expand all
36 gfx::Rect m_scissorRectInScreen; 36 gfx::Rect m_scissorRectInScreen;
37 }; 37 };
38 38
39 typedef LayerIterator<LayerImpl, std::vector<LayerImpl*>, RenderSurfaceImpl, Lay erIteratorActions::FrontToBack> LayerIteratorType; 39 typedef LayerIterator<LayerImpl, std::vector<LayerImpl*>, RenderSurfaceImpl, Lay erIteratorActions::FrontToBack> LayerIteratorType;
40 40
41 class QuadCullerTest : public testing::Test 41 class QuadCullerTest : public testing::Test
42 { 42 {
43 public: 43 public:
44 QuadCullerTest() 44 QuadCullerTest()
45 : m_hostImpl(&m_proxy) 45 : m_hostImpl(&m_proxy)
46 , m_layerId(1) 46 , layer_id_(1)
47 { 47 {
48 } 48 }
49 49
50 scoped_ptr<TiledLayerImpl> makeLayer(TiledLayerImpl* parent, const gfx::Tran sform& drawTransform, const gfx::Rect& layerRect, float opacity, bool opaque, co nst gfx::Rect& layerOpaqueRect, std::vector<LayerImpl*>& surfaceLayerList) 50 scoped_ptr<TiledLayerImpl> makeLayer(TiledLayerImpl* parent, const gfx::Tran sform& drawTransform, const gfx::Rect& layerRect, float opacity, bool opaque, co nst gfx::Rect& layerOpaqueRect, std::vector<LayerImpl*>& surfaceLayerList)
51 { 51 {
52 scoped_ptr<TiledLayerImpl> layer = TiledLayerImpl::create(m_hostImpl.act iveTree(), m_layerId++); 52 scoped_ptr<TiledLayerImpl> layer = TiledLayerImpl::Create(m_hostImpl.act iveTree(), layer_id_++);
53 scoped_ptr<LayerTilingData> tiler = LayerTilingData::create(gfx::Size(10 0, 100), LayerTilingData::NoBorderTexels); 53 scoped_ptr<LayerTilingData> tiler = LayerTilingData::create(gfx::Size(10 0, 100), LayerTilingData::NoBorderTexels);
54 tiler->setBounds(layerRect.size()); 54 tiler->setBounds(layerRect.size());
55 layer->setTilingData(*tiler); 55 layer->setTilingData(*tiler);
56 layer->setSkipsDraw(false); 56 layer->setSkipsDraw(false);
57 layer->drawProperties().target_space_transform = drawTransform; 57 layer->draw_properties().target_space_transform = drawTransform;
58 layer->drawProperties().screen_space_transform = drawTransform; 58 layer->draw_properties().screen_space_transform = drawTransform;
59 layer->drawProperties().visible_content_rect = layerRect; 59 layer->draw_properties().visible_content_rect = layerRect;
60 layer->drawProperties().opacity = opacity; 60 layer->draw_properties().opacity = opacity;
61 layer->setContentsOpaque(opaque); 61 layer->SetContentsOpaque(opaque);
62 layer->setBounds(layerRect.size()); 62 layer->SetBounds(layerRect.size());
63 layer->setContentBounds(layerRect.size()); 63 layer->SetContentBounds(layerRect.size());
64 64
65 ResourceProvider::ResourceId resourceId = 1; 65 ResourceProvider::ResourceId resourceId = 1;
66 for (int i = 0; i < tiler->numTilesX(); ++i) 66 for (int i = 0; i < tiler->numTilesX(); ++i)
67 for (int j = 0; j < tiler->numTilesY(); ++j) { 67 for (int j = 0; j < tiler->numTilesY(); ++j) {
68 gfx::Rect tileOpaqueRect = opaque ? tiler->tileBounds(i, j) : gfx: :IntersectRects(tiler->tileBounds(i, j), layerOpaqueRect); 68 gfx::Rect tileOpaqueRect = opaque ? tiler->tileBounds(i, j) : gfx: :IntersectRects(tiler->tileBounds(i, j), layerOpaqueRect);
69 layer->pushTileProperties(i, j, resourceId++, tileOpaqueRect, fa lse); 69 layer->pushTileProperties(i, j, resourceId++, tileOpaqueRect, fa lse);
70 } 70 }
71 71
72 gfx::Rect rectInTarget = MathUtil::mapClippedRect(layer->drawTransform() , layer->visibleContentRect()); 72 gfx::Rect rectInTarget = MathUtil::mapClippedRect(layer->draw_transform( ), layer->visible_content_rect());
73 if (!parent) { 73 if (!parent) {
74 layer->createRenderSurface(); 74 layer->CreateRenderSurface();
75 layer->renderSurface()->SetContentRect(rectInTarget); 75 layer->render_surface()->SetContentRect(rectInTarget);
76 surfaceLayerList.push_back(layer.get()); 76 surfaceLayerList.push_back(layer.get());
77 layer->renderSurface()->layer_list().push_back(layer.get()); 77 layer->render_surface()->layer_list().push_back(layer.get());
78 } else { 78 } else {
79 layer->drawProperties().render_target = parent->renderTarget(); 79 layer->draw_properties().render_target = parent->render_target();
80 parent->renderSurface()->layer_list().push_back(layer.get()); 80 parent->render_surface()->layer_list().push_back(layer.get());
81 rectInTarget.Union(MathUtil::mapClippedRect(parent->drawTransform(), parent->visibleContentRect())); 81 rectInTarget.Union(MathUtil::mapClippedRect(parent->draw_transform() , parent->visible_content_rect()));
82 parent->renderSurface()->SetContentRect(rectInTarget); 82 parent->render_surface()->SetContentRect(rectInTarget);
83 } 83 }
84 layer->drawProperties().drawable_content_rect = rectInTarget; 84 layer->draw_properties().drawable_content_rect = rectInTarget;
85 85
86 return layer.Pass(); 86 return layer.Pass();
87 } 87 }
88 88
89 void appendQuads(QuadList& quadList, SharedQuadStateList& sharedStateList, T iledLayerImpl* layer, LayerIteratorType& it, OcclusionTrackerImpl& occlusionTrac ker) 89 void appendQuads(QuadList& quadList, SharedQuadStateList& sharedStateList, T iledLayerImpl* layer, LayerIteratorType& it, OcclusionTrackerImpl& occlusionTrac ker)
90 { 90 {
91 occlusionTracker.EnterLayer(it); 91 occlusionTracker.EnterLayer(it);
92 QuadCuller quadCuller(quadList, sharedStateList, layer, occlusionTracker , false, false); 92 QuadCuller quadCuller(quadList, sharedStateList, layer, occlusionTracker , false, false);
93 AppendQuadsData data; 93 AppendQuadsData data;
94 layer->appendQuads(quadCuller, data); 94 layer->AppendQuads(&quadCuller, &data);
95 occlusionTracker.LeaveLayer(it); 95 occlusionTracker.LeaveLayer(it);
96 ++it; 96 ++it;
97 } 97 }
98 98
99 protected: 99 protected:
100 FakeImplProxy m_proxy; 100 FakeImplProxy m_proxy;
101 FakeLayerTreeHostImpl m_hostImpl; 101 FakeLayerTreeHostImpl m_hostImpl;
102 int m_layerId; 102 int layer_id_;
103 }; 103 };
104 104
105 #define DECLARE_AND_INITIALIZE_TEST_QUADS \ 105 #define DECLARE_AND_INITIALIZE_TEST_QUADS \
106 QuadList quadList; \ 106 QuadList quadList; \
107 SharedQuadStateList sharedStateList; \ 107 SharedQuadStateList sharedStateList; \
108 std::vector<LayerImpl*> renderSurfaceLayerList; \ 108 std::vector<LayerImpl*> renderSurfaceLayerList; \
109 gfx::Transform childTransform; \ 109 gfx::Transform childTransform; \
110 gfx::Size rootSize = gfx::Size(300, 300); \ 110 gfx::Size rootSize = gfx::Size(300, 300); \
111 gfx::Rect rootRect = gfx::Rect(rootSize); \ 111 gfx::Rect rootRect = gfx::Rect(rootSize); \
112 gfx::Size childSize = gfx::Size(200, 200); \ 112 gfx::Size childSize = gfx::Size(200, 200); \
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke r); 476 appendQuads(quadList, sharedStateList, childLayer.get(), it, occlusionTracke r);
477 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker ); 477 appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker );
478 EXPECT_EQ(quadList.size(), 9u); 478 EXPECT_EQ(quadList.size(), 9u);
479 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 0, 1); 479 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_opaque(), 0, 1);
480 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0 , 1); 480 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_drawn_translucent(), 0 , 1);
481 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(), 0, 1); 481 EXPECT_NEAR(occlusionTracker.OverdrawMetrics().pixels_culled_for_drawing(), 0, 1);
482 } 482 }
483 483
484 } // namespace 484 } // namespace
485 } // namespace cc 485 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quad_culler.cc ('k') | cc/quad_sink.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698