Index: cc/output/overlay_strategy_single_on_top.cc |
diff --git a/cc/output/overlay_strategy_single_on_top.cc b/cc/output/overlay_strategy_single_on_top.cc |
index 5670a37f93de2dd06b023a377608406f11b05875..4908eca919852193a63a9b45d830637f93ef7d10 100644 |
--- a/cc/output/overlay_strategy_single_on_top.cc |
+++ b/cc/output/overlay_strategy_single_on_top.cc |
@@ -6,6 +6,7 @@ |
#include <limits> |
+#include "cc/base/math_util.h" |
#include "cc/output/overlay_candidate_validator.h" |
#include "cc/quads/draw_quad.h" |
@@ -23,15 +24,16 @@ bool OverlayStrategySingleOnTop::TryOverlay( |
RenderPass* root_render_pass = render_passes_in_draw_order->back(); |
QuadList& quad_list = root_render_pass->quad_list; |
const DrawQuad* draw_quad = *candidate_iterator; |
- gfx::RectF rect = draw_quad->rect; |
- draw_quad->shared_quad_state->quad_to_target_transform.TransformRect(&rect); |
+ gfx::RectF rect = MathUtil::MapClippedRect( |
+ draw_quad->shared_quad_state->quad_to_target_transform, |
+ gfx::RectF(draw_quad->rect)); |
// Check that no prior quads overlap it. |
for (auto overlap_iter = quad_list.cbegin(); |
overlap_iter != candidate_iterator; ++overlap_iter) { |
- gfx::RectF overlap_rect = overlap_iter->rect; |
- overlap_iter->shared_quad_state->quad_to_target_transform.TransformRect( |
- &overlap_rect); |
+ gfx::RectF overlap_rect = MathUtil::MapClippedRect( |
+ overlap_iter->shared_quad_state->quad_to_target_transform, |
+ gfx::RectF(overlap_iter->rect)); |
if (rect.Intersects(overlap_rect) && |
!OverlayStrategyCommon::IsInvisibleQuad(*overlap_iter)) |
return false; |
@@ -40,7 +42,7 @@ bool OverlayStrategySingleOnTop::TryOverlay( |
// Add our primary surface. |
OverlayCandidateList candidates; |
OverlayCandidate main_image; |
- main_image.display_rect = root_render_pass->output_rect; |
+ main_image.display_rect = gfx::RectF(root_render_pass->output_rect); |
candidates.push_back(main_image); |
// Add the overlay. |