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

Side by Side Diff: cc/layers/tiled_layer_impl_unittest.cc

Issue 16211002: Skip drawing unsupported layers in forced software mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase on r203584 Created 7 years, 6 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
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/layers/tiled_layer_impl.h" 5 #include "cc/layers/tiled_layer_impl.h"
6 6
7 #include "cc/layers/append_quads_data.h" 7 #include "cc/layers/append_quads_data.h"
8 #include "cc/quads/tile_draw_quad.h" 8 #include "cc/quads/tile_draw_quad.h"
9 #include "cc/resources/layer_tiling_data.h" 9 #include "cc/resources/layer_tiling_data.h"
10 #include "cc/test/fake_impl_proxy.h" 10 #include "cc/test/fake_impl_proxy.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 int num_tiles_y = 4; 90 int num_tiles_y = 4;
91 gfx::Size layer_size(tile_size.width() * num_tiles_x, 91 gfx::Size layer_size(tile_size.width() * num_tiles_x,
92 tile_size.height() * num_tiles_y); 92 tile_size.height() * num_tiles_y);
93 93
94 // Verify default layer does creates quads 94 // Verify default layer does creates quads
95 { 95 {
96 scoped_ptr<TiledLayerImpl> layer = 96 scoped_ptr<TiledLayerImpl> layer =
97 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); 97 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS);
98 MockQuadCuller quad_culler; 98 MockQuadCuller quad_culler;
99 AppendQuadsData data; 99 AppendQuadsData data;
100 EXPECT_TRUE(layer->WillDraw(DRAW_MODE_HARDWARE, NULL));
100 layer->AppendQuads(&quad_culler, &data); 101 layer->AppendQuads(&quad_culler, &data);
102 layer->DidDraw(NULL);
101 unsigned num_tiles = num_tiles_x * num_tiles_y; 103 unsigned num_tiles = num_tiles_x * num_tiles_y;
102 EXPECT_EQ(quad_culler.quad_list().size(), num_tiles); 104 EXPECT_EQ(quad_culler.quad_list().size(), num_tiles);
103 } 105 }
104 106
105 // Layer with empty visible layer rect produces no quads 107 // Layer with empty visible layer rect produces no quads
106 { 108 {
107 scoped_ptr<TiledLayerImpl> layer = 109 scoped_ptr<TiledLayerImpl> layer =
108 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); 110 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS);
109 layer->draw_properties().visible_content_rect = gfx::Rect(); 111 layer->draw_properties().visible_content_rect = gfx::Rect();
110 112
111 MockQuadCuller quad_culler; 113 MockQuadCuller quad_culler;
112 AppendQuadsData data; 114 EXPECT_FALSE(layer->WillDraw(DRAW_MODE_HARDWARE, NULL));
113 layer->AppendQuads(&quad_culler, &data);
114 EXPECT_EQ(quad_culler.quad_list().size(), 0u);
115 } 115 }
116 116
117 // Layer with non-intersecting visible layer rect produces no quads 117 // Layer with non-intersecting visible layer rect produces no quads
118 { 118 {
119 scoped_ptr<TiledLayerImpl> layer = 119 scoped_ptr<TiledLayerImpl> layer =
120 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); 120 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS);
121 121
122 gfx::Rect outside_bounds(-100, -100, 50, 50); 122 gfx::Rect outside_bounds(-100, -100, 50, 50);
123 layer->draw_properties().visible_content_rect = outside_bounds; 123 layer->draw_properties().visible_content_rect = outside_bounds;
124 124
125 MockQuadCuller quad_culler; 125 MockQuadCuller quad_culler;
126 AppendQuadsData data; 126 AppendQuadsData data;
127 EXPECT_TRUE(layer->WillDraw(DRAW_MODE_HARDWARE, NULL));
127 layer->AppendQuads(&quad_culler, &data); 128 layer->AppendQuads(&quad_culler, &data);
129 layer->DidDraw(NULL);
128 EXPECT_EQ(quad_culler.quad_list().size(), 0u); 130 EXPECT_EQ(quad_culler.quad_list().size(), 0u);
129 } 131 }
130 132
131 // Layer with skips draw produces no quads 133 // Layer with skips draw produces no quads
132 { 134 {
133 scoped_ptr<TiledLayerImpl> layer = 135 scoped_ptr<TiledLayerImpl> layer =
134 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS); 136 CreateLayer(tile_size, layer_size, LayerTilingData::NO_BORDER_TEXELS);
135 layer->set_skips_draw(true); 137 layer->set_skips_draw(true);
136 138
137 MockQuadCuller quad_culler; 139 MockQuadCuller quad_culler;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 ResourceProvider::ResourceId empty_resource(0); 295 ResourceProvider::ResourceId empty_resource(0);
294 layer->PushTileProperties(0, 1, empty_resource, gfx::Rect(0, 0, 1, 1), false); 296 layer->PushTileProperties(0, 1, empty_resource, gfx::Rect(0, 0, 1, 1), false);
295 layer->PushTileProperties(2, 3, empty_resource, gfx::Rect(0, 0, 1, 1), false); 297 layer->PushTileProperties(2, 3, empty_resource, gfx::Rect(0, 0, 1, 1), false);
296 layer->PushTileProperties(2, 0, empty_resource, gfx::Rect(0, 0, 1, 1), false); 298 layer->PushTileProperties(2, 0, empty_resource, gfx::Rect(0, 0, 1, 1), false);
297 299
298 EXPECT_EQ(layer->GPUMemoryUsageInBytes(), 0u); 300 EXPECT_EQ(layer->GPUMemoryUsageInBytes(), 0u);
299 } 301 }
300 302
301 } // namespace 303 } // namespace
302 } // namespace cc 304 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698