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/renderer/pepper/pepper_graphics_2d_host.h" | 5 #include "content/renderer/pepper/pepper_graphics_2d_host.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
603 int32_t PepperGraphics2DHost::Flush(PP_Resource* old_image_data) { | 603 int32_t PepperGraphics2DHost::Flush(PP_Resource* old_image_data) { |
604 bool done_replace_contents = false; | 604 bool done_replace_contents = false; |
605 bool no_update_visible = true; | 605 bool no_update_visible = true; |
606 bool is_plugin_visible = true; | 606 bool is_plugin_visible = true; |
607 | 607 |
608 for (size_t i = 0; i < queued_operations_.size(); i++) { | 608 for (size_t i = 0; i < queued_operations_.size(); i++) { |
609 QueuedOperation& operation = queued_operations_[i]; | 609 QueuedOperation& operation = queued_operations_[i]; |
610 gfx::Rect op_rect; | 610 gfx::Rect op_rect; |
611 switch (operation.type) { | 611 switch (operation.type) { |
612 case QueuedOperation::TRANSFORM: | 612 case QueuedOperation::TRANSFORM: |
613 ExecuteTransform(operation.scale, operation.translation); | 613 ExecuteTransform(operation.scale, operation.translation, &op_rect); |
614 no_update_visible = false; | |
615 break; | 614 break; |
616 case QueuedOperation::PAINT: | 615 case QueuedOperation::PAINT: |
617 ExecutePaintImageData(operation.paint_image.get(), | 616 ExecutePaintImageData(operation.paint_image.get(), |
618 operation.paint_x, | 617 operation.paint_x, |
619 operation.paint_y, | 618 operation.paint_y, |
620 operation.paint_src_rect, | 619 operation.paint_src_rect, |
621 &op_rect); | 620 &op_rect); |
622 break; | 621 break; |
623 case QueuedOperation::SCROLL: | 622 case QueuedOperation::SCROLL: |
624 ExecuteScroll(operation.scroll_clip_rect, | 623 ExecuteScroll(operation.scroll_clip_rect, |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
696 | 695 |
697 if (bound_instance_ && bound_instance_->throttler() && | 696 if (bound_instance_ && bound_instance_->throttler() && |
698 bound_instance_->throttler()->needs_representative_keyframe()) { | 697 bound_instance_->throttler()->needs_representative_keyframe()) { |
699 bound_instance_->throttler()->OnImageFlush(image_data_->GetMappedBitmap()); | 698 bound_instance_->throttler()->OnImageFlush(image_data_->GetMappedBitmap()); |
700 } | 699 } |
701 | 700 |
702 return PP_OK_COMPLETIONPENDING; | 701 return PP_OK_COMPLETIONPENDING; |
703 } | 702 } |
704 | 703 |
705 void PepperGraphics2DHost::ExecuteTransform(const float& scale, | 704 void PepperGraphics2DHost::ExecuteTransform(const float& scale, |
706 const gfx::PointF& translate) { | 705 const gfx::PointF& translate, |
| 706 gfx::Rect* invalidated_rect) { |
707 bound_instance_->SetGraphics2DTransform(scale, translate); | 707 bound_instance_->SetGraphics2DTransform(scale, translate); |
| 708 *invalidated_rect = PP_ToGfxRect(bound_instance_->view_data().clip_rect); |
708 } | 709 } |
709 | 710 |
710 void PepperGraphics2DHost::ExecutePaintImageData(PPB_ImageData_Impl* image, | 711 void PepperGraphics2DHost::ExecutePaintImageData(PPB_ImageData_Impl* image, |
711 int x, | 712 int x, |
712 int y, | 713 int y, |
713 const gfx::Rect& src_rect, | 714 const gfx::Rect& src_rect, |
714 gfx::Rect* invalidated_rect) { | 715 gfx::Rect* invalidated_rect) { |
715 // Ensure the source image is mapped to read from it. | 716 // Ensure the source image is mapped to read from it. |
716 ImageDataAutoMapper auto_mapper(image); | 717 ImageDataAutoMapper auto_mapper(image); |
717 if (!auto_mapper.is_valid()) | 718 if (!auto_mapper.is_valid()) |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 gfx::Point inverse_scaled_point = | 829 gfx::Point inverse_scaled_point = |
829 gfx::ScaleToFlooredPoint(*delta, inverse_scale); | 830 gfx::ScaleToFlooredPoint(*delta, inverse_scale); |
830 if (original_delta != inverse_scaled_point) | 831 if (original_delta != inverse_scaled_point) |
831 return false; | 832 return false; |
832 } | 833 } |
833 | 834 |
834 return true; | 835 return true; |
835 } | 836 } |
836 | 837 |
837 } // namespace content | 838 } // namespace content |
OLD | NEW |