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

Side by Side Diff: cc/tiled_layer_unittest.cc

Issue 11503005: cc: Refactor content scale/bounds into draw properties (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase 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 | Annotate | Revision Log
« no previous file with comments | « cc/test/tiled_layer_test_common.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/tiled_layer.h" 5 #include "cc/tiled_layer.h"
6 6
7 #include "cc/bitmap_content_layer_updater.h" 7 #include "cc/bitmap_content_layer_updater.h"
8 #include "cc/layer_painter.h" 8 #include "cc/layer_painter.h"
9 #include "cc/overdraw_metrics.h" 9 #include "cc/overdraw_metrics.h"
10 #include "cc/rendering_stats.h" 10 #include "cc/rendering_stats.h"
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 layer->update(*m_queue.get(), 0, m_stats); 756 layer->update(*m_queue.get(), 0, m_stats);
757 updateTextures(); 757 updateTextures();
758 layerPushPropertiesTo(layer.get(), layerImpl.get()); 758 layerPushPropertiesTo(layer.get(), layerImpl.get());
759 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0)); 759 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0));
760 EXPECT_FALSE(layerImpl->hasResourceIdForTileAt(0, 1)); 760 EXPECT_FALSE(layerImpl->hasResourceIdForTileAt(0, 1));
761 EXPECT_FALSE(layerImpl->hasResourceIdForTileAt(1, 0)); 761 EXPECT_FALSE(layerImpl->hasResourceIdForTileAt(1, 0));
762 EXPECT_FALSE(layerImpl->hasResourceIdForTileAt(1, 1)); 762 EXPECT_FALSE(layerImpl->hasResourceIdForTileAt(1, 1));
763 763
764 // Change the contents scale and verify that the content rectangle requiring painting 764 // Change the contents scale and verify that the content rectangle requiring painting
765 // is not scaled. 765 // is not scaled.
766 layer->setContentsScale(2); 766 layer->updateContentsScale(2);
767 layer->drawProperties().visible_content_rect = gfx::Rect(0, 0, 200, 200); 767 layer->drawProperties().visible_content_rect = gfx::Rect(0, 0, 200, 200);
768 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 100, 100), layer->lastNeedsDisplayRect ()); 768 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 100, 100), layer->lastNeedsDisplayRect ());
769 769
770 // The impl side should get 2x2 tiles now. 770 // The impl side should get 2x2 tiles now.
771 layer->setTexturePriorities(m_priorityCalculator); 771 layer->setTexturePriorities(m_priorityCalculator);
772 m_resourceManager->prioritizeTextures(); 772 m_resourceManager->prioritizeTextures();
773 layer->update(*m_queue.get(), 0, m_stats); 773 layer->update(*m_queue.get(), 0, m_stats);
774 updateTextures(); 774 updateTextures();
775 layerPushPropertiesTo(layer.get(), layerImpl.get()); 775 layerPushPropertiesTo(layer.get(), layerImpl.get());
776 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0)); 776 EXPECT_TRUE(layerImpl->hasResourceIdForTileAt(0, 0));
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndScaling) 1169 TEST_F(TiledLayerTest, tilesPaintedWithOcclusionAndScaling)
1170 { 1170 {
1171 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_resourceManager.get())); 1171 scoped_refptr<FakeTiledLayer> layer = make_scoped_refptr(new FakeTiledLayer( m_resourceManager.get()));
1172 TestOcclusionTracker occluded; 1172 TestOcclusionTracker occluded;
1173 1173
1174 // The tile size is 100x100. 1174 // The tile size is 100x100.
1175 1175
1176 // This makes sure the painting works when the content space is scaled to 1176 // This makes sure the painting works when the content space is scaled to
1177 // a different layer space. In this case tiles are scaled to be 200x200 1177 // a different layer space. In this case tiles are scaled to be 200x200
1178 // pixels, which means none should be occluded. 1178 // pixels, which means none should be occluded.
1179 layer->setContentsScale(0.5); 1179 layer->updateContentsScale(0.5);
1180 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY()); 1180 EXPECT_FLOAT_EQ(layer->contentsScaleX(), layer->contentsScaleY());
1181 layer->setBounds(gfx::Size(600, 600)); 1181 layer->setBounds(gfx::Size(600, 600));
1182 gfx::Transform drawTransform; 1182 gfx::Transform drawTransform;
1183 double invScaleFactor = 1 / layer->contentsScaleX(); 1183 double invScaleFactor = 1 / layer->contentsScaleX();
1184 drawTransform.Scale(invScaleFactor, invScaleFactor); 1184 drawTransform.Scale(invScaleFactor, invScaleFactor);
1185 layer->drawProperties().target_space_transform = drawTransform; 1185 layer->drawProperties().target_space_transform = drawTransform;
1186 layer->drawProperties().screen_space_transform = drawTransform; 1186 layer->drawProperties().screen_space_transform = drawTransform;
1187 1187
1188 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100)); 1188 occluded.setOcclusion(gfx::Rect(200, 200, 300, 100));
1189 layer->drawProperties().drawable_content_rect = gfx::Rect(gfx::Point(), laye r->bounds()); 1189 layer->drawProperties().drawable_content_rect = gfx::Rect(gfx::Point(), laye r->bounds());
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
1570 scoped_refptr<BitmapContentLayerUpdater> m_layerUpdater; 1570 scoped_refptr<BitmapContentLayerUpdater> m_layerUpdater;
1571 }; 1571 };
1572 1572
1573 TEST_F(TiledLayerTest, nonIntegerContentsScaleIsNotDistortedDuringPaint) 1573 TEST_F(TiledLayerTest, nonIntegerContentsScaleIsNotDistortedDuringPaint)
1574 { 1574 {
1575 scoped_refptr<UpdateTrackingTiledLayer> layer = make_scoped_refptr(new Updat eTrackingTiledLayer(m_resourceManager.get())); 1575 scoped_refptr<UpdateTrackingTiledLayer> layer = make_scoped_refptr(new Updat eTrackingTiledLayer(m_resourceManager.get()));
1576 1576
1577 gfx::Rect layerRect(0, 0, 30, 31); 1577 gfx::Rect layerRect(0, 0, 30, 31);
1578 layer->setPosition(layerRect.origin()); 1578 layer->setPosition(layerRect.origin());
1579 layer->setBounds(layerRect.size()); 1579 layer->setBounds(layerRect.size());
1580 layer->setContentsScale(1.5); 1580 layer->updateContentsScale(1.5);
1581 1581
1582 gfx::Rect contentRect(0, 0, 45, 47); 1582 gfx::Rect contentRect(0, 0, 45, 47);
1583 EXPECT_EQ(contentRect.size(), layer->contentBounds()); 1583 EXPECT_EQ(contentRect.size(), layer->contentBounds());
1584 layer->drawProperties().visible_content_rect = contentRect; 1584 layer->drawProperties().visible_content_rect = contentRect;
1585 layer->drawProperties().drawable_content_rect = contentRect; 1585 layer->drawProperties().drawable_content_rect = contentRect;
1586 1586
1587 layer->setTexturePriorities(m_priorityCalculator); 1587 layer->setTexturePriorities(m_priorityCalculator);
1588 m_resourceManager->prioritizeTextures(); 1588 m_resourceManager->prioritizeTextures();
1589 1589
1590 // Update the whole tile. 1590 // Update the whole tile.
(...skipping 10 matching lines...) Expand all
1601 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); 1601 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect());
1602 } 1602 }
1603 1603
1604 TEST_F(TiledLayerTest, nonIntegerContentsScaleIsNotDistortedDuringInvalidation) 1604 TEST_F(TiledLayerTest, nonIntegerContentsScaleIsNotDistortedDuringInvalidation)
1605 { 1605 {
1606 scoped_refptr<UpdateTrackingTiledLayer> layer = make_scoped_refptr(new Updat eTrackingTiledLayer(m_resourceManager.get())); 1606 scoped_refptr<UpdateTrackingTiledLayer> layer = make_scoped_refptr(new Updat eTrackingTiledLayer(m_resourceManager.get()));
1607 1607
1608 gfx::Rect layerRect(0, 0, 30, 31); 1608 gfx::Rect layerRect(0, 0, 30, 31);
1609 layer->setPosition(layerRect.origin()); 1609 layer->setPosition(layerRect.origin());
1610 layer->setBounds(layerRect.size()); 1610 layer->setBounds(layerRect.size());
1611 layer->setContentsScale(1.3f); 1611 layer->updateContentsScale(1.3f);
1612 1612
1613 gfx::Rect contentRect(gfx::Point(), layer->contentBounds()); 1613 gfx::Rect contentRect(gfx::Point(), layer->contentBounds());
1614 layer->drawProperties().visible_content_rect = contentRect; 1614 layer->drawProperties().visible_content_rect = contentRect;
1615 layer->drawProperties().drawable_content_rect = contentRect; 1615 layer->drawProperties().drawable_content_rect = contentRect;
1616 1616
1617 layer->setTexturePriorities(m_priorityCalculator); 1617 layer->setTexturePriorities(m_priorityCalculator);
1618 m_resourceManager->prioritizeTextures(); 1618 m_resourceManager->prioritizeTextures();
1619 1619
1620 // Update the whole tile. 1620 // Update the whole tile.
1621 layer->update(*m_queue.get(), 0, m_stats); 1621 layer->update(*m_queue.get(), 0, m_stats);
1622 layer->trackingLayerPainter()->resetPaintedRect(); 1622 layer->trackingLayerPainter()->resetPaintedRect();
1623 1623
1624 EXPECT_RECT_EQ(gfx::Rect(), layer->trackingLayerPainter()->paintedRect()); 1624 EXPECT_RECT_EQ(gfx::Rect(), layer->trackingLayerPainter()->paintedRect());
1625 updateTextures(); 1625 updateTextures();
1626 1626
1627 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds. 1627 // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds.
1628 layer->setNeedsDisplayRect(layerRect); 1628 layer->setNeedsDisplayRect(layerRect);
1629 layer->update(*m_queue.get(), 0, m_stats); 1629 layer->update(*m_queue.get(), 0, m_stats);
1630 1630
1631 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); 1631 EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect());
1632 } 1632 }
1633 1633
1634 } // namespace 1634 } // namespace
1635 } // namespace cc 1635 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/tiled_layer_test_common.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698