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

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

Issue 1096703006: cc: Some more cleanup and removing TODOs for validating resources. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 "cc/layers/nine_patch_layer_impl.h" 5 #include "cc/layers/nine_patch_layer_impl.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/quads/texture_draw_quad.h" 10 #include "cc/quads/texture_draw_quad.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 if (!ui_resource_id_) 94 if (!ui_resource_id_)
95 return; 95 return;
96 96
97 ResourceProvider::ResourceId resource = 97 ResourceProvider::ResourceId resource =
98 layer_tree_impl()->ResourceIdForUIResource(ui_resource_id_); 98 layer_tree_impl()->ResourceIdForUIResource(ui_resource_id_);
99 99
100 if (!resource) 100 if (!resource)
101 return; 101 return;
102 102
103 // TODO(danakj): crbug.com/455931
104 layer_tree_impl()->resource_provider()->ValidateResource(resource);
105
106 static const bool flipped = false; 103 static const bool flipped = false;
107 static const bool nearest_neighbor = false; 104 static const bool nearest_neighbor = false;
108 static const bool premultiplied_alpha = true; 105 static const bool premultiplied_alpha = true;
109 106
110 DCHECK(!bounds().IsEmpty()); 107 DCHECK(!bounds().IsEmpty());
111 108
112 // NinePatch border widths in layer space. 109 // NinePatch border widths in layer space.
113 int layer_left_width = border_.x(); 110 int layer_left_width = border_.x();
114 int layer_top_height = border_.y(); 111 int layer_top_height = border_.y();
115 int layer_right_width = border_.width() - layer_left_width; 112 int layer_right_width = border_.width() - layer_left_width;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 opaque_rect, 224 opaque_rect,
228 visible_rect, 225 visible_rect,
229 resource, 226 resource,
230 premultiplied_alpha, 227 premultiplied_alpha,
231 uv_top_left.origin(), 228 uv_top_left.origin(),
232 uv_top_left.bottom_right(), 229 uv_top_left.bottom_right(),
233 SK_ColorTRANSPARENT, 230 SK_ColorTRANSPARENT,
234 vertex_opacity, 231 vertex_opacity,
235 flipped, 232 flipped,
236 nearest_neighbor); 233 nearest_neighbor);
234 ValidateQuadResources(quad);
237 } 235 }
238 236
239 visible_rect = 237 visible_rect =
240 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 238 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
241 layer_top_right); 239 layer_top_right);
242 opaque_rect = opaque ? visible_rect : gfx::Rect(); 240 opaque_rect = opaque ? visible_rect : gfx::Rect();
243 if (!visible_rect.IsEmpty()) { 241 if (!visible_rect.IsEmpty()) {
244 TextureDrawQuad* quad = 242 TextureDrawQuad* quad =
245 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 243 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
246 quad->SetNew(shared_quad_state, 244 quad->SetNew(shared_quad_state,
247 layer_top_right, 245 layer_top_right,
248 opaque_rect, 246 opaque_rect,
249 visible_rect, 247 visible_rect,
250 resource, 248 resource,
251 premultiplied_alpha, 249 premultiplied_alpha,
252 uv_top_right.origin(), 250 uv_top_right.origin(),
253 uv_top_right.bottom_right(), 251 uv_top_right.bottom_right(),
254 SK_ColorTRANSPARENT, 252 SK_ColorTRANSPARENT,
255 vertex_opacity, 253 vertex_opacity,
256 flipped, 254 flipped,
257 nearest_neighbor); 255 nearest_neighbor);
256 ValidateQuadResources(quad);
258 } 257 }
259 258
260 visible_rect = 259 visible_rect =
261 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 260 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
262 layer_bottom_left); 261 layer_bottom_left);
263 opaque_rect = opaque ? visible_rect : gfx::Rect(); 262 opaque_rect = opaque ? visible_rect : gfx::Rect();
264 if (!visible_rect.IsEmpty()) { 263 if (!visible_rect.IsEmpty()) {
265 TextureDrawQuad* quad = 264 TextureDrawQuad* quad =
266 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 265 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
267 quad->SetNew(shared_quad_state, 266 quad->SetNew(shared_quad_state,
268 layer_bottom_left, 267 layer_bottom_left,
269 opaque_rect, 268 opaque_rect,
270 visible_rect, 269 visible_rect,
271 resource, 270 resource,
272 premultiplied_alpha, 271 premultiplied_alpha,
273 uv_bottom_left.origin(), 272 uv_bottom_left.origin(),
274 uv_bottom_left.bottom_right(), 273 uv_bottom_left.bottom_right(),
275 SK_ColorTRANSPARENT, 274 SK_ColorTRANSPARENT,
276 vertex_opacity, 275 vertex_opacity,
277 flipped, 276 flipped,
278 nearest_neighbor); 277 nearest_neighbor);
278 ValidateQuadResources(quad);
279 } 279 }
280 280
281 visible_rect = 281 visible_rect =
282 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 282 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
283 layer_bottom_right); 283 layer_bottom_right);
284 opaque_rect = opaque ? visible_rect : gfx::Rect(); 284 opaque_rect = opaque ? visible_rect : gfx::Rect();
285 if (!visible_rect.IsEmpty()) { 285 if (!visible_rect.IsEmpty()) {
286 TextureDrawQuad* quad = 286 TextureDrawQuad* quad =
287 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 287 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
288 quad->SetNew(shared_quad_state, 288 quad->SetNew(shared_quad_state,
289 layer_bottom_right, 289 layer_bottom_right,
290 opaque_rect, 290 opaque_rect,
291 visible_rect, 291 visible_rect,
292 resource, 292 resource,
293 premultiplied_alpha, 293 premultiplied_alpha,
294 uv_bottom_right.origin(), 294 uv_bottom_right.origin(),
295 uv_bottom_right.bottom_right(), 295 uv_bottom_right.bottom_right(),
296 SK_ColorTRANSPARENT, 296 SK_ColorTRANSPARENT,
297 vertex_opacity, 297 vertex_opacity,
298 flipped, 298 flipped,
299 nearest_neighbor); 299 nearest_neighbor);
300 ValidateQuadResources(quad);
300 } 301 }
301 302
302 visible_rect = 303 visible_rect =
303 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 304 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
304 layer_top); 305 layer_top);
305 opaque_rect = opaque ? visible_rect : gfx::Rect(); 306 opaque_rect = opaque ? visible_rect : gfx::Rect();
306 if (!visible_rect.IsEmpty()) { 307 if (!visible_rect.IsEmpty()) {
307 TextureDrawQuad* quad = 308 TextureDrawQuad* quad =
308 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 309 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
309 quad->SetNew(shared_quad_state, 310 quad->SetNew(shared_quad_state,
310 layer_top, 311 layer_top,
311 opaque_rect, 312 opaque_rect,
312 visible_rect, 313 visible_rect,
313 resource, 314 resource,
314 premultiplied_alpha, 315 premultiplied_alpha,
315 uv_top.origin(), 316 uv_top.origin(),
316 uv_top.bottom_right(), 317 uv_top.bottom_right(),
317 SK_ColorTRANSPARENT, 318 SK_ColorTRANSPARENT,
318 vertex_opacity, 319 vertex_opacity,
319 flipped, 320 flipped,
320 nearest_neighbor); 321 nearest_neighbor);
322 ValidateQuadResources(quad);
321 } 323 }
322 324
323 visible_rect = 325 visible_rect =
324 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 326 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
325 layer_left); 327 layer_left);
326 opaque_rect = opaque ? visible_rect : gfx::Rect(); 328 opaque_rect = opaque ? visible_rect : gfx::Rect();
327 if (!visible_rect.IsEmpty()) { 329 if (!visible_rect.IsEmpty()) {
328 TextureDrawQuad* quad = 330 TextureDrawQuad* quad =
329 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 331 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
330 quad->SetNew(shared_quad_state, 332 quad->SetNew(shared_quad_state,
331 layer_left, 333 layer_left,
332 opaque_rect, 334 opaque_rect,
333 visible_rect, 335 visible_rect,
334 resource, 336 resource,
335 premultiplied_alpha, 337 premultiplied_alpha,
336 uv_left.origin(), 338 uv_left.origin(),
337 uv_left.bottom_right(), 339 uv_left.bottom_right(),
338 SK_ColorTRANSPARENT, 340 SK_ColorTRANSPARENT,
339 vertex_opacity, 341 vertex_opacity,
340 flipped, 342 flipped,
341 nearest_neighbor); 343 nearest_neighbor);
344 ValidateQuadResources(quad);
342 } 345 }
343 346
344 visible_rect = 347 visible_rect =
345 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 348 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
346 layer_right); 349 layer_right);
347 opaque_rect = opaque ? visible_rect : gfx::Rect(); 350 opaque_rect = opaque ? visible_rect : gfx::Rect();
348 if (!visible_rect.IsEmpty()) { 351 if (!visible_rect.IsEmpty()) {
349 TextureDrawQuad* quad = 352 TextureDrawQuad* quad =
350 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 353 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
351 quad->SetNew(shared_quad_state, 354 quad->SetNew(shared_quad_state,
352 layer_right, 355 layer_right,
353 opaque_rect, 356 opaque_rect,
354 layer_right, 357 layer_right,
355 resource, 358 resource,
356 premultiplied_alpha, 359 premultiplied_alpha,
357 uv_right.origin(), 360 uv_right.origin(),
358 uv_right.bottom_right(), 361 uv_right.bottom_right(),
359 SK_ColorTRANSPARENT, 362 SK_ColorTRANSPARENT,
360 vertex_opacity, 363 vertex_opacity,
361 flipped, 364 flipped,
362 nearest_neighbor); 365 nearest_neighbor);
366 ValidateQuadResources(quad);
363 } 367 }
364 368
365 visible_rect = 369 visible_rect =
366 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 370 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
367 layer_bottom); 371 layer_bottom);
368 opaque_rect = opaque ? visible_rect : gfx::Rect(); 372 opaque_rect = opaque ? visible_rect : gfx::Rect();
369 if (!visible_rect.IsEmpty()) { 373 if (!visible_rect.IsEmpty()) {
370 TextureDrawQuad* quad = 374 TextureDrawQuad* quad =
371 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 375 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
372 quad->SetNew(shared_quad_state, 376 quad->SetNew(shared_quad_state,
373 layer_bottom, 377 layer_bottom,
374 opaque_rect, 378 opaque_rect,
375 visible_rect, 379 visible_rect,
376 resource, 380 resource,
377 premultiplied_alpha, 381 premultiplied_alpha,
378 uv_bottom.origin(), 382 uv_bottom.origin(),
379 uv_bottom.bottom_right(), 383 uv_bottom.bottom_right(),
380 SK_ColorTRANSPARENT, 384 SK_ColorTRANSPARENT,
381 vertex_opacity, 385 vertex_opacity,
382 flipped, 386 flipped,
383 nearest_neighbor); 387 nearest_neighbor);
388 ValidateQuadResources(quad);
384 } 389 }
385 390
386 if (fill_center_) { 391 if (fill_center_) {
387 visible_rect = 392 visible_rect =
388 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect( 393 draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
389 layer_center); 394 layer_center);
390 opaque_rect = opaque ? visible_rect : gfx::Rect(); 395 opaque_rect = opaque ? visible_rect : gfx::Rect();
391 if (!visible_rect.IsEmpty()) { 396 if (!visible_rect.IsEmpty()) {
392 TextureDrawQuad* quad = 397 TextureDrawQuad* quad =
393 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 398 render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
394 quad->SetNew(shared_quad_state, 399 quad->SetNew(shared_quad_state,
395 layer_center, 400 layer_center,
396 opaque_rect, 401 opaque_rect,
397 visible_rect, 402 visible_rect,
398 resource, 403 resource,
399 premultiplied_alpha, 404 premultiplied_alpha,
400 uv_center.origin(), 405 uv_center.origin(),
401 uv_center.bottom_right(), 406 uv_center.bottom_right(),
402 SK_ColorTRANSPARENT, 407 SK_ColorTRANSPARENT,
403 vertex_opacity, 408 vertex_opacity,
404 flipped, 409 flipped,
405 nearest_neighbor); 410 nearest_neighbor);
411 ValidateQuadResources(quad);
406 } 412 }
407 } 413 }
408 } 414 }
409 415
410 const char* NinePatchLayerImpl::LayerTypeAsString() const { 416 const char* NinePatchLayerImpl::LayerTypeAsString() const {
411 return "cc::NinePatchLayerImpl"; 417 return "cc::NinePatchLayerImpl";
412 } 418 }
413 419
414 base::DictionaryValue* NinePatchLayerImpl::LayerTreeAsJson() const { 420 base::DictionaryValue* NinePatchLayerImpl::LayerTreeAsJson() const {
415 base::DictionaryValue* result = LayerImpl::LayerTreeAsJson(); 421 base::DictionaryValue* result = LayerImpl::LayerTreeAsJson();
(...skipping 11 matching lines...) Expand all
427 result->Set("ImageBounds", list); 433 result->Set("ImageBounds", list);
428 434
429 result->Set("Border", MathUtil::AsValue(border_).release()); 435 result->Set("Border", MathUtil::AsValue(border_).release());
430 436
431 result->SetBoolean("FillCenter", fill_center_); 437 result->SetBoolean("FillCenter", fill_center_);
432 438
433 return result; 439 return result;
434 } 440 }
435 441
436 } // namespace cc 442 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698