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