Index: remoting/client/rectangle_update_decoder.cc |
=================================================================== |
--- remoting/client/rectangle_update_decoder.cc (revision 118791) |
+++ remoting/client/rectangle_update_decoder.cc (working copy) |
@@ -140,7 +140,7 @@ |
// TODO(wez): Refresh the frame only if the ratio has changed. |
if (frame_) { |
SkIRect frame_rect = SkIRect::MakeWH(frame_->width(), frame_->height()); |
- refresh_region_.op(frame_rect, SkRegion::kUnion_Op); |
+ refresh_rects_.push_back(frame_rect); |
} |
// TODO(hclam): If the scale ratio has changed we should reallocate a |
@@ -166,7 +166,7 @@ |
// TODO(wez): Only refresh newly-exposed portions of the frame. |
if (frame_) { |
SkIRect frame_rect = SkIRect::MakeWH(frame_->width(), frame_->height()); |
- refresh_region_.op(frame_rect, SkRegion::kUnion_Op); |
+ refresh_rects_.push_back(frame_rect); |
} |
clip_rect_ = new_clip_rect; |
@@ -188,9 +188,9 @@ |
if (!frame_ || !decoder_.get()) |
return; |
- SkIRect frame_rect = SkIRect::MakeWH(frame_->width(), frame_->height()); |
- refresh_region_.op(frame_rect, SkRegion::kUnion_Op); |
- |
+ refresh_rects_.push_back( |
+ SkIRect::MakeWH(static_cast<int>(frame_->width()), |
+ static_cast<int>(frame_->height()))); |
DoRefresh(); |
} |
@@ -200,33 +200,33 @@ |
if (!frame_) |
return; |
- SkRegion* dirty_region = new SkRegion; |
- decoder_->GetUpdatedRegion(dirty_region); |
+ RectVector* dirty_rects = new RectVector(); |
+ decoder_->GetUpdatedRects(dirty_rects); |
- consumer_->OnPartialFrameOutput(frame_, dirty_region, base::Bind( |
- &RectangleUpdateDecoder::OnFrameConsumed, this, dirty_region)); |
+ consumer_->OnPartialFrameOutput(frame_, dirty_rects, base::Bind( |
+ &RectangleUpdateDecoder::OnFrameConsumed, this, dirty_rects)); |
} |
void RectangleUpdateDecoder::DoRefresh() { |
DCHECK(message_loop_->BelongsToCurrentThread()); |
- if (refresh_region_.isEmpty()) |
+ if (refresh_rects_.empty()) |
return; |
- decoder_->RefreshRegion(refresh_region_); |
- refresh_region_.setEmpty(); |
+ decoder_->RefreshRects(refresh_rects_); |
+ refresh_rects_.clear(); |
SubmitToConsumer(); |
} |
-void RectangleUpdateDecoder::OnFrameConsumed(SkRegion* region) { |
+void RectangleUpdateDecoder::OnFrameConsumed(RectVector* rects) { |
if (!message_loop_->BelongsToCurrentThread()) { |
message_loop_->PostTask( |
FROM_HERE, base::Bind(&RectangleUpdateDecoder::OnFrameConsumed, |
- this, region)); |
+ this, rects)); |
return; |
} |
- delete region; |
+ delete rects; |
DoRefresh(); |
} |