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

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

Issue 1889153002: cc: nine patch: add occlusion support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sky & aelias' changes Created 4 years, 8 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
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "cc/layers/append_quads_data.h" 7 #include "cc/layers/append_quads_data.h"
8 #include "cc/layers/nine_patch_layer_impl.h" 8 #include "cc/layers/nine_patch_layer_impl.h"
9 #include "cc/quads/texture_draw_quad.h" 9 #include "cc/quads/texture_draw_quad.h"
10 #include "cc/resources/ui_resource_bitmap.h" 10 #include "cc/resources/ui_resource_bitmap.h"
(...skipping 17 matching lines...) Expand all
28 return gfx::Rect(gfx::ToRoundedInt(rect_f.x()), 28 return gfx::Rect(gfx::ToRoundedInt(rect_f.x()),
29 gfx::ToRoundedInt(rect_f.y()), 29 gfx::ToRoundedInt(rect_f.y()),
30 gfx::ToRoundedInt(rect_f.width()), 30 gfx::ToRoundedInt(rect_f.width()),
31 gfx::ToRoundedInt(rect_f.height())); 31 gfx::ToRoundedInt(rect_f.height()));
32 } 32 }
33 33
34 void NinePatchLayerLayoutTest(const gfx::Size& bitmap_size, 34 void NinePatchLayerLayoutTest(const gfx::Size& bitmap_size,
35 const gfx::Rect& aperture_rect, 35 const gfx::Rect& aperture_rect,
36 const gfx::Size& layer_size, 36 const gfx::Size& layer_size,
37 const gfx::Rect& border, 37 const gfx::Rect& border,
38 const gfx::Rect& occlusion,
38 bool fill_center, 39 bool fill_center,
39 size_t expected_quad_size) { 40 size_t expected_quad_size) {
40 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 41 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
41 gfx::Rect visible_layer_rect(layer_size); 42 gfx::Rect visible_layer_rect(layer_size);
42 gfx::Rect expected_remaining(border.x(), 43 gfx::Rect expected_layer_remaining;
43 border.y(), 44 gfx::Rect expected_tex_remaining;
44 layer_size.width() - border.width(), 45
45 layer_size.height() - border.height()); 46 if (!occlusion.IsEmpty()) {
47 expected_layer_remaining = occlusion;
48 expected_tex_remaining.SetRect(
49 occlusion.x(), occlusion.y(),
50 (bitmap_size.width() - occlusion.x()) -
51 (layer_size.width() - occlusion.right()),
52 (bitmap_size.height() - occlusion.y()) -
53 (layer_size.height() - occlusion.bottom()));
54 } else {
55 expected_layer_remaining.SetRect(border.x(), border.y(),
56 layer_size.width() - border.width(),
57 layer_size.height() - border.height());
58 expected_tex_remaining = aperture_rect;
59 }
46 60
47 FakeImplTaskRunnerProvider task_runner_provider; 61 FakeImplTaskRunnerProvider task_runner_provider;
48 TestSharedBitmapManager shared_bitmap_manager; 62 TestSharedBitmapManager shared_bitmap_manager;
49 TestTaskGraphRunner task_graph_runner; 63 TestTaskGraphRunner task_graph_runner;
50 scoped_ptr<OutputSurface> output_surface = FakeOutputSurface::Create3d(); 64 scoped_ptr<OutputSurface> output_surface = FakeOutputSurface::Create3d();
51 FakeUIResourceLayerTreeHostImpl host_impl( 65 FakeUIResourceLayerTreeHostImpl host_impl(
52 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner); 66 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner);
53 host_impl.SetVisible(true); 67 host_impl.SetVisible(true);
54 host_impl.InitializeRenderer(output_surface.get()); 68 host_impl.InitializeRenderer(output_surface.get());
55 69
56 scoped_ptr<NinePatchLayerImpl> layer = 70 scoped_ptr<NinePatchLayerImpl> layer =
57 NinePatchLayerImpl::Create(host_impl.active_tree(), 1); 71 NinePatchLayerImpl::Create(host_impl.active_tree(), 1);
58 layer->draw_properties().visible_layer_rect = visible_layer_rect; 72 layer->draw_properties().visible_layer_rect = visible_layer_rect;
59 layer->SetBounds(layer_size); 73 layer->SetBounds(layer_size);
60 layer->SetForceRenderSurface(true); 74 layer->SetForceRenderSurface(true);
61 layer->draw_properties().render_target = layer.get(); 75 layer->draw_properties().render_target = layer.get();
62 76
63 UIResourceId uid = 1; 77 UIResourceId uid = 1;
64 bool is_opaque = false; 78 bool is_opaque = false;
65 UIResourceBitmap bitmap(bitmap_size, is_opaque); 79 UIResourceBitmap bitmap(bitmap_size, is_opaque);
66 80
67 host_impl.CreateUIResource(uid, bitmap); 81 host_impl.CreateUIResource(uid, bitmap);
68 layer->SetUIResourceId(uid); 82 layer->SetUIResourceId(uid);
69 layer->SetImageBounds(bitmap_size); 83 layer->SetImageBounds(bitmap_size);
70 layer->SetLayout(aperture_rect, border, fill_center, false); 84 layer->SetLayout(aperture_rect, border, fill_center, false, occlusion);
71 AppendQuadsData data; 85 AppendQuadsData data;
72 layer->AppendQuads(render_pass.get(), &data); 86 layer->AppendQuads(render_pass.get(), &data);
73 87
74 // Verify quad rects 88 // Verify quad rects
75 const QuadList& quads = render_pass->quad_list; 89 const QuadList& quads = render_pass->quad_list;
76 EXPECT_EQ(expected_quad_size, quads.size()); 90 EXPECT_EQ(expected_quad_size, quads.size());
77 91
78 Region remaining(visible_layer_rect); 92 Region layer_remaining(visible_layer_rect);
79 for (auto iter = quads.cbegin(); iter != quads.cend(); ++iter) { 93 for (auto iter = quads.cbegin(); iter != quads.cend(); ++iter) {
80 gfx::Rect quad_rect = iter->rect; 94 gfx::Rect quad_rect = iter->rect;
81 95
82 EXPECT_TRUE(visible_layer_rect.Contains(quad_rect)) << iter.index(); 96 EXPECT_TRUE(visible_layer_rect.Contains(quad_rect)) << iter.index();
83 EXPECT_TRUE(remaining.Contains(quad_rect)) << iter.index(); 97 EXPECT_TRUE(layer_remaining.Contains(quad_rect)) << iter.index();
84 remaining.Subtract(Region(quad_rect)); 98 layer_remaining.Subtract(Region(quad_rect));
85 } 99 }
86 100
87 // Check if the left-over quad is the same size as the mapped aperture quad in 101 // Check if the left-over quad is the same size as the mapped aperture quad in
88 // layer space. 102 // layer space.
89 if (!fill_center) { 103 if (!fill_center) {
90 EXPECT_EQ(expected_remaining, remaining.bounds()); 104 EXPECT_EQ(expected_layer_remaining, layer_remaining.bounds());
91 } else { 105 } else {
92 EXPECT_TRUE(remaining.bounds().IsEmpty()); 106 EXPECT_TRUE(layer_remaining.bounds().IsEmpty());
93 } 107 }
94 108
95 // Verify UV rects 109 // Verify UV rects
96 gfx::Rect bitmap_rect(bitmap_size); 110 gfx::Rect bitmap_rect(bitmap_size);
97 Region tex_remaining(bitmap_rect); 111 Region tex_remaining(bitmap_rect);
98 for (const auto& quad : quads) { 112 for (const auto& quad : quads) {
99 const TextureDrawQuad* tex_quad = TextureDrawQuad::MaterialCast(quad); 113 const TextureDrawQuad* tex_quad = TextureDrawQuad::MaterialCast(quad);
100 gfx::RectF tex_rect = 114 gfx::RectF tex_rect =
101 gfx::BoundingRect(tex_quad->uv_top_left, tex_quad->uv_bottom_right); 115 gfx::BoundingRect(tex_quad->uv_top_left, tex_quad->uv_bottom_right);
102 tex_rect.Scale(bitmap_size.width(), bitmap_size.height()); 116 tex_rect.Scale(bitmap_size.width(), bitmap_size.height());
103 tex_remaining.Subtract(Region(ToRoundedIntRect(tex_rect))); 117 tex_remaining.Subtract(Region(ToRoundedIntRect(tex_rect)));
104 } 118 }
105 119
106 if (!fill_center) { 120 if (!fill_center) {
107 EXPECT_EQ(aperture_rect, tex_remaining.bounds()); 121 EXPECT_EQ(expected_tex_remaining, tex_remaining.bounds());
108 Region aperture_region(aperture_rect); 122 Region aperture_region(expected_tex_remaining);
109 EXPECT_EQ(aperture_region, tex_remaining); 123 EXPECT_EQ(aperture_region, tex_remaining);
110 } else { 124 } else {
111 EXPECT_TRUE(remaining.bounds().IsEmpty()); 125 EXPECT_TRUE(layer_remaining.bounds().IsEmpty());
112 } 126 }
113 } 127 }
114 128
115 TEST(NinePatchLayerImplTest, VerifyDrawQuads) { 129 TEST(NinePatchLayerImplTest, VerifyDrawQuads) {
116 // Input is a 100x100 bitmap with a 40x50 aperture at x=20, y=30. 130 // Input is a 100x100 bitmap with a 40x50 aperture at x=20, y=30.
117 // The bounds of the layer are set to 400x400. 131 // The bounds of the layer are set to 400x400.
118 gfx::Size bitmap_size(100, 100); 132 gfx::Size bitmap_size(100, 100);
119 gfx::Size layer_size(400, 500); 133 gfx::Size layer_size(400, 500);
120 gfx::Rect aperture_rect(20, 30, 40, 50); 134 gfx::Rect aperture_rect(20, 30, 40, 50);
121 gfx::Rect border(40, 40, 80, 80); 135 gfx::Rect border(40, 40, 80, 80);
122 bool fill_center = false; 136 bool fill_center = false;
123 size_t expected_quad_size = 8; 137 size_t expected_quad_size = 8;
124 NinePatchLayerLayoutTest(bitmap_size, 138 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
125 aperture_rect, 139 gfx::Rect(), fill_center, expected_quad_size);
126 layer_size,
127 border,
128 fill_center,
129 expected_quad_size);
130 140
131 // The bounds of the layer are set to less than the bitmap size. 141 // The bounds of the layer are set to less than the bitmap size.
132 bitmap_size = gfx::Size(100, 100); 142 bitmap_size = gfx::Size(100, 100);
133 layer_size = gfx::Size(40, 50); 143 layer_size = gfx::Size(40, 50);
134 aperture_rect = gfx::Rect(20, 30, 40, 50); 144 aperture_rect = gfx::Rect(20, 30, 40, 50);
135 border = gfx::Rect(10, 10, 25, 15); 145 border = gfx::Rect(10, 10, 25, 15);
136 fill_center = true; 146 fill_center = true;
137 expected_quad_size = 9; 147 expected_quad_size = 9;
138 NinePatchLayerLayoutTest(bitmap_size, 148 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
139 aperture_rect, 149 gfx::Rect(), fill_center, expected_quad_size);
140 layer_size,
141 border,
142 fill_center,
143 expected_quad_size);
144 150
145 // Layer and image sizes are equal. 151 // Layer and image sizes are equal.
146 bitmap_size = gfx::Size(100, 100); 152 bitmap_size = gfx::Size(100, 100);
147 layer_size = gfx::Size(100, 100); 153 layer_size = gfx::Size(100, 100);
148 aperture_rect = gfx::Rect(20, 30, 40, 50); 154 aperture_rect = gfx::Rect(20, 30, 40, 50);
149 border = gfx::Rect(20, 30, 40, 50); 155 border = gfx::Rect(20, 30, 40, 50);
150 fill_center = true; 156 fill_center = true;
151 expected_quad_size = 9; 157 expected_quad_size = 9;
152 NinePatchLayerLayoutTest(bitmap_size, 158 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
153 aperture_rect, 159 gfx::Rect(), fill_center, expected_quad_size);
154 layer_size, 160 }
155 border, 161
156 fill_center, 162 TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithOcclusion) {
157 expected_quad_size); 163 // Input is a 100x100 bitmap with a 40x50 aperture at x=20, y=30.
164 // The bounds of the layer are set to 400x400.
165 gfx::Size bitmap_size(100, 100);
166 gfx::Rect aperture_rect(30, 30, 40, 40);
167 gfx::Size layer_size(400, 400);
168 gfx::Rect occlusion(20, 20, 360, 360);
169 bool fill_center = false;
170 size_t expected_quad_size = 12;
171 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, gfx::Rect(),
172 occlusion, fill_center, expected_quad_size);
158 } 173 }
159 174
160 TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) { 175 TEST(NinePatchLayerImplTest, VerifyDrawQuadsWithEmptyPatches) {
161 // The top component of the 9-patch is empty, so there should be no quads for 176 // The top component of the 9-patch is empty, so there should be no quads for
162 // the top three components. 177 // the top three components.
163 gfx::Size bitmap_size(100, 100); 178 gfx::Size bitmap_size(100, 100);
164 gfx::Size layer_size(100, 100); 179 gfx::Size layer_size(100, 100);
165 gfx::Rect aperture_rect(10, 0, 80, 90); 180 gfx::Rect aperture_rect(10, 0, 80, 90);
166 gfx::Rect border(10, 0, 20, 10); 181 gfx::Rect border(10, 0, 20, 10);
167 bool fill_center = false; 182 bool fill_center = false;
168 size_t expected_quad_size = 5; 183 size_t expected_quad_size = 5;
169 NinePatchLayerLayoutTest(bitmap_size, 184 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
170 aperture_rect, 185 gfx::Rect(), fill_center, expected_quad_size);
171 layer_size,
172 border,
173 fill_center,
174 expected_quad_size);
175 186
176 // The top and left components of the 9-patch are empty, so there should be no 187 // The top and left components of the 9-patch are empty, so there should be no
177 // quads for the left and top components. 188 // quads for the left and top components.
178 bitmap_size = gfx::Size(100, 100); 189 bitmap_size = gfx::Size(100, 100);
179 layer_size = gfx::Size(100, 100); 190 layer_size = gfx::Size(100, 100);
180 aperture_rect = gfx::Rect(0, 0, 90, 90); 191 aperture_rect = gfx::Rect(0, 0, 90, 90);
181 border = gfx::Rect(0, 0, 10, 10); 192 border = gfx::Rect(0, 0, 10, 10);
182 fill_center = false; 193 fill_center = false;
183 expected_quad_size = 3; 194 expected_quad_size = 3;
184 NinePatchLayerLayoutTest(bitmap_size, 195 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
185 aperture_rect, 196 gfx::Rect(), fill_center, expected_quad_size);
186 layer_size,
187 border,
188 fill_center,
189 expected_quad_size);
190 197
191 // The aperture is the size of the bitmap and the center doesn't draw. 198 // The aperture is the size of the bitmap and the center doesn't draw.
192 bitmap_size = gfx::Size(100, 100); 199 bitmap_size = gfx::Size(100, 100);
193 layer_size = gfx::Size(100, 100); 200 layer_size = gfx::Size(100, 100);
194 aperture_rect = gfx::Rect(0, 0, 100, 100); 201 aperture_rect = gfx::Rect(0, 0, 100, 100);
195 border = gfx::Rect(0, 0, 0, 0); 202 border = gfx::Rect(0, 0, 0, 0);
196 fill_center = false; 203 fill_center = false;
197 expected_quad_size = 0; 204 expected_quad_size = 0;
198 NinePatchLayerLayoutTest(bitmap_size, 205 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
199 aperture_rect, 206 gfx::Rect(), fill_center, expected_quad_size);
200 layer_size,
201 border,
202 fill_center,
203 expected_quad_size);
204 207
205 // The aperture is the size of the bitmap and the center does draw. 208 // The aperture is the size of the bitmap and the center does draw.
206 bitmap_size = gfx::Size(100, 100); 209 bitmap_size = gfx::Size(100, 100);
207 layer_size = gfx::Size(100, 100); 210 layer_size = gfx::Size(100, 100);
208 aperture_rect = gfx::Rect(0, 0, 100, 100); 211 aperture_rect = gfx::Rect(0, 0, 100, 100);
209 border = gfx::Rect(0, 0, 0, 0); 212 border = gfx::Rect(0, 0, 0, 0);
210 fill_center = true; 213 fill_center = true;
211 expected_quad_size = 1; 214 expected_quad_size = 1;
212 NinePatchLayerLayoutTest(bitmap_size, 215 NinePatchLayerLayoutTest(bitmap_size, aperture_rect, layer_size, border,
213 aperture_rect, 216 gfx::Rect(), fill_center, expected_quad_size);
214 layer_size,
215 border,
216 fill_center,
217 expected_quad_size);
218 } 217 }
219 218
220 TEST(NinePatchLayerImplTest, Occlusion) { 219 TEST(NinePatchLayerImplTest, Occlusion) {
221 gfx::Size layer_size(1000, 1000); 220 gfx::Size layer_size(1000, 1000);
222 gfx::Size viewport_size(1000, 1000); 221 gfx::Size viewport_size(1000, 1000);
223 222
224 LayerTestCommon::LayerImplTest impl; 223 LayerTestCommon::LayerImplTest impl;
225 224
226 SkBitmap sk_bitmap; 225 SkBitmap sk_bitmap;
227 sk_bitmap.allocN32Pixels(10, 10); 226 sk_bitmap.allocN32Pixels(10, 10);
228 sk_bitmap.setImmutable(); 227 sk_bitmap.setImmutable();
229 UIResourceId uid = 5; 228 UIResourceId uid = 5;
230 UIResourceBitmap bitmap(sk_bitmap); 229 UIResourceBitmap bitmap(sk_bitmap);
231 impl.host_impl()->CreateUIResource(uid, bitmap); 230 impl.host_impl()->CreateUIResource(uid, bitmap);
232 231
233 NinePatchLayerImpl* nine_patch_layer_impl = 232 NinePatchLayerImpl* nine_patch_layer_impl =
234 impl.AddChildToRoot<NinePatchLayerImpl>(); 233 impl.AddChildToRoot<NinePatchLayerImpl>();
235 nine_patch_layer_impl->SetBounds(layer_size); 234 nine_patch_layer_impl->SetBounds(layer_size);
236 nine_patch_layer_impl->SetDrawsContent(true); 235 nine_patch_layer_impl->SetDrawsContent(true);
237 nine_patch_layer_impl->SetUIResourceId(uid); 236 nine_patch_layer_impl->SetUIResourceId(uid);
238 nine_patch_layer_impl->SetImageBounds(gfx::Size(10, 10)); 237 nine_patch_layer_impl->SetImageBounds(gfx::Size(10, 10));
239 238
240 gfx::Rect aperture = gfx::Rect(3, 3, 4, 4); 239 gfx::Rect aperture = gfx::Rect(3, 3, 4, 4);
241 gfx::Rect border = gfx::Rect(300, 300, 400, 400); 240 gfx::Rect border = gfx::Rect(300, 300, 400, 400);
242 nine_patch_layer_impl->SetLayout(aperture, border, true, false); 241 nine_patch_layer_impl->SetLayout(aperture, border, true, false, gfx::Rect());
243 242
244 impl.CalcDrawProps(viewport_size); 243 impl.CalcDrawProps(viewport_size);
245 244
246 { 245 {
247 SCOPED_TRACE("No occlusion"); 246 SCOPED_TRACE("No occlusion");
248 gfx::Rect occluded; 247 gfx::Rect occluded;
249 impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, occluded); 248 impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, occluded);
250 249
251 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(), 250 LayerTestCommon::VerifyQuadsExactlyCoverRect(impl.quad_list(),
252 gfx::Rect(layer_size)); 251 gfx::Rect(layer_size));
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 impl.CalcDrawProps(viewport_size); 309 impl.CalcDrawProps(viewport_size);
311 310
312 { 311 {
313 SCOPED_TRACE("Use opaque image"); 312 SCOPED_TRACE("Use opaque image");
314 313
315 nine_patch_layer_impl->SetUIResourceId(uid_opaque); 314 nine_patch_layer_impl->SetUIResourceId(uid_opaque);
316 nine_patch_layer_impl->SetImageBounds(gfx::Size(10, 10)); 315 nine_patch_layer_impl->SetImageBounds(gfx::Size(10, 10));
317 316
318 gfx::Rect aperture = gfx::Rect(3, 3, 4, 4); 317 gfx::Rect aperture = gfx::Rect(3, 3, 4, 4);
319 gfx::Rect border = gfx::Rect(300, 300, 400, 400); 318 gfx::Rect border = gfx::Rect(300, 300, 400, 400);
320 nine_patch_layer_impl->SetLayout(aperture, border, true, false); 319 nine_patch_layer_impl->SetLayout(aperture, border, true, false,
320 gfx::Rect());
321 321
322 impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, gfx::Rect()); 322 impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, gfx::Rect());
323 323
324 const QuadList &quad_list = impl.quad_list(); 324 const QuadList &quad_list = impl.quad_list();
325 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); 325 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin();
326 it != quad_list.BackToFrontEnd(); ++it) 326 it != quad_list.BackToFrontEnd(); ++it)
327 EXPECT_FALSE(it->ShouldDrawWithBlending()); 327 EXPECT_FALSE(it->ShouldDrawWithBlending());
328 } 328 }
329 329
330 { 330 {
331 SCOPED_TRACE("Use tranparent image"); 331 SCOPED_TRACE("Use tranparent image");
332 332
333 nine_patch_layer_impl->SetUIResourceId(uid_alpha); 333 nine_patch_layer_impl->SetUIResourceId(uid_alpha);
334 334
335 impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, gfx::Rect()); 335 impl.AppendQuadsWithOcclusion(nine_patch_layer_impl, gfx::Rect());
336 336
337 const QuadList &quad_list = impl.quad_list(); 337 const QuadList &quad_list = impl.quad_list();
338 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin(); 338 for (QuadList::ConstBackToFrontIterator it = quad_list.BackToFrontBegin();
339 it != quad_list.BackToFrontEnd(); ++it) 339 it != quad_list.BackToFrontEnd(); ++it)
340 EXPECT_TRUE(it->ShouldDrawWithBlending()); 340 EXPECT_TRUE(it->ShouldDrawWithBlending());
341 } 341 }
342 } 342 }
343 343
344 } // namespace 344 } // namespace
345 } // namespace cc 345 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698