Index: cc/quads/render_pass.cc |
diff --git a/cc/quads/render_pass.cc b/cc/quads/render_pass.cc |
index 567145a82d6d12565c6a835aef264d32ba94ab9c..591f3b9c5c17ca75884fb75ba0a6184a4db089fc 100644 |
--- a/cc/quads/render_pass.cc |
+++ b/cc/quads/render_pass.cc |
@@ -25,6 +25,7 @@ |
#include "cc/quads/texture_draw_quad.h" |
#include "cc/quads/tile_draw_quad.h" |
#include "cc/quads/yuv_video_draw_quad.h" |
+#include "ui/gfx/geometry/rect_conversions.h" |
namespace { |
const size_t kDefaultNumSharedQuadStatesToReserve = 32; |
@@ -86,11 +87,8 @@ RenderPass::~RenderPass() { |
scoped_ptr<RenderPass> RenderPass::Copy(RenderPassId new_id) const { |
scoped_ptr<RenderPass> copy_pass( |
Create(shared_quad_state_list.size(), quad_list.size())); |
- copy_pass->SetAll(new_id, |
- output_rect, |
- damage_rect, |
- transform_to_root_target, |
- has_transparent_background); |
+ copy_pass->SetAll(new_id, output_rect, damage_rect, overlay_rect, |
+ transform_to_root_target, has_transparent_background); |
return copy_pass.Pass(); |
} |
@@ -106,10 +104,8 @@ void RenderPass::CopyAll(const ScopedPtrVector<RenderPass>& in, |
scoped_ptr<RenderPass> copy_pass(Create( |
source->shared_quad_state_list.size(), source->quad_list.size())); |
- copy_pass->SetAll(source->id, |
- source->output_rect, |
- source->damage_rect, |
- source->transform_to_root_target, |
+ copy_pass->SetAll(source->id, source->output_rect, source->damage_rect, |
+ source->overlay_rect, source->transform_to_root_target, |
source->has_transparent_background); |
for (const auto& shared_quad_state : source->shared_quad_state_list) { |
SharedQuadState* copy_shared_quad_state = |
@@ -165,6 +161,7 @@ void RenderPass::SetNew(RenderPassId id, |
void RenderPass::SetAll(RenderPassId id, |
const gfx::Rect& output_rect, |
const gfx::Rect& damage_rect, |
+ const gfx::Rect& overlay_rect, |
const gfx::Transform& transform_to_root_target, |
bool has_transparent_background) { |
DCHECK_GT(id.layer_id, 0); |
@@ -173,6 +170,7 @@ void RenderPass::SetAll(RenderPassId id, |
this->id = id; |
this->output_rect = output_rect; |
this->damage_rect = damage_rect; |
+ this->overlay_rect = overlay_rect; |
this->transform_to_root_target = transform_to_root_target; |
this->has_transparent_background = has_transparent_background; |
@@ -183,6 +181,7 @@ void RenderPass::SetAll(RenderPassId id, |
void RenderPass::AsValueInto(base::trace_event::TracedValue* value) const { |
MathUtil::AddToTracedValue("output_rect", output_rect, value); |
MathUtil::AddToTracedValue("damage_rect", damage_rect, value); |
+ MathUtil::AddToTracedValue("overlay_rect", overlay_rect, value); |
value->SetBoolean("has_transparent_background", has_transparent_background); |
value->SetInteger("copy_requests", copy_requests.size()); |
@@ -269,4 +268,8 @@ DrawQuad* RenderPass::CopyFromAndAppendDrawQuad( |
return quad_list.back(); |
} |
+gfx::Rect RenderPass::GetFullDamageRect() { |
+ return gfx::UnionRects(damage_rect, overlay_rect); |
+} |
+ |
} // namespace cc |