| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "content/common/cc_messages.h" | 5 #include "content/common/cc_messages.h" |
| 6 | 6 |
| 7 #include "cc/output/compositor_frame.h" | 7 #include "cc/output/compositor_frame.h" |
| 8 #include "cc/output/filter_operations.h" | 8 #include "cc/output/filter_operations.h" |
| 9 #include "cc/quads/draw_quad.h" | 9 #include "cc/quads/draw_quad.h" |
| 10 #include "cc/quads/largest_draw_quad.h" | 10 #include "cc/quads/largest_draw_quad.h" |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 293 l->append(") "); | 293 l->append(") "); |
| 294 } | 294 } |
| 295 | 295 |
| 296 void ParamTraits<cc::RenderPass>::Write( | 296 void ParamTraits<cc::RenderPass>::Write( |
| 297 Message* m, const param_type& p) { | 297 Message* m, const param_type& p) { |
| 298 WriteParam(m, p.id); | 298 WriteParam(m, p.id); |
| 299 WriteParam(m, p.output_rect); | 299 WriteParam(m, p.output_rect); |
| 300 WriteParam(m, p.damage_rect); | 300 WriteParam(m, p.damage_rect); |
| 301 WriteParam(m, p.transform_to_root_target); | 301 WriteParam(m, p.transform_to_root_target); |
| 302 WriteParam(m, p.has_transparent_background); | 302 WriteParam(m, p.has_transparent_background); |
| 303 WriteParam(m, p.referenced_surfaces); |
| 303 WriteParam(m, p.quad_list.size()); | 304 WriteParam(m, p.quad_list.size()); |
| 304 | 305 |
| 305 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = | 306 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = |
| 306 p.shared_quad_state_list.begin(); | 307 p.shared_quad_state_list.begin(); |
| 307 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = | 308 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = |
| 308 p.shared_quad_state_list.end(); | 309 p.shared_quad_state_list.end(); |
| 309 for (const auto& quad : p.quad_list) { | 310 for (const auto& quad : p.quad_list) { |
| 310 DCHECK(quad->rect.Contains(quad->visible_rect)) | 311 DCHECK(quad->rect.Contains(quad->visible_rect)) |
| 311 << quad->material << " rect: " << quad->rect.ToString() | 312 << quad->material << " rect: " << quad->rect.ToString() |
| 312 << " visible_rect: " << quad->visible_rect.ToString(); | 313 << " visible_rect: " << quad->visible_rect.ToString(); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 | 377 |
| 377 // Whether the quad points to a new shared quad state for each quad. | 378 // Whether the quad points to a new shared quad state for each quad. |
| 378 to_reserve += p.quad_list.size() * sizeof(bool); | 379 to_reserve += p.quad_list.size() * sizeof(bool); |
| 379 | 380 |
| 380 // Shared quad state is only written when a quad contains a shared quad state | 381 // Shared quad state is only written when a quad contains a shared quad state |
| 381 // that has not been written. | 382 // that has not been written. |
| 382 to_reserve += p.shared_quad_state_list.size() * sizeof(cc::SharedQuadState); | 383 to_reserve += p.shared_quad_state_list.size() * sizeof(cc::SharedQuadState); |
| 383 | 384 |
| 384 // The largest quad type, verified by a unit test. | 385 // The largest quad type, verified by a unit test. |
| 385 to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize(); | 386 to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize(); |
| 387 |
| 388 // The actual list of referenced surfaces. |
| 389 to_reserve += p.referenced_surfaces.size() * sizeof(cc::SurfaceId); |
| 386 return to_reserve; | 390 return to_reserve; |
| 387 } | 391 } |
| 388 | 392 |
| 389 template <typename QuadType> | 393 template <typename QuadType> |
| 390 static cc::DrawQuad* ReadDrawQuad(const Message* m, | 394 static cc::DrawQuad* ReadDrawQuad(const Message* m, |
| 391 base::PickleIterator* iter, | 395 base::PickleIterator* iter, |
| 392 cc::RenderPass* render_pass) { | 396 cc::RenderPass* render_pass) { |
| 393 QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>(); | 397 QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>(); |
| 394 if (!ReadParam(m, iter, quad)) | 398 if (!ReadParam(m, iter, quad)) |
| 395 return NULL; | 399 return NULL; |
| 396 return quad; | 400 return quad; |
| 397 } | 401 } |
| 398 | 402 |
| 399 bool ParamTraits<cc::RenderPass>::Read(const Message* m, | 403 bool ParamTraits<cc::RenderPass>::Read(const Message* m, |
| 400 base::PickleIterator* iter, | 404 base::PickleIterator* iter, |
| 401 param_type* p) { | 405 param_type* p) { |
| 402 cc::RenderPassId id; | 406 cc::RenderPassId id; |
| 403 gfx::Rect output_rect; | 407 gfx::Rect output_rect; |
| 404 gfx::Rect damage_rect; | 408 gfx::Rect damage_rect; |
| 405 gfx::Transform transform_to_root_target; | 409 gfx::Transform transform_to_root_target; |
| 406 bool has_transparent_background; | 410 bool has_transparent_background; |
| 411 std::vector<cc::SurfaceId> referenced_surfaces; |
| 407 size_t quad_list_size; | 412 size_t quad_list_size; |
| 408 | 413 |
| 409 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || | 414 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || |
| 410 !ReadParam(m, iter, &damage_rect) || | 415 !ReadParam(m, iter, &damage_rect) || |
| 411 !ReadParam(m, iter, &transform_to_root_target) || | 416 !ReadParam(m, iter, &transform_to_root_target) || |
| 412 !ReadParam(m, iter, &has_transparent_background) || | 417 !ReadParam(m, iter, &has_transparent_background) || |
| 418 !ReadParam(m, iter, &referenced_surfaces) || |
| 413 !ReadParam(m, iter, &quad_list_size)) | 419 !ReadParam(m, iter, &quad_list_size)) |
| 414 return false; | 420 return false; |
| 415 | 421 |
| 416 p->SetAll(id, | 422 p->SetAll(id, |
| 417 output_rect, | 423 output_rect, |
| 418 damage_rect, | 424 damage_rect, |
| 419 transform_to_root_target, | 425 transform_to_root_target, |
| 420 has_transparent_background); | 426 has_transparent_background); |
| 427 p->referenced_surfaces.swap(referenced_surfaces); |
| 421 | 428 |
| 422 for (size_t i = 0; i < quad_list_size; ++i) { | 429 for (size_t i = 0; i < quad_list_size; ++i) { |
| 423 cc::DrawQuad::Material material; | 430 cc::DrawQuad::Material material; |
| 424 base::PickleIterator temp_iter = *iter; | 431 base::PickleIterator temp_iter = *iter; |
| 425 if (!ReadParam(m, &temp_iter, &material)) | 432 if (!ReadParam(m, &temp_iter, &material)) |
| 426 return false; | 433 return false; |
| 427 | 434 |
| 428 cc::DrawQuad* draw_quad = NULL; | 435 cc::DrawQuad* draw_quad = NULL; |
| 429 switch (material) { | 436 switch (material) { |
| 430 case cc::DrawQuad::DEBUG_BORDER: | 437 case cc::DrawQuad::DEBUG_BORDER: |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 LogParam(p.id, l); | 506 LogParam(p.id, l); |
| 500 l->append("), "); | 507 l->append("), "); |
| 501 LogParam(p.output_rect, l); | 508 LogParam(p.output_rect, l); |
| 502 l->append(", "); | 509 l->append(", "); |
| 503 LogParam(p.damage_rect, l); | 510 LogParam(p.damage_rect, l); |
| 504 l->append(", "); | 511 l->append(", "); |
| 505 LogParam(p.transform_to_root_target, l); | 512 LogParam(p.transform_to_root_target, l); |
| 506 l->append(", "); | 513 l->append(", "); |
| 507 LogParam(p.has_transparent_background, l); | 514 LogParam(p.has_transparent_background, l); |
| 508 l->append(", "); | 515 l->append(", "); |
| 516 LogParam(p.referenced_surfaces, l); |
| 517 l->append(", "); |
| 509 | 518 |
| 510 l->append("["); | 519 l->append("["); |
| 511 for (const auto& shared_quad_state : p.shared_quad_state_list) { | 520 for (const auto& shared_quad_state : p.shared_quad_state_list) { |
| 512 if (shared_quad_state != p.shared_quad_state_list.front()) | 521 if (shared_quad_state != p.shared_quad_state_list.front()) |
| 513 l->append(", "); | 522 l->append(", "); |
| 514 LogParam(*shared_quad_state, l); | 523 LogParam(*shared_quad_state, l); |
| 515 } | 524 } |
| 516 l->append("], ["); | 525 l->append("], ["); |
| 517 for (const auto& quad : p.quad_list) { | 526 for (const auto& quad : p.quad_list) { |
| 518 if (quad != p.quad_list.front()) | 527 if (quad != p.quad_list.front()) |
| (...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 l->append("TextureDrawQuad::OverlayResources(["); | 850 l->append("TextureDrawQuad::OverlayResources(["); |
| 842 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 851 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 843 LogParam(p.size_in_pixels[i], l); | 852 LogParam(p.size_in_pixels[i], l); |
| 844 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 853 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
| 845 l->append(", "); | 854 l->append(", "); |
| 846 } | 855 } |
| 847 l->append("])"); | 856 l->append("])"); |
| 848 } | 857 } |
| 849 | 858 |
| 850 } // namespace IPC | 859 } // namespace IPC |
| OLD | NEW |